Cancel a subscription immediately with a refund
To cancel immediately and refund the latest subscription payment, send cancel_at_period_end: false with refund_last_payment: true.
To cancel immediately and refund the latest subscription payment, send cancel_at_period_end: false with refund_last_payment: true.
Set pro_rated_refund: true if you want a pro-rated refund instead of a full refund. A Stripe, PayPal, or Razorpay subscription that is past due or unpaid can't get a pro-rated refund, because its current period was never paid for, so the request returns 422. A full refund or no refund still works.
Important
This endpoint is deprecated. New integrations should use Cancel immediately instead.
Provide your SellApp API key as a bearer token.
In: header
Path Parameters
The subscription path parameter.
Header Parameters
A caller-generated key, unique per store and subscription lifecycle request. Sending it here is the same as sending idempotency_key in the body.
length <= 128Caller-generated key for safely retrying this operation. The JSON idempotency_key field is also accepted; when both are sent, the header takes precedence.
length <= 128Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://sell.app/api/v2/subscriptions/55/cancel" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "cancel_at_period_end": true, "idempotency_key": "design-kit-subscription-55-cancel-v1" }'{
"data": {
"id": 55,
"invoice_id": 9001,
"provider": "stripe",
"subscription_id": "sub_1QwertyExample",
"customer_id": "cus_Example123",
"provider_subscription_id": "sub_1QwertyExample",
"provider_customer_id": "cus_Example123",
"customer": {
"id": 314,
"email": "maya.chen@example.com",
"external_id": "crm_314",
"name": "Maya Chen",
"locale": "en-GB",
"metadata": {}
},
"customer_email": "natya.sadella@example.com",
"status": "ACTIVE",
"current_period_start": "2026-08-30T12:05:00.000000Z",
"current_period_end": "2026-09-30T12:05:00.000000Z",
"trial_ends_at": null,
"cancel_at_period_end": true,
"cancellation_in_progress": false,
"store_id": 1,
"product_variant_id": 4321,
"current_plan_variant_id": 99,
"auto_renew": false,
"paused_at": null,
"pause_resumes_at": null,
"canceled_immediately_at": null,
"payment_method_updated_at": "2026-03-15T09:30:00.000000Z",
"last_customer_action_at": "2026-03-23T00:00:00.000000Z",
"created_at": "2026-03-01T00:00:00.000000Z",
"updated_at": "2026-03-23T00:00:00.000000Z"
},
"message": "Subscription will be cancelled at the end of the current period."
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not Found.",
"status": 404,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}