Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseUse Managed Payments
Use Payment Links
Use a prebuilt checkout page
Build a custom integration with Elements
    Overview
    Compare Checkout Sessions and PaymentIntents
    Quickstart guides
    Design an advanced integration
    Customize look and feel
    Manage payment methods
    Collect additional information
    Build a subscriptions integration
    Dynamic updates
    Add discounts
    Collect taxes on your payments
    Let customers pay in their local currency
    Save and retrieve customer payment methods
    Send receipts and paid invoices
    Manually approve payments on your server
    Authorize and capture a payment separately
    Elements with Checkout Sessions API beta changelog
Build an in-app integration
Payment methods
Add payment methods
Manage payment methods
Faster checkout with Link
Payment interfaces
Payment Links
Checkout
Web Elements
In-app Payments
Payment scenarios
Handle multiple currencies
Custom payment flows
Flexible acquiring
Orchestration
In-person payments
Terminal
Beyond payments
Incorporate your company
Crypto
Agentic commerce
Financial Connections
Climate
Understand fraud
Radar fraud protection
Manage disputes
Verify identities
HomePaymentsBuild a custom integration with Elements

Email receipts

Automatically send receipts and paid invoices.

You can manually or automatically send customized email receipts or paid invoices. Learn more about receipts for payments.

Automatically send receipts

To enable automated receipts, toggle Successful payments on in your Customer emails settings. Receipts are only sent for a successful payment. Receipts aren’t sent for failed or declined payments.

Customize receipts

Alter the appearance and functionality of your receipts with the following customization options:

  • Branding: Modify the logo and colors in your Branding settings. The upper limit for a custom logo image file size is 512KB. Ideally, the logo should be a square image exceeding 128 x 128 pixels. JPG, PNG, and GIF file types are supported.
  • Public information: Specify the public information you want to include, such as your contact number or website address, in your Public details settings.

To display custom text, use the payment_intent_data.description attribute on the Checkout Session. Some examples include:

  • Description of goods or services provided
  • Authorization code
  • Subscription information
  • Cancellation policies

You can see a real-time preview of your email receipt on your Dashboard Branding settings page. To send a test receipt, hover over the preview image and click Send test receipt, then enter your email address.

Caution

Receipts pull data from the Charge object generated when the PaymentIntent is confirmed. To update receipt data such as the description after the charge is generated, you must update the Charge. Changes to a confirmed PaymentIntent don’t appear on receipts.

Automatically send paid invoices

In addition to ordinary receipts, you can configure the Checkout Session to generate paid invoices as proof of payment. Invoices have more information than receipts. For subscriptions, Stripe generates invoices automatically, but for one-time payments, you need to enable them.

Note

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

To generate invoices, select Successful payments under Email customers about in your Customer emails settings. Then, set invoice_creation[enabled] to true when creating a Checkout Session.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=payment \ -d "invoice_creation[enabled]"=true \ -d "line_items[0][price]"={{ONE_TIME_PRICE_ID}} \ -d "line_items[0][quantity]"=1 \ -d ui_mode=custom \ --data-urlencode return_url="https://example.com"

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.

Caution

Invoices for delayed notification payment methods might take longer to send because we send the invoice after successful payment, not when the checkout session completes. These payment methods include Bacs Direct Debit, Bank transfers, Boleto, Canadian pre-authorized debits, Konbini, OXXO, Pay by Bank, SEPA Direct Debit, SOFORT, and ACH Direct Debit.

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

The downloadable invoice PDF

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

The downloadable invoice receipt

Screenshot of the invoice summary email Stripe sends

The customer email with links to the invoice PDF and receipt

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

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

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -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 ui_mode=custom \ --data-urlencode return_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.

Localization

When using Checkout Sessions, the language of the receipt and invoice is determined by several factors:

  • If you set a Customer, their preferred locale is used if available.
  • If you set a Customer without any preferred locales, we apply the language setting from the Dashboard.
Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Join our early access program.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc