Stripe subscription best practice for cancel and reactivate model – my question is similar to this question from 6 years ago that unfortunately went unanswered. Stripe makes it pretty clear in their docs that cancelled subscriptions cannot be restarted. However, we’d like users to be able to cancel and renew their subscription. Is the best pattern to:
- cancel, and create a brand new subscription when the user tries to re-activate their account?
- do not technically cancel. rather, change the status to some
active but paused / not collecting paymentsstatus, that way it can be re-activated if a user chooses to do so?
- unknown other option
What is the best practice here?
I think how you choose to handle the cancellation ultimately depends on how you want to deliver services. You could cancel a subscription immediately; this changes the subscription status to
canceled and is a terminal state. You could update a subscription so it is canceled at the end of the current billing period; this means the subscription will remain
active until the end of the current period and you can continue to make changes to the subscription until then.
If a user tries to reactivate once the subscription is
canceled, you should create a brand-new subscription. While there is a "pause" option, pausing still generates invoices; Stripe calls out that this may affect your accounting data.