API ReferenceSubscriptions

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.

POST
/v2/subscriptions/{productSubscription}/actions/{action}/dismiss

Authorization

AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

Path Parameters

productSubscription*integer

The productSubscription path parameter.

action*integer

The action path parameter.

Header Parameters

X-STORE?string

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"
}