Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseManaged Payments
Use Payment Links
Build a checkout page
    Overview
    Quickstarts
    Customize look and feel
    Collect additional information
    Collect taxes
    Dynamically update checkout
    Manage your product catalog
    Subscriptions
    Manage payment methods
    Let customers pay in their local currency
    Add discounts, upsells, and optional items
    Set up future payments
    Save payment details during payment
    Manually approve payments on your server
    After the payment
      Fulfill orders
      Send receipts and paid invoices
      Customize redirect behavior
      Recover abandoned carts
      Analyze conversion funnel
    Elements with Checkout Sessions API beta changelog
    Migrate from legacy Checkout
    Migrate Checkout to use Prices
Build an advanced integration
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 Elements
Payment scenarios
Custom payment flows
Flexible acquiring
Orchestration
In-person payments
Terminal
Other Stripe products
Financial Connections
Crypto
Climate
HomePaymentsBuild a checkout pageAfter the payment

Email receipts and paid invoices

Send receipts for payments and refunds automatically.

Copy page

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 when a successful payment has been made—no receipt is sent if the payment fails or is declined.

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, Checkout can 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, first, in your Customer emails settings, under Email customers about, select Successful payments. Then, when creating a Checkout session, set invoice_creation[enabled] to true.

Note

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

Command Line
cURL
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 \ --data-urlencode success_url="https://example.com" \ --data-urlencode cancel_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 upon checkout session completion. These 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
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 \ --data-urlencode success_url="https://example.com" \ --data-urlencode 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.

Localization

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

  • If a Customer is set, their preferred locale are used if available.
  • If a Customer is set without any preferred locales, the language setting from the Stripe Dashboard is applied.
  • If no Customer is set, the language defaults to the browser locale of the user opening the Checkout Session URL.

See also

  • Send customer emails
  • Automate customer emails
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