past_due status. Use this guide to let customers update their payment method and reactivate their subscription.
Decision Flowchart
| Status | What Happened | Recovery Options |
|---|---|---|
past_due | Renewal payment failed | SDK checkout (must collect payment) |
cancelled | Subscription ended | SDK checkout or API |
scheduled_for_cancellation | Customer requested cancel | API only (no payment needed) |
Recover Past-Due
Forpast_due subscriptions, you must collect payment via SDK checkout—there’s no API-only option.
1
Create a client session
Include customer and subscription—do not include
plan.id:cURL
2
Mount the SDK
Display checkout with the customer’s saved payment method:
- Success: Subscription returns to
active, billing cycle resets - Failure: Customer can switch to a different card and retry instantly
Reactivate Cancelled Subscription
Forcancelled subscriptions, you can either collect payment via SDK checkout (above) or reactivate directly via API:
cURL
API reactivation works only for
cancelled subscriptions. For past_due, you must collect payment via SDK checkout.Best Practices
- Notify customers promptly when renewals fail—the sooner they update their card, the higher the recovery rate
- Use email or in-app messaging to direct customers to your recovery page
- Show the amount due clearly in your UI before they reach checkout