Skip to content
Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Finance automation
Banking as a service
Developer tools
No-code
All products
Home
Payments
Finance automation
Home
Payments
Finance automation
Banking as a service
Developer tools
Overview
Billing
    Overview
    Subscriptions
      How subscriptions work
      Quickstart
      Build a subscriptions integration
      Embed a pricing table
      Design an integration
      Migrate subscriptions to Stripe
      Coupons and promotions
      Recurring pricing models
      Manage subscription cycles
        Set billing cycles
        Upgrade and downgrade subscriptions
        Pause payment collection
        Manage pending updates
        Cancel subscriptions
        Manage prorations
        Share a link to update payment details
        Customer credit balance
        Set payment methods for subscriptions
      Subscription schedules
      Tax
      Subscription webhooks
    Invoicing
    Quotes
    Manage recurring revenue
    Products and prices
    Customer management
    Test your integration
    Strong Customer Authentication (SCA)
    Invoices API updates
Tax
Reporting
Data
Startup incorporation
Account
HomeFinance automationBillingSubscriptionsManage subscription cycles

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.

Caution

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.

Caution

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?
Need help? Contact Support.
Watch our developer tutorials.
Check out our product changelog.
Questions? Contact Sales.
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.
$