Cancel subscription

Cancel subscription
Cancel subscriptions immediately or at the end of the billing period, track cancellation reasons, and manage automatic cancellations

Subscription cancellations let you control how and when customers stop their subscriptions. You can cancel immediately or at the end of the billing period. Automatic cancellations may also occur when all payment retries are exhausted during the redemption window.

Each cancellation includes a reason code that explains why the subscription was terminated. By analyzing cancellation reasons, you can identify churn patterns and take steps to improve retention.

Cancellation options

Solidgate subscriptions support two cancellation modes that you specify when calling the cancel endpoint or selecting an option in the Hub.

  • Cancel at period end
    The subscription remains active until the current billing period ends. The customer retains access to the product during this time. No further invoices are generated after the period ends, and the status changes to CANCELLED automatically.

  • Cancel immediately
    The subscription status changes to CANCELLED right away. No further invoices are generated. Use this when you need to terminate billing immediately, for example, due to fraud, dispute, or a mutual agreement to stop the service.

Cancellation is a terminal state. If the customer wants to resubscribe, create a new subscription.

Before cancelling, select the mode that best matches your use case.

ActionWhen to useImpact
Cancel at period endCustomer confirms they want to leave but should retain access until the current period ends.Status stays active until the period ends, then moves to CANCELLED . No further charges after the current period.
Cancel immediatelyImmediate termination is needed due to fraud, dispute, or mutual agreement.Status changes to CANCELLED immediately. No further charges. Terminal state.

Automatic cancellations

Subscriptions can be cancelled automatically if all payment retries are exhausted during the redemption window:

  1. A renewal payment fails, and the subscription enters the REDEMPTION status.
  2. Solidgate retries the payment using smart retries.
  3. All retries are exhausted without a successful payment.
  4. The subscription moves to either UNPAID or CANCELLED .

Automatic subscription cancellation results in the DUNNING_EXHAUSTED reason code.

For retry configuration, see smart retries.

Cancel subscription

Send a request to the cancel subscription API v2 endpoint with the subscription ID and the cancellation mode. Pass NOW to cancel immediately or PERIOD_END to cancel at the end of the current billing period. Optionally, include a comment with a free-text cancellation reason.

When a subscription is cancelled, Solidgate records a reason code in the cancellation_info object, along with requested_at, cancel_at, and comment.

ReasonDescription
CANCELLATION_REQUESTED The merchant or customer requested cancellation through the API or Hub.
DUNNING_EXHAUSTED All payment retries were exhausted during the redemption window. The subscription was cancelled automatically.
To cancel a subscription

  1. Go to Billing > Billing 2.0 > Subscriptions.
  2. Click on the subscription ID to open the details page.
  3. Click on Cancel.
  4. Choose to cancel immediately or at the end of the billing period.
  5. Optionally, provide a cancellation comment.
  6. Click on Cancel subscription to confirm the cancellation.

Handle events

Solidgate sends webhook events when a subscription is cancelled or scheduled for cancellation.

EventDescription
SUBSCRIPTION_CANCELLED Sent when NOW mode is used and the subscription is cancelled immediately, or when a PERIOD_END cancellation takes effect at the end of the billing period.
SUBSCRIPTION_SCHEDULED_FOR_CANCELLATION Sent when PERIOD_END mode is used. The cancellation is scheduled and the subscription remains active until the billing period ends.

Listen for SUBSCRIPTION_CANCELLED to revoke access to your product. For end-of-period cancellations, you can also listen for SUBSCRIPTION_SCHEDULED_FOR_CANCELLATION to notify the customer or trigger a retention flow before the cancellation takes effect.


Looking for help? Contact us
Stay informed with Changelog