Send invoices to customers
You can collect payment for one-off invoices and subscriptions in two ways:
- Charge invoices automatically through Stripe, using the customer’s default payment method.
- Send an invoice to a customer via email (this document). You can use these email invoices for both subscriptions and one-off invoices, and you can (optionally) include a Stripe-generated payment page.
You can send an invoice entirely through the Dashboard. This guide describes how to send invoices through the API.
Sending one-off invoices
Send one time invoices to the email address specified in customer.email
. First, configure your invoices. Then, create invoice items for the customer:
Next, create an invoice for that customer:
Calling the above command creates a draft invoice that you can continue to update. When you’re ready to bill, you can finalize the invoice and send it to the customer:
As with subscription invoices, Stripe sends one-off invoices to the email address associated with the customer.
Sending invoices with a subscription
If you sell to other businesses, automatically charging a card on file isn’t always the norm. Instead, customers might ask that you send them an invoice, which they’ll pay on their own schedule. Stripe can help you take care of status tracking and retry settings on these recurring invoices.
If you want to send out invoices that bill on a regular interval, start by creating a subscription with the Subscription object’s collection_method
attribute set to send_invoice
.
For each billing cycle, Stripe generates an invoice associated with that subscription. Stripe automatically sends an email to your customer’s email address approximately one hour after delivering the invoice.created
webhook event. When Stripe sends the the email, it emits the invoice.sent
webhook.
The webhook payload includes all the details about the invoice, such as merchant and customer address, line items, final payment amount, due date, and payment method.
The properties of the subscription and one-off items added to the invoice determine the line items and payment amount. The due date is the number of days_until_due
after the invoice’s finalization date.
Sending email reminders
When sending invoices to your customers, Stripe sends your customers payment reminders on a pre-defined schedule specified in your email reminders settings.
Reminders contain a copy of the original invoice and can include payment instructions.
You can also initiate an email yourself from the Stripe Dashboard. Visit the invoice and click its Send invoice button.
If you’d like to trigger reminder emails yourself via the API, request email delivery of the invoice email by calling the /send
endpoint:
Overdue payments
An invoice is considered overdue when its due date has passed and the invoice hasn’t been paid. Stripe normally continues to remind your customer to pay the invoice even after the due date. However, by modifying your Automatic collection settings, you can disable automatic collection on the invoice when it becomes past due.
When the latest invoice for a subscription becomes past due, the subscription’s own status changes to past due. Depending on your Automatic collection settings, overdue invoices can cause the subscription to automatically be marked unpaid or canceled.
Building your own email templates
You can implement your own custom-designed email templates to replace Stripe’s built-in Billing emails. Doing so is straightforward with our comprehensive set of webhook events.
Stripe can send webhooks to your application to notify you of changes within Stripe, such as invoices’ being finalized, paid, and marked uncollectible. For each event that you receive, you can construct and deliver your own emails.
Stripe sends the following events during the invoice lifecycle: invoice.created
, invoice.finalized
, invoice.sent
, invoice.paid
.
In the Dashboard’s Automatic collection Settings, you can disable all of Stripe’s automatic invoice emails by making appropriate selections in the Manage invoices sent to customers section. When emails are disabled, the emails won’t be sent, but you’ll continue to receive webhooks as normal so that you can use Stripe’s invoice reminders for your own email solution.