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
Online payments
Products and prices
Invoicing
Subscriptions
Quotes
In-person payments
Multiparty payments
After the payment
Add payment methods
Payment Links
Stripe Checkout
    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
    Add custom fields
    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
Stripe Elements
About the APIs
Regulation support
Implementation guides
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.

Enabling invoice_creation isn’t supported if you set payment_intent_data[capture_method] to manual.

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 process and feature-set your customers are familiar with remains unchanged.

After payment completion

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 payment completes, Stripe sends an invoice summary with links to download the invoice PDF and invoice receipt to the email address your customer provides during checkout.

Invoices for delayed notification payment methods such as Bacs Direct Debit, Bank transfers, Boleto, Canadian pre-authorized debits, Konbini, OXXO, SEPA Direct Debit, SOFORT, or ACH Direct Debit might take longer to send because we send the invoice after successful payment, not upon checkout session completion.

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 payment completion
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 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.
$