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
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
    Overview
    Accept in-person payments
    Integration design
    Select your reader
    Design an integration
    Quickstart
    Example applications
    Testing
    Terminal setup
    Set up your integration
    Connect to a reader
    Accepting a payment
    Collect card payments
    Additional payment methods
    Accept offline payments
    Mail order and telephone order payments
    Regional considerations
    During checkout
    Collect tips
    Collect and save payment details for future use
    Flexible authorisations
    After checkout
    Refund transactions
    Provide receipts
    Customize checkout
    Cart display
    Collect on-screen inputs
    Collect swiped data
    Collect tapped data for NFC instruments
    Apps on devices
    Manage readers
    Order, return, replace readers
    Register readers
    Manage locations and zones
    Configure readers
    Encryption
    References
    API references
    Mobile readers
    Smart readers
    SDK migration guide
    Deployment checklist
    Stripe Terminal reader product sheets
Other Stripe products
Financial Connections
Crypto
Climate
HomePaymentsTerminal

Provide receipts

Use Stripe to provide your customers with receipts that meet card network rules.

Copy page

Receipts in a sandbox

Receipts for payments created using your test API keys are not sent automatically. Instead, you can view or manually send a receipt using the Dashboard.

Card network rules and local regulatory requirements are different for in-person payments. If you accept payments using Stripe Terminal, you must provide customers with the option to receive a physical or email receipt. Stripe provides everything you need to start offering receipts with your first transaction.

Receipts must contain certain fields to comply with card network rules. You can use Stripe’s prebuilt email receipts, or use receipt data from the Stripe API and your Terminal integration to generate on-brand custom receipts.

Prebuilt email receipts

Prebuilt email receipts already include all card network-required fields. It’s the simplest way to set up compliant receipts.

SDK Reference

  • receipt_email
  • receiptEmail (iOS)
  • receiptEmail (Android)
  • receiptEmail (React Native)
  • receiptEmail (Java)

If you have the customer’s email address, use the receipt_email field when creating a PaymentIntent. When you provide a receipt_email, Stripe automatically emails a compliant receipt to the customer when capturing the PaymentIntent.

To trigger an automatic email receipt after the customer checks out, update the PaymentIntent’s receipt_email with the customer’s email.

For more information about automatic email receipts, see Email Receipts.

Custom receipts

You can also customize receipts to include any design and content you want—as long as you list required information. When you accept in-person payments with EMV chip cards, card networks require you to include several fields on the receipts you provide to customers.

The Stripe API allows you to fetch necessary fields for compliance-ready receipts.

The following fields become available in the PaymentIntent object as soon as the payment is confirmed.

FieldNameRequirement
account_typeAccount TypeRequired (Optional in US)
application_preferred_nameApplication nameRequired
dedicated_file_nameAIDRequired
authorization_response_codeARCOptional
application_cryptogramApplication CryptogramOptional
terminal_verification_resultsTVROptional
transaction_status_informationTSIOptional

SDK Reference

  • receipt
  • ReceiptDetails (iOS)
  • ReceiptDetails (Android)
  • ReceiptDetails (React Native)
  • ReceiptDetails (Java)

You can access these fields server-side using the Stripe API, or client-side using the Stripe Terminal SDKs. When using the JavaScript SDK, the PaymentIntent object matches the API object.

Whether you’re emailing or printing your custom receipts for Terminal payments, be sure to include the required fields to meet card network rules. If provided, you can also access the cardholder’s preferred language (based on the presented card’s settings), using the preferred_locales field on the Payment Method object.

Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access programme.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc