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
Overview
Online payments
Products and prices
Invoicing
    Overview
    How invoicing works
    Get started
    No-code quickstart guide
    Payment methods
    Invoicing resources
    Customers
    Products and prices
    Taxes
    Manage invoices
    Use the Dashboard
    Integrate with the API
      Quickstart
      Automatic invoice advancement
      Status transitions and finalization
      Generate credit notes
      Virtual bank account numbers
      Test your integration
    Customize invoices
    Edit invoices
    Send customer emails
    Hosted Invoice Page
    Invoicing and Connect
    Automated collections
    Automatic reconciliation
    Automatic collection
    Automatic charging
    Global invoicing
    Set up invoices in Europe
    Set up invoices in Japan
    Multi-currency customers
    India e-Mandates
    Customize the IBAN country
Subscriptions
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
Invoicing
·
HomePaymentsInvoicingIntegrate with the API

Automatic invoice advancement

Learn how Stripe Invoicing handles automatic advancement and collection.

Unless you explicitly disable it, invoices you create in the Dashboard ​automatically finalize when they leave the draft state. Invoices you create with the API, however, ​​won’t automatically finalize. You must turn on automatic collection by setting the auto_advance property on the invoice to true. You must also configure a webhook endpoint to receive their associated events. When you turn auto_advance to false, you’re responsible for transitioning the invoice between statuses. To learn more, see Webhooks and finalizing invoices.

When you turn on automatic collection, Stripe does everything to drive the invoice towards payment—including automatically finalizing draft invoices after one hour. During this wait period, the invoice shows a Scheduled status.

Update automatic advancement

You can toggle the auto_advance property on draft and open invoices. Automatic advancement and collection ​​never occur on invoices that are marked uncollectible, void, or paid. For these invoices, auto_advance is always set to false:

Command Line
curl https://api.stripe.com/v1/invoices/id \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d auto_advance=false

Pause automatic advancement

In some cases, you might want to stop Stripe from automatically advancing your invoices toward collection. For example, if you want to:

  • Use your own business logic to manage the lifecycle of an invoice.
  • ​Decide if and when to send invoice emails on a per-invoice basis.

​​In both of these cases, use the auto_advance property to disable the automatic advancement and collection behavior.

Automatic advancement feature comparison

When you set auto_advance to false, Stripe disables most of the automatic features for Invoicing—leaving collection up to you. The following table outlines some key changes in the behavior of automatic collection, depending on whether auto_advance is set to true or false:

FeatureTrueFalse
Finalize drafts to open
(after approximately 1-hour)
Emailing invoices
Attempting payments
Retries (email and charge)
Invoice reminder emails
3D Secure reminder emails
Email receipts

Legend

  • = Can be enabled depending on your settings.
  • = Configurable in your settings.
  • = Not enabled. The invoice isn’t automatically transitioned.
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
Update automatic advancement
Pause automatic advancement
Automatic advancement feature comparison
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.
$