How invoicing works
Learn more about the basics of Stripe Invoicing.
Invoices provide an itemized list of goods and services rendered, which includes the cost, quantity, and taxes. You can send invoices to customers to collect payment or you can create an invoice and automatically charge a customer’s saved payment method. Subscriptions automatically generate invoices for each billing cycle. Learn more about the invoice lifecycle for subscriptions.
When you create an invoice, you can select an existing customer and product or create and save new ones. You can also create one-time products that only exist on the current invoice.
You can use both the Dashboard and the API to create, edit, and manage invoices.
Invoice lifecycle ![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
After they’re created manually or as part of a subscription, invoices move through a series of statuses as they’re created and processed. Stripe calls this the automatic collection workflow.
The basic lifecycle for invoices looks like this:
- A newly created invoice has
draft
status. - Stripe finalizes an invoice when it’s ready to be paid by changing its status to
open
. You can no longer change most details of a finalized invoice. - Stripe can wait for the customer to pay the invoice or automatically attempt to pay it using the customer’s default payment method.
- If payment succeeds, Stripe updates the invoice status to
paid
. - If payment fails, the invoice remains
open
.
- If payment succeeds, Stripe updates the invoice status to
- Optionally, you can change the status of an unpaid invoice to
void
oruncollectible
.
You can configure Stripe to send customer emails at different stages of the invoice lifecycle, such as when it finalizes an invoice or when automatic payment fails.
Invoice statuses ![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Invoices can have one of five statuses. The actions you can take on an invoice depend on its status.
Status | Description | Possible Actions |
---|---|---|
draft | The invoice isn’t ready to use. All invoices start in draft status. |
|
open | The invoice is finalized and awaiting payment. |
|
paid | This invoice is paid. |
|
void | This invoice is canceled. |
|
uncollectible | The customer is unlikely to pay the invoice. Normally, you treat it as bad debt in your accounting process. |
|
Draft invoices ![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
You can update almost any details of a draft
invoice. You can also delete it, unless it’s associated with a subscription. When a draft
invoice is ready to send for payment, you finalize it by changing its status to open
.
You can delete a draft
invoice. You can’t recover a deleted invoice.
Open invoices ![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
The invoice has been finalized and is awaiting customer payment. If its amount due is less than the minimum chargeable amount, it automatically transitions to paid
status and Stripe debits the amount from the customer’s credit balance.
In the Dashboard, invoices in open
status can display a different badge, such as Past due
or Retrying
. In some scenarios, you can hover over the badge to view an explanatory tooltip.
If an open non-subscription invoice is waiting for a payment that’s initiated but still pending, it shows the Pending
badge in the list of invoices. However, its details page shows the Open
badge.
You can update only a few elements of an open invoice, such as the memo or metadata. To make more substantive changes, you must revise the invoice by replacing it with a new one.
You can’t delete a finalized invoice. To cancel it, change its status to void
.
Paid invoices ![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
The customer has paid the invoice. This status is terminal, which means that the invoice’s status can never change.
Out of band invoices![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
If a customer pays an invoice out of band (outside of Stripe), you can manually change the status to paid
through the Dashboard or API.
Void invoices ![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Voiding an invoice is conceptually similar to deleting or canceling it. However, voiding an invoice maintains a paper trail, which allows you to look up the invoice by number. Voided invoices are treated as zero-value for reporting purposes, and aren’t payable. This status is terminal, which means that the invoice’s status can never change.
After you void an invoice, the Hosted Invoice Page is still accessible, and displays a message indicating that the invoice has been voided. You can only void an invoice in open
or uncollectible
status.
Note
Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you’re doing business in. You might need to issue another invoice or credit note instead. Stripe recommends that you consult with your legal counsel for advice specific to your business.
Uncollectible invoices ![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Sometimes your customers can’t pay their outstanding bills. For example, assume that you provide 1,000 USD worth of services to your customer, but they’ve since declared bankruptcy and have no assets to pay the invoice.
As a result, you decide to write off the invoice as unlikely to be paid. In this case, you can update the status of the invoice to be uncollectible
. This allows you to track the amount owed for reporting purposes as part of your bad debt accounting process.