Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
No-code
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Online payments
Products and prices
Invoicing
Subscriptions
    Overview
    How subscriptions work
    Recurring pricing models
    Get started
    Quickstart
    Integrate a SaaS business
    Embed a pricing table
    Design an integration
    Build a subscriptions integration
    Migrate subscriptions to Stripe
    Billing resources
    Coupons
    Customers
    Subscriptions
    Subscription invoices
    Manage subscriptions
    Change subscriptions
      Upgrade and downgrade subscriptions
      Cancel subscriptions
      Manage prorations
      Pause payment collection
      Share an update payment details link
      Manage pending updates
      Set billing cycles
      Customer credit balance
    Usage-based billing
    Use trial periods
    Set payment methods
    Subscriptions with multiple products
    Set subscription quantities
    Subscription webhooks
    Schedule subscriptions
    Tax
    Sales-led B2B billing
    Integrate with Salesforce
    Manage recurring revenue
    Revenue recognition
    Revenue recovery
    Subscription metrics
    Customer management
    Overview
    Set up the the no-code customer portal
    Set up the customer portal with the API
    Configure the customer portal
    Testing
    Test your integration
    Test clocks
    Strong Customer Authentication (SCA)
    Invoices API updates
Quotes
In-person payments
Multiparty payments
After the payment
Add payment methods
Payment Links
Stripe Checkout
Stripe Elements
About the APIs
Regulation support
Implementation guides
Testing
Billing
·
HomePaymentsSubscriptionsChange subscriptions

Pause payment collection

Learn how to pause payment collection on subscriptions.

Subscriptions with pause collection can’t move into status=paused. View Use trial periods to learn about free trials of subscriptions that enter status=paused after a trial ends without a payment method attached.

Pausing payment collection is often used to temporarily offer your services for free or to stop payments if you can’t provide your services. While collection is paused, subscriptions still generate invoices but you have a few options for handling these invoices.

You can pause or resume collection in the Stripe Dashboard or the API. To use the API, review the following use cases to determine the best approach for you.

Pausing collection can affect accounting data, such as monthly recurring revenue (MRR).

Use caseAPI configuration
Offer services for freeUse behavior=void
Temporarily offer services for free and collect payment laterUse behavior=keep_as_draft
Unable to provide servicesUse behavior=void

If these options don’t fit your use case, you might want to consider canceling subscriptions instead.

Invoices created before subscriptions are paused continue to be retried unless you void them.

Offer services for free

If you want to offer your services for free, update the subscription’s pause_collection[behavior] to void. If you know when you want to resume collection, pass a timestamp for resumes_at as well.

Command Line
curl https://api.stripe.com/v1/subscriptions/
{{SUBSCRIPTION_ID}}
\ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "pause_collection[behavior]"=void

All invoices generated before the resumes_at date are immediately marked as void and won’t use the customer credit balance. Stripe won’t send any upcoming invoice emails or webhooks for these invoices and the subscription’s status remains unchanged.

If you don’t set a resumes_at date, the subscription remains paused until you unset pause_collection.

Temporarily offer services for free and collect payment later

If you want to temporarily offer your services for free and collect payments later, set pause_collection[behavior]=keep_as_draft. If you know when you want to resume collection, pass a timestamp for resumes_at.

Command Line
curl https://api.stripe.com/v1/subscriptions/
{{SUBSCRIPTION_ID}}
\ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "pause_collection[behavior]"=keep_as_draft

All invoices created before the resumes_at date remain in draft state and auto_advance is set to false. During this time, Stripe won’t send any upcoming invoice emails or webhooks for these invoices and the subscription’s status remains unchanged.

If you don’t set a resumes_at date, the subscription remains paused until you unset pause_collection.

If you have custom logic that finalizes invoices you might need to disable or modify it so that it doesn’t conflict with these settings.

When you’re ready to collect payment for these invoices, set auto_advance back to true. If you don’t have the invoice IDs, you can use subscription IDs to check for invoices with status=draft. Using the invoice ID, you can then update auto_advance=true:

Command Line
curl https://api.stripe.com/v1/invoices/
{{INVOICE_ID}}
\ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d auto_advance=true

Unable to provide services

If you can’t provide your services for a certain period of time, you can void invoices that are created by your subscriptions so that your customers aren’t charged. Use the subscription ID to update pause_collection[behavior] to void and pause_collection[resumes_at] to the date you want to start collecting payments again.

Command Line
curl https://api.stripe.com/v1/subscriptions/
{{SUBSCRIPTION_ID}}
\ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "pause_collection[behavior]"=void

All invoices created before the resumes_at date are immediately voided. Stripe won’t send any upcoming invoice emails or webhooks and the subscription’s status remains unchanged.

If you don’t set a resumes_at date, the subscription remains paused until you unset pause_collection.

Manually unpausing

To resume collecting payments at any time, you can update the subscription and unset pause_collection:

Command Line
curl https://api.stripe.com/v1/subscriptions/sub_GTbTiykEwMRog0 \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "pause_collection"=

Resuming collection this way only affects future invoices.

Pausing and subscription schedules

If you pause a subscription on a subscription schedule, the scheduled updates still take effect. However, payment is not collected while the subscription is paused. When you want to collect payment again, you need to manually unpause the subscription. You also need to update auto_advance to true on any invoices with status=draft that you want to collect payment on.

Was this page helpful?
Questions? Contact us.
Watch our developer tutorials.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Offer services for free
Temporarily offer services for free and collect payment later
Unable to provide services
Manually unpausing
Pausing and subscription schedules
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to your Stripe account and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$