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 case | API configuration |
---|---|
Temporarily offer services for free and never collect payment | Use behavior=void |
Temporarily offer services for free and collect payment later | Use behavior=keep_ |
Temporarily offer services for free and mark invoice as uncollectible | Use behavior=mark_ |
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.
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_
to void
and pause_
to the date you want to start collecting payments again.
All invoices created before the resumes_
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_
date, the subscription remains paused until you unset pause_
.
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_
. If you know when you want to resume collection, pass a timestamp for resumes_
.
All invoices created before the resumes_
date remain in draft
state and auto_
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_
date, the subscription remains paused until you unset pause_
.
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_
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_
:
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_
to mark_
and optionally pause_
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
.
All invoices for the subscription created before the resumes_
date are immediately marked as uncollectible. Stripe wonât send any upcoming invoice emails or webhooks and the subscriptionâs status remains unchanged.
If you donât set a resumes_
date, the subscription remains paused until you unset pause_
.
Manually unpausing
To resume collecting payments at any time, you can update the subscription and unset pause_
:
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_
to true
on any invoices with status=draft
that you want to collect payment on.