---
title: "Cancel Subscription"
method: POST
path: "/v1/organizations/billing/subscription/cancel"
tags: ["Organization Billing"]
---

# Cancel Subscription

`POST /v1/organizations/billing/subscription/cancel`

Cancel the current subscription.

Default: cancel at end of billing period (the subscription remains
active until then, after which the organization downgrades). With
``immediate=true`` (BACKE-2859): cancel NOW — the org-deletion cascade
and teardown callers need a cancel that actually ends billing today
instead of leaving a live sub on the card.

## Request body

- CancelSubscriptionRequest — Options for subscription cancellation (BACKE-2859).
  - `immediate` boolean — Cancel NOW (Stripe Subscription.cancel) instead of at period end. Default False preserves the period-end behavior.
  - `invoice_now` boolean — With immediate=true: generate a final proration invoice.

## Response `200`

Successful Response

- CancelSubscriptionResponse — Response after cancelling a subscription.
  - `subscription_id` string, required
  - `cancel_at_period_end` boolean
  - `status` string, nullable
  - `message` string

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/mixpeek/apis/mixpeek-api.md) · [All operations](https://skmtc.net/mixpeek/apis/mixpeek-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mixpeek/mixpeek-api/revisions/04b379bdbb7c/schema)
