---
title: "Cancel Subscription Endpoint"
method: POST
path: "/api/billing/cancel-subscription"
tags: ["billing"]
---

# Cancel Subscription Endpoint

`POST /api/billing/cancel-subscription`

Cancel subscription (downgrade to free plan).

By default, cancels at the end of the billing period so the user
keeps access until then. Set cancel_at_period_end=False for immediate
cancellation.

## Request body

- CancelSubscriptionRequest — Request to cancel subscription
  - `product_id` string, required
  - `cancel_at_period_end` boolean

## Response `200`

Successful Response

- CancelSubscriptionResponse — Response after canceling subscription
  - `subscription_id` string, required
  - `status` string, required
  - `message` string, required
  - `cancel_at` integer, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/usecrow/apis/crow-backend-multi-tenant-saas.md) · [All operations](https://skmtc.dev/usecrow/apis/crow-backend-multi-tenant-saas/llms.txt) · [OpenAPI document](https://skmtc.dev/usecrow/apis/crow-backend-multi-tenant-saas/revisions/66e6366f8ef9?raw)
