Cancel immediately or at period end and return the updated subscription.
Cancel immediately or at period end and return the updated subscription.
ApiKeyAuth In: header
Unique key used to safely retry this write for 24 hours without applying it twice.
1 <= length <= 200application/json
TypeScript Definitions
Use the request body type in TypeScript.
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/subscriptions/string/cancel" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "sub_1a2b3c4d", "customerId": "cus_1a2b3c4d", "plan": { "id": "plan_1a2b3c4d", "name": "Pro", "basePrice": 2000 }, "name": "Pro", "description": null, "status": "active", "billingInterval": "monthly", "trialEndsAt": null, "currentPeriod": { "start": "2026-09-07T12:00:00.000Z", "end": "2026-10-07T12:00:00.000Z", "daysRemaining": 30 }, "cancellation": { "scheduledAt": "2026-09-07T12:00:00.000Z", "reason": "Customer requested cancellation", "effectiveAt": "2026-10-07T12:00:00.000Z" }, "cancelAtPeriodEnd": true, "scheduledPlanChange": null, "startDate": "2026-09-07T12:00:00.000Z", "endDate": null, "billingDayOfMonth": 7, "nextBillingDate": "2026-10-07T12:00:00.000Z", "checkoutUrl": null, "createdAt": "2026-09-07T12:00:00.000Z", "updatedAt": "2026-09-07T12:00:00.000Z", "offerApplications": [], "pause": null, "priceId": "price_1a2b3c4d", "object": "subscription", "livemode": false, "consumptionModel": "metered", "features": [ { "code": "api_calls", "name": "API Calls", "type": "usage", "usage": { "current": 250, "included": 1000, "overageQuantity": 0, "unlimited": false } } ], "credits": null, "balance": null}{ "error": { "type": "validation_error", "code": "validation_error", "message": "The request contains an invalid parameter.", "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/validation_error.md" }}{ "error": { "type": "authentication_error", "code": "unauthorized", "message": "A valid API key is required.", "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/unauthorized.md" }}{ "error": { "type": "authentication_error", "code": "forbidden", "message": "You do not have permission to perform this operation.", "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/forbidden.md" }}{ "error": { "type": "not_found_error", "code": "not_found", "message": "The requested resource was not found.", "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/not_found.md" }}{ "error": { "type": "conflict_error", "code": "idempotency_in_progress", "message": "A request with this idempotency key is still being processed.", "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_in_progress.md" }}{ "error": { "type": "rate_limit_error", "code": "rate_limited", "message": "Too many requests. Retry after the interval specified in the Retry-After header.", "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/rate_limited.md" }}{ "error": { "type": "internal_error", "code": "internal_error", "message": "An unexpected error occurred while processing the request.", "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/internal_error.md" }}{ "error": { "type": "internal_error", "code": "idempotency_unavailable", "message": "Idempotency storage is temporarily unavailable. Retry with the same idempotency key.", "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_unavailable.md" }}Apply an Offer to a subscription PUT
Apply a direct Offer to a subscription. On a pending payment checkout it quotes or replaces the checkout discount and the existing checkout URL remains unchanged. On an active subscription it applies the Offer immediately with its discount phases starting at the next billing cycle; the call is rejected while another applied Offer still has active or upcoming discount phases. Offers with a free trial phase cannot be applied after checkout creation.
Change plan POST
Upgrade or change billing interval immediately, optionally applying an Offer. Scheduled changes do not accept offers.