Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
Security
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Overview
Customers
Products and Prices
Tax Rates
Customer portal
Quotes
Start with a use case
Subscriptions with Checkout
Fixed-price subscriptions with Elements
Metered billing with Elements
Per-seat billing with Elements
Manage subscriptions
How subscriptions work
Subscription webhooks
Change subscriptions
Strong Customer Authentication (SCA)
Improved tax support
Invoices API updates
Migrating to Prices
Additional features
Testing
Add payment methods
Bacs Direct Debit in the UK
BECS Direct Debit in Australia
SEPA Direct Debit in the EU
Invoice customers
How invoices work
Create an invoice
Customize invoices
Hosted invoice page
Additional features
Account tax IDs
Automated reconciliation
Automatic collection and dunning
Charging automatically
Credit notes
Pay by mailed check
Sending invoices to customers
Subscription invoices
Tax rates on invoices
Types of tax IDs on invoices
Revenue recognition
Overview
Reports
Methodology
Examples
Overrides
Testing
billing
·
HomePaymentsSubscriptionsAdditional features

Send invoices to customers

Learn how to email invoices to your customers.

Compliance

Stripe’s invoices are flexible and customizable. Because you know more about your customers and your business than Stripe does, be sure to check that your invoices include all required information, that this information is accurate, that invoices charge the appropriate tax, and that your invoices comply with all applicable laws and regulations in your region.

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:

Terminal
curl https://api.stripe.com/v1/invoiceitems \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "price"="price_CBb6IXqvTLXp3f" \ -d "customer"="cus_4fdAW5ftNQow1a"

Next, create an invoice for that customer:

Terminal
curl https://api.stripe.com/v1/invoices \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "customer"="cus_4fdAW5ftNQow1a" \ -d "collection_method"="send_invoice" \ -d "days_until_due"=30

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:

Terminal
curl https://api.stripe.com/v1/invoices/in_18jwqyLlRB0eXbMtrUQ97YBw/send \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -X "POST"

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.

Terminal
curl https://api.stripe.com/v1/subscriptions \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "customer"="cus_4fdAW5ftNQow1a" \ -d "items[0][price]"="price_CBb6IXqvTLXp3f" \ -d "collection_method"="send_invoice" \ -d "days_until_due"=30

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:

Terminal
curl https://api.stripe.com/v1/invoices/:id/send \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -X "POST"

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.

Was this page helpful?
Questions? Contact us.
Developer tutorials on YouTube.
You can unsubscribe at any time. Read our privacy policy.
On this page
Sending one-off invoices
Sending invoices with a subscription
Sending email reminders
Overdue payments
Building your own email templates