Receipts and paid invoices
Send customer receipts for payments or refunds.
Stripe creates receipts for all successful payments and refunds, including invoice payments and recurring payments as part of a subscription. Customers can view their receipts online through a web browser, and optionally download receipts as PDFs.
Automatically send receipts Recommended
You can automatically send customer receipts by email. Automatic receipts are available for payments and refunds.
- In the Dashboard, open Settings > Business > Customer emails.
- Under Payments, toggle Successful payments or Refunds.
For payments, receipts are only sent if the payment succeeds. Nothing is sent if a payment fails or gets declined.
Regional considerationsMexico
Businesses in Mexico can download refund receipts from the Dashboard. These receipts contain additional information about the refund, such as refund status and refund type.
Manually send receipts
You can send email receipts manually from the Dashboard. Manual receipts are available for payments and refunds.
- In the Dashboard, open Transactions > Payments.
- Click the successful payment or refund you want to send a receipt for. Only successful payments have receipts available.
- On the payment details page, go to Receipt history.
- Click the overflow menu (), and select Send receipt.
- Confirm or update the customer’s email address. You can send to multiple recipients by adding more email addresses as a comma-separated list.
- Click Send.
The receipt history on the payment details page displays up to 10 receipts.
Receipt URLs
Every receipt has a URL that the customer can view in a web browser. To link to a receipt from your application, use the receipt_url attribute of the Charge object.
Expired receipt URLs
Receipts don’t expire, but for security reasons, links to receipts expire after 30 days. If a receipt link has expired, Stripe asks the customer to provide the email address associated with the original transaction. Stripe creates a new link and sends it to that email.
Test receipts
Test payments using a sandbox or test mode key only automatically send receipts if the customer email belongs to a verified email that has sandbox permissions for your Stripe account.
If you need to send a receipt for a test payment to any other email, send a manual receipt.
Paid invoice receipts
You can generate paid invoice receipts, which include more detail than standard receipts. For subscriptions, Stripe generates invoices automatically, but you need to enable them for one-time payments.
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.
Automatically send paid invoices
- Enable automatic receipts.
- Set invoice_creation[enabled] to
truewhen creating a checkout session:
curl https://api.stripe.com/v1/checkout/sessions \ -u ":" \ -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=elements \ --data-urlencode "return_url=https://example.com"sk_test_Hrs6SAopgFPF0bZXSN3f6ELN
After the payment completes successfully, Stripe sends an invoice summary to the email that the customer provided. This summary includes links to download PDFs of both the invoice and payment receipt.
You can listen for the invoice.paid event if you need to access invoice receipts programmatically.
Note
Invoice receipts are only sent after the payment completes successfully, not when the checkout session ends. Delayed or asynchronous payment methods can therefore take longer to trigger receipts. This includes methods like Bacs Direct Debit, Bank transfers, Boleto, Canadian pre-authorized debits, Konbini, OXXO, Pay by Bank, SEPA Direct Debit, and ACH Direct Debit.
Customize receipts
You can customize your receipts to match your business’s visual design, along with the business information to display.
Branding
Your branding settings control the visual display of your receipts and other Stripe interfaces.
- In the Dashboard, go to Settings > Business > Branding.
- Click the Email receipts tab.
- For the image type you want to add, click the plus icon (), then select your file. Make sure it meets all the requirements.
- For your color scheme, select your brand color and your accent color. You can use the dropdown color picker, or provide a color code as HEX or RGB values.
- Click Save changes.
Image requirements
Image requirements are the same for both the logo and icon files, but the icon is displayed at smaller sizes.
| Dimensions |
|
| Supported file types |
|
| Maximum file size | 512 KB |
Business information
Your business details control the information that displays on receipts and other Stripe interfaces.
- In the Dashboard, go to Settings > Business > Business details.
- Under Public details, click Edit.
- Update your customer support information, noting the requirements.
- Click Save.
Support requirements
For compliance reasons, some contact information is always required on receipts:
- Legal business name
- Customer support address
- Customer support email
- Privacy policy URL
Localization
The language of the receipt and invoice is determined by the customer information available when you create the checkout session.
| Customer information | Localization setting |
|---|---|
| Customer has Account v2. | Invoice uses value of defaults.locales attribute. |
| Customer has Customer account v1. | Invoice uses value of preferred_locales attribute. |
| Customer has no locale data available. | Invoice uses Default language from your Customer emails settings. |
| No customer information provided. | Invoice defaults to the user’s browser locale when they open the checkout session URL. |
Custom invoice data
When creating a checkout session, you can pass custom values to the invoice_creation.invoice_data object to customize your invoices:
curl https://api.stripe.com/v1/checkout/sessions \ -u ":" \ -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=elements \ --data-urlencode "return_url=https://example.com"sk_test_Hrs6SAopgFPF0bZXSN3f6ELN
Review invoicing 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.
Stripe Connect customizations
If you use Connect, receipt settings depend on the charge and account type used by your platform or marketplace:
Destination charges and separate charges and transfers: Receipts use the platform account’s Customer emails, Branding, and Public details settings.
Direct charges: Receipts use the connected account’s Customer emails, Branding, and Public details settings.
Platform accounts can send a receipt for a connected account by passing receipt_ when making a charge request.
For connected accounts that use the Stripe Dashboard (which includes Standard connected accounts), you can configure receipt settings under Branding. For connected accounts that don’t use the Dashboard (which includes Express and Custom connected accounts), the platform configures receipt settings through settings.branding.