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
Support
Overview
Overview
How Checkout works
Quickstart
Fulfill your orders
Migrate payment methods to the Dashboard
Migrate from legacy Checkout
Migrate Checkout to use Prices
Customize your integration
Customize branding
Collect taxes
Collect tax IDs
Collect phone numbers
Post-payment invoices
Make line item quantities adjustable
Let customers decide what to pay
Boost revenue
Present local currencies
Configure subscription upsells
Configure cross-sells
Recover abandoned carts
Collect consent for promotional emails
Analyze conversion funnel
Additional features
Add discounts
Add shipping
Start a free trial without collecting payment details
Manage limited inventory
Guest customers
Testing
Checkout
·
HomePayments

Send post-payment Invoices with Checkout

Learn how to send post-payment Invoices to your customers with Checkout.

You can configure Checkout to send detailed Invoices to your customers for successful one-time payments. For payment mode Sessions, follow this guide to learn how to create and send invoices to your non-subscribed customers. Because Checkout creates invoices automatically on all subscription mode Sessions, you don’t need any additional configuration.

Invoice creation for one-time payments in Checkout is not an Invoicing feature, and is priced separately. Review this support article to learn more.

The following guide assumes that you already integrated Checkout. If you haven’t, see the getting started guides.

Enable invoice creation

To enable invoice creation, set invoice_creation[enabled] to true when creating a Checkout session.

Command Line
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d mode=payment \ -d "invoice_creation[enabled]"=true \ -d "line_items[0][price]"="{{ONE_TIME_PRICE_ID}}" \ -d "line_items[0][quantity]"=1 \ -d success_url="https://example.com" \ -d cancel_url="https://example.com"

When you enable invoice_creation, there is no change to the Checkout Session interface. The existing experience and feature-set your customers are familiar with remains unchanged.

After the session

Receipts in test mode

Receipts for payments created using your test API keys aren’t sent automatically. View or manually send a receipt using the Dashboard.

After the session, Stripe sends an invoice summary with links to download the invoice PDF and invoice receipt to the email address your customer provides during checkout.

Screenshot of the invoice PDF that customers can download from the invoice summary email

Customers can download the invoice PDF.

Screenshot of the invoice receipt that customers can download from the invoice summary email

Customers can download the invoice receipt.

Screenshot of the invoice summary email Stripe sends

The email sent to customers includes links to download the invoice PDF or receipt.

You need to enable the Email customers about successful payments Dashboard setting to have Stripe send invoice summary emails to your customers. You can prevent Stripe from sending these emails by disabling the setting.

You can also view the invoice in the Dashboard or access it programmatically by listening to the invoice.paid webhook event.

  • When you enable invoice creation in Checkout, Stripe emits an invoice.paid event as soon as the payment tied to the Checkout Session succeeds. The event contains the full Invoice object, which you can use to generate emails and trigger fulfillment logic. Follow the webhooks guide to set up a new webhook endpoint if you haven’t already.

Customizing the Invoice

You can use the invoice_data hash inside invoice_creation to further customize the invoice generated by the Checkout Session.

Command Line
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d mode=payment \ -d "invoice_creation[enabled]"=true \ -d "invoice_creation[invoice_data][description]"="Invoice for Product X" \ -d "invoice_creation[invoice_data][metadata][order]"=order-xyz \ -d "invoice_creation[invoice_data][account_tax_ids][0]"=DE123456789 \ -d "invoice_creation[invoice_data][custom_fields][0][name]"="Purchase Order" \ -d "invoice_creation[invoice_data][custom_fields][0][value]"=PO-XYZ \ -d "invoice_creation[invoice_data][rendering_options][amount_tax_display]"=include_inclusive_tax \ -d "invoice_creation[invoice_data][footer]"="B2B Inc." \ -d "line_items[0][price]"="{{ONE_TIME_PRICE_ID}}" \ -d "line_items[0][quantity]"=1 \ -d success_url="https://example.com" \ -d cancel_url="https://example.com"

Review invoice best practices for your region to make sure you’re collecting the right information from your customers. Information like the customer’s billing and shipping addresses, phone number and tax ID appear on the resulting invoice.

Was this page helpful?
Questions? Contact us.
Watch our developer tutorials.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Enable invoice creation
After the session
Customizing the Invoice
Stripe Shell
Test mode
▗▄ ▄▟█ █▀▀ ▗▟████▙▖ ██████ ███▗▟█ ███ ███▗▟██▙▖ ▗▟█████▙▖ ███▖ ▀▀ ███ ███▀▀▀ ███ ███▀ ███ ███ ███ ▝▜████▙▖ ███ ███ ███ ███ ███ █████████ ▄▄ ▝███ ███ ▄ ███ ███ ███▄ ███ ███ ▄▄ ▝▜████▛▘ ▝▜███▛ ███ ███ ███▝▜██▛▘ ▝▜█████▛▘ ███ ▀▘
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to Stripe docs and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported 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.
$