Cancel a subscription at the end of its current period
POST/subscriptions/:subscription_id/cancel
Schedules cancellation at the immutable current-period end. It does not refund the current term or mutate Grants before the terminal provider event. Idempotency-Key deduplicates the same request, while the PSP remains authoritative for the scheduled state. Different keys are not serialized by a local command aggregate. The authoritative terminal event closes the Subscription's plan-derived Grant continuity scope against new consumption.
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 409
- 429
- 500
- 503
Period-end cancellation scheduled.
Bad Request
Unauthorized
Forbidden (realm/account mismatch, billing account not derived from your session/principal, or insufficient role)
Not Found
Conflict (idempotency body mismatch, duplicate adjustment, or an unsupported provider capability). Unsupported mutations return BILLING.PAYMENT_PROVIDER_CAPABILITY_UNSUPPORTED before Customer creation, provider I/O, or local state mutation. Concurrent use of the same Idempotency-Key returns WRITE.IDEMPOTENCY_IN_PROGRESS; different keys are independent requests whose final ordering is owned by the PSP. A subscription Checkout with mixed group, currency, or recurrence facts is rejected before Customer lookup or provider I/O. Missing or inconsistent selected Customer bindings return BILLING.PAYMENT_PROVIDER_CUSTOMER_REQUIRED or BILLING.PAYMENT_PROVIDER_CUSTOMER_CONFLICT without silently replacing the binding.
Rate limited
Response Headers
Seconds to wait before retry.
Internal Server Error
Provider unavailable, transient failure, or an ambiguous provider mutation reported as BILLING.PAYMENT_PROVIDER_OUTCOME_UNKNOWN.