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.