Dismiss a subscription action
Dismiss a pending lifecycle action so the subscription accepts the next change.
While an action is pending, every other lifecycle action is reported as unsupported. Dismissing the pending action records your note on it and lets the subscription accept new actions. note is required, up to 255 characters. Only a pending action can be dismissed. Any other status (confirmed, failed, expired, dismissed, or force-resolved) returns 422, including a retry of a dismissal that already succeeded. Idempotency keys do not replay this operation. If you lose the response, retrieve the action to check its current state before trying again.
Important
Dismissing only changes the action in SellApp. Nothing is undone at the payment provider, so a link or payment the customer was already sent, such as a PayPal approval link, a Stripe card page, or the order for an in-house plan change, stays open and the customer can still complete it.
Provide your SellApp API key as a bearer token.
In: header
Path Parameters
The productSubscription path parameter.
The action path parameter.
Header Parameters
Store 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 POST "https://sell.app/api/v2/subscriptions/124/actions/4207/dismiss" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "note": "Confirmed with the customer that they no longer want the upgrade." }'{
"data": {
"id": 4207,
"product_subscription_id": 124,
"subscription_id": null,
"action": "change_plan",
"status": "dismissed",
"provider": "internal",
"proration_order_id": 90880,
"error": "Confirmed with the customer that they no longer want the upgrade.",
"customer_message": "The seller dismissed this pending subscription action.",
"confirmed_at": null,
"failed_at": null,
"created_at": "2026-07-08T11:02:00.000000Z",
"updated_at": "2026-07-08T15:40:00.000000Z"
},
"message": "Pending subscription action dismissed."
}{
"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"
}