Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
Overview
Billing
OverviewAbout the Billing APIs
Subscriptions
    How subscriptions work
    Quickstart
    Use cases
    Build your integration
    Subscription features
      Subscription invoices
      Subscription schedules
      Subscription pricing
      Recurring pricing models
      Embed a pricing table
      Start subscriptions
      Set quantities
      Set billing cycles
      Backdate subscriptions
      Subscribe to multiple items
      Set trial periods
      Apply coupons
      Migrate subscriptions to Stripe
      How credit prorations are calculated
      Subscription payments
      Subscription payment methods
      Integrate with third-party payment processing
      Collection methods
      Strong Customer Authentication (SCA)
      Manage subscriptions
      Modify subscriptions
        Change prices
        Cancel subscriptions
        Pause payment collection
        Manage prorations
      Manage pending updates
    Entitlements
    Analytics
Invoicing
Usage-based billing
Quotes
Customer management
Billing with other products
Revenue recovery
Automations
Revenue recognition
Test your integration
Tax
Overview
Use Stripe tax
Manage compliance
Reporting
Overview
Select a report
Configure reports
Reports API
Reports for multiple accounts
Revenue recognition
Data
OverviewSchema
Custom reports
Data Pipeline
Data management
HomeRevenueSubscriptionsSubscription featuresModify subscriptions

Pause payment collection

Learn how to pause payment collection on subscriptions.

Caution

Subscriptions with paused collection can’t move into status=paused. Only ending free trial periods without a payment method cause subscriptions to enter a paused status.

Pausing payment collection is often used to temporarily offer your services for free. This is sometimes referred to as a “grace period” if a customer needs additional time to pay or can’t pay for one or more billing cycles.

You can pause or resume collection in the Stripe Dashboard or the API. While collection is paused, subscriptions still generate invoices, but you have a few options for handling these invoices. Review the following use cases to determine the best approach for you:

Use caseAPI configuration
Temporarily offer services for free and never collect paymentUse behavior=void
Temporarily offer services for free and collect payment laterUse behavior=keep_as_draft
Temporarily offer services for free and mark invoice as uncollectibleUse behavior=mark_uncollectible

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

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

Temporarily offer services for free and never collect payment

If you temporarily want to offer your services for free and you don’t want to collect payment on the invoice (for example, a “grace period”), you can void invoices that your subscription creates to make sure that your customers aren’t charged and the subscription remains status=active. 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
curl https://api.stripe.com/v1/subscriptions/
{{SUBSCRIPTION_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "pause_collection[behavior]"=void

All invoices created before the resumes_at date are immediately marked as void. 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.

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
curl https://api.stripe.com/v1/subscriptions/
{{SUBSCRIPTION_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -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 finalises 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
curl https://api.stripe.com/v1/invoices/
{{INVOICE_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d auto_advance=true

Temporarily offer services for free and mark invoices as uncollectible

If you temporarily want to offer your services for free and mark any invoices generated by the subscription as uncollectible, use the Subscription ID to update pause_collection[behavior] to mark_uncollectible and optionally pause_collection[resumes_at] to the date you want to start collecting payments again. This makes sure that any downstream reporting is accurate, your customer isn’t charged, and the subscription remains status=active.

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

If you set pause_collection[behavior] to mark_uncollectible, we’ll stop active payment collection on new invoices the subscription creates before the resumes_at date. Stripe won’t send any upcoming invoice emails or webhooks for these invoices.

Despite this pause, Stripe applies any existing customer balance to invoices. This behaviour helps use available funds before we mark an invoice as uncollectible. If the invoice’s total is paid off entirely using customer balance, then the invoice’s status is set to paid. Otherwise, the invoice’s status is set to uncollectible.

If you don’t set a resumes_at date, the payment collection on 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
curl https://api.stripe.com/v1/subscriptions/sub_GTbTiykEwMRog0 \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -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?
YesNo
Need help? Contact Support.
Join our early access programme.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc