---
title: "Cancel the subscription at the end of the billing period"
method: POST
path: "/api/v1/billing/subscription/cancel"
tags: ["billing"]
---

# Cancel the subscription at the end of the billing period

`POST /api/v1/billing/subscription/cancel`

## Request

- Base URL: `https://api.cadencz.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.cadencz.com/api/v1/billing/subscription/cancel`
- Auth: HTTP bearer

Schedules the cancellation with Dodo. The plan stays fully active and paid-for until the period the customer already paid for runs out, then simply does not renew — no further charges. Reversible any time before the period ends via the resume endpoint, and choosing any plan also resumes it.

## Request body

- CancelSubscriptionRequest: Optional churn survey, passed through to Dodo's own cancellation fields.
  - `feedback` 'too_expensive' | 'missing_features' | 'switched_service' | 'unused' | 'customer_service' | 'low_quality' | 'too_complex' | 'other', nullable
  - `comment` string, nullable

## Response `200`

Successful Response

- SubscriptionRead
  - `id` string, required
  - `workspace_id` string, required
  - `tier` string, required
  - `plan_state` string, required
  - `plan_label` string, required
  - `status` string, required
  - `renews_at` string, nullable, required
  - `cancel_at_period_end` boolean, required
  - `billing_period` 'monthly' | 'yearly', nullable, required
  - `has_provider_subscription` boolean
  - `trial_eligible` boolean, required
  - `included_credits` integer, required
  - `channel_cap` integer, required

## Other responses

- `401`: Missing or invalid Supabase bearer token.
- `409`: The requested state transition is not allowed.
- `422`: Validation Error
- `502`: The upstream provider rejected the request.

---

[API](https://skmtc.dev/cadencz/apis/cadencz-api.md) · [All operations](https://skmtc.dev/cadencz/apis/cadencz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cadencz/apis/cadencz-api/revisions/3392fe5e93db?raw)
