## 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

1. Read the pause_collection options: behavior mark_uncollectible, keep_as_draft, or void, plus optional resumes_at.
   Expected: You know the three pause flavors and pick one deliberately.
2. 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.
3. 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.
4. 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.
5. 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 pause_collection since API 2020-08-27. Behavior options mark_uncollectible, keep_as_draft, void.

## Variant phrasings

### ### Stripe pause_collection resumes_at

### ### 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

- keep_as_draft 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
