Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp
Overview
Billing
OverviewAbout the Billing APIs
Subscriptions
    Overview
    How subscriptions work
    Get started
    Quickstart
    Design an integration
    Build an integration
    Embed a pricing table
    Collect a payment method with no initial payment
    Migrate subscriptions to Stripe
    Configure subscription events
    Manage subscriptions
    Set billing cycles
    Configure trial offers
    Enable billing mode
    Use mixed interval subscriptions
    Apply coupons
    Entitlements
    Modify subscriptions
    Cancel subscriptions
    Pause subscriptions
    Bill customers in advance
    Manage subscriptions on iOS
    Invoice and collect payments
    Subscription invoices
    Configure collection methods
    Manage subscription payment methods
    Pause payment collection
    Integrate with third-party payment processing
    Calculate and collect taxes
    Collect taxes on subscriptions
    Customer tax IDs
    Migrate subscriptions to Stripe Tax
    Sales-led billing
    Subscription schedules
    Backdate subscriptions
    Analytics
Invoicing
Usage-based billing
Quotes
Customer management
Billing with other products
Revenue recovery
Automations
Scripts
Test your integration
Tax
Overview
Use Stripe Tax
Tax rates
Manage compliance
Reporting
Overview
Select a report
Configure reports
Reports for multiple accounts
Reports API
Revenue recognition
Data
Overview
Query business data
Analytics API
Sigma
Data Pipeline
Next generation of Data PipelineDatabase
Import external data
United States
English (United States)
  1. Home/
  2. Revenue/
  3. Subscriptions
Public preview

Pause subscriptionsPublic preview

Learn how to pause subscriptions, halting both service delivery and invoice generation.

Pausing a subscription lets you temporarily suspend both service delivery and invoice generation. The ability to pause a subscription helps you support customer scenarios such as vacations, temporary non‑usage, or goodwill pauses to prevent churn.

Pause subscription versus pause payment collection

Pausing a subscription stops both service and billing. The subscription moves to paused status, Stripe stops generating invoices, and your customer loses access to the subscription’s service for the duration of the pause.

If you want to keep your customer’s access to the service active but temporarily stop collecting payment, use pause payment collection instead.

Servicing is paused (customer loses service access)Invoicing is pausedPayment collection is paused
Pause subscriptionYesYesYes
Pause payment collectionNoNoYes

To pause a subscription, it must use flexible billing mode.

The ability to pause subscriptions is useful for:

  • Merchant teams that want API control over subscription lifecycle without canceling subscriptions.
  • Backend engineers building retention flows or support tooling that needs a true pause state.
  • Developers validating billing, entitlement revocation, and webhook handling for paused windows.

Note

A subscription can also move to paused status when a trial ends without a payment method on file. Stripe triggers this automatically and doesn’t use the Pause subscription endpoint. See Trial end without a payment method.

Pause subscriptions

You can pause subscriptions with the API or in the Dashboard. The pause takes effect immediately. After a subscription is paused:

  • The subscription status updates to paused.
  • You get notified about the status change via the customer.subscription.paused, customer.subscription.updated, and entitlements.active_entitlement_summary.updated webhooks, enabling you to de-provision service delivery accordingly.
  • Invoice generation is paused for the entire pause duration, though existing subscription invoices advance without affecting the paused status.
  • The current_period_end updates to the time when you paused the subscription.
  • You can use the bill_for parameter to control billing behavior at pause time, including creating credit prorations for unused licensed time and creating debits for metered usage in the current period. You can invoice immediately or create pending invoice items.

You can’t pause a subscription if it:

  • Uses send_invoice collection
  • Uses billing mode classic
  • Is in a trial period, or has an active trial offer
  • Has paused, incomplete, incomplete_expired, or canceled status
  • Has an attached schedule
  • Has an attached cadence

Similarly, you can’t attach a schedule or cadence to a paused subscription.

If you pause a subscription that uses a coupon, the coupon retains its original validity and the pause doesn’t extend its duration.

To pause a subscription in the Dashboard:

  1. On the Subscriptions page, find the applicable subscription, click the overflow menu (), and select Pause subscription.
  2. Configure billing behavior for unused time and outstanding usage.
  3. After finalizing all settings, click Pause subscription.

The customer portal reflects that a subscription is paused, but your subscribers can’t use it to pause subscriptions themselves.

Subscription response

When you pause a subscription, the response includes a status_details object that provides context about the pause:

{ "id": "sub_1SrpWtRnJ89Z4rKknfSwXkBc", "object": "subscription", "status": "paused", "status_details": { "paused": { "subscription": { "type": "pause_requested" }, "transitioned_at": 1749081600, "type": "subscription" } } }
  • status_details.paused.transitioned_at: Unix timestamp of when the subscription transitioned to paused status.

  • status_details.paused.subscription.type indicates the reason the subscription paused:

ValueMeaning
pause_requestedYou paused the subscription via the API.
trial_end_without_payment_methodThe trial ended without a payment method on file.
systemStripe paused the subscription automatically.

Resume subscriptions

Resume is only available on subscriptions that use charge_automatically collection.

If resuming doesn’t generate an invoice, the subscription status updates to active immediately.

If Stripe generates a resumption invoice:

  • Stripe finalizes the resumption invoice immediately.
  • Stripe doesn’t attempt payment in the resume response. Collect payment using the Pay invoice endpoint.
  • When the invoice is paid or marked uncollectible, the subscription becomes active.
  • If a payment attempt fails, the subscription becomes past_due.
  • If you void the resumption invoice before a payment attempt, the subscription stays paused.
  • If there’s not a successful payment within 23 hours, Stripe voids the invoice and the subscription stays paused.

After a subscription’s status updates to active:

  • Invoicing resumes.
  • The billing cycle anchor is optionally reset.
  • You get notified about the status change via the customer.subscription.resumed, customer.subscription.updated, and entitlements.active_entitlement_summary.updated webhooks, enabling you to re-provision service delivery accordingly.

To resume a paused subscription in the Dashboard:

  1. On the Subscriptions page, find the paused subscription, click the overflow menu (), and select Resume subscription.
  2. Configure proration and billing cycle anchor settings.
  3. Click Resume subscription.

Payment behavior

The payment_behavior parameter is optional. If you omit it, Stripe uses resume_on_payment_attempt, which matches the behavior in the section above. resume_on_payment_success is only available for subscriptions that use flexible billing mode.

Criterionresume_on_payment_success Recommendedresume_on_payment_attempt Default
Resume request attempts paymentYes, when the customer has a default payment method or their cash balance covers the amount due. Otherwise, Stripe returns an error.No. Collect payment with the Pay invoice endpoint.
Subscription status if a payment attempt failspausedpast_due
Invoice payment retries after payment failureYes, unless your retry settings disable itNo
Pending update expires1 year after the resume request23 hours after the resume request

Identify pause and resume events

Stripe sends the following events for paused and resumed subscriptions.

EventDescription
customer.subscription.pausedEmitted when a subscription pauses.
customer.subscription.resumedEmitted when a subscription resumes.
customer.subscription.updatedEmitted when a subscription pauses or resumes.
entitlements.active_entitlement_summary.updatedEmitted when entitlements change due to a pause or resume.

Example webhook payload for customer.subscription.paused (key fields shown):

{ "id": "evt_1SrpXjRnJ89Z4rKkFxe9waAz", "object": "event", ... "data": { "object": { "id": "sub_1SrpWtRnJ89Z4rKknfSwXkBc", "object": "subscription", ... "latest_invoice": "in_1SrpWtRnJ89Z4rKkzYBCF1MY", ... "status": "paused", ... } }, ... "type": "customer.subscription.paused" }

Query paused subscriptions in Sigma

The subscriptions table in Sigma includes a status column and a status_details JSON column that you can use to identify and analyze paused subscriptions.

Use the following query to find all currently paused subscriptions along with the pause reason and when the pause occurred:

select id, customer_id, status, json_extract_scalar(status_details, '$.paused.subscription.type') as pause_reason, from_unixtime(cast(json_extract_scalar(status_details, '$.paused.transitioned_at') as double)) as paused_at from subscriptions where status = 'paused' order by paused_at desc
Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Chat with Stripe developers on Discord.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc
On this page