Stripe pause subscription vs cancel: what happens on resume
Compares Stripe subscription pause collection with cancellation, focusing on resume behavior. Use when a customer wants a break and you need to know what pause preserves versus what cancel destroys. Not for permanent churn handling.
TL;DR
Pausing keeps the subscription object alive with billing suspended, so resume restores the same subscription, price, and history; canceling ends it, and the customer must start a new subscription. Use pause for temporary breaks and win-back, cancel for real churn. Set pause behavior explicitly: mark uncollectible or void the draft invoices pause generates.
Steps
- Read the pausecollection options: behavior markuncollectible, keepasdraft, or void, plus optional resumes_at.
Expected: You know the three pause flavors and pick one deliberately.
- For a customer break, call the pause endpoint with behavior void and a resumes_at date.
Expected: Billing stops and no draft invoices pile up.
- On resume (automatic at resumes_at or manual), Stripe restarts billing on the same subscription id.
Expected: The customer keeps price, history, and subscription id.
- For real churn, cancel instead, optionally at period end, and handle win-back as a new subscription.
Expected: Metrics show true churn instead of paused limbo.
- Audit paused subscriptions monthly: long pauses are churn in disguise.
Expected: Your MRR reporting stays honest.
When to use
- A customer asks to pause, not cancel
- You run seasonal businesses with predictable breaks
- Win-back flows need the original subscription intact
When not to use
- The customer is definitely gone (cancel and measure churn)
- You need to change the price on resume (pause keeps the old price; cancel and recreate instead)
- Compliance requires data deletion on request (pause retains everything)
Compatibility
Stripe Billing pausecollection since API 2020-08-27. Behavior options markuncollectible, keepasdraft, void.
Variant phrasings
### Stripe pausecollection resumesat
### pause vs cancel subscription Stripe MRR
### resume paused subscription billing
Root cause
Pause exists because cancellation destroys subscription state (price locks, coupon history, billing anchor) that win-back then has to rebuild. Pausing suspends the billing engine around a live subscription object so resume is a continuation, not a reconstruction.
Edge cases
- keepasdraft leaves draft invoices that still need handling; void is usually cleaner
- Paused subscriptions still count in some MRR tools; check your analytics definitions
- Trials cannot be paused the same way; end the trial or convert first
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_2F1MUtZoFghkHDxekQd4FA
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.