Skip to main content
Cancel a pending, active, or past-due subscription. The behavior depends on the current subscription status.
Authentication: API Key (merchant, owner role)
This endpoint also has a customer-side flow with session-token auth: see Cancel Subscription (Customer).

Cancellation Behavior

  • pending: Directly canceled, status becomes canceled — it never passes through canceling
  • pending plan-change subscription: also becomes canceled directly, but the PSP cancellation for that scheduled subscription is dispatched right away, so it neither activates nor charges at the planned switch time. The original subscription is left untouched: it stays canceling and does not return to active
  • Already ended while canceling (idempotent): if a pending order reaches a terminal status after it was read but before the cancellation is written — for example two plan-change candidates were created concurrently for the same subscription and the PSP closed the one that yielded, pushing the close notification back first, or a concurrent cancellation landed first — the request converges as canceled: any discount reservation still held is released (an already released one is not released twice), and it returns 200 with the current terminal status (e.g. closed). No cancellation reason is stored in this case
  • active: PSP cancellation is triggered (takes effect at billing period end). Local status becomes canceling, then updated to canceled via Webhook when the period ends
  • past_due: PSP cancellation is dispatched immediately, not deferred to period end. Local status becomes canceling, then updated to canceled via Webhook once the PSP confirms. No “cancellation scheduled, access until X” email is sent on this path, because the billing period has already lapsed
A canceling subscription can normally be reverted with Reactivate Subscription, but a subscription that had an unpaid charge at the moment cancellation was requested cannot be reverted and that endpoint returns 400. Cancelling a past_due subscription always falls into this category.
A subscription that is canceling because of a confirmed plan change can never be reverted, not even after that change is voided by cancelling its pending new subscription: the payment channel put the original subscription into pending cancellation when it confirmed the change and offers no way back. It moves one way to canceled; to keep the buyer paying, place a new order.

Request Body

Example Request

Success Response (200) — Active Subscription

Success Response (200) — Pending Subscription

Response Fields

Errors

Retry policy: Never retry 4xx — fix the request and resubmit. Retry 5xx with exponential backoff (start 5s, max 3 attempts).