Terminal
Receipts

Receipts

Use Stripe to easily provide your customers with receipts that meet card network rules and local regulatatory requirements.

Card network rules and local regulatatory 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. Thankfully, Stripe provides everything you need to start offering receipts with your first transaction.

Receipts must contain certain fields to comply with card network rules and local regulatatory requirements. 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.

If you have the customer’s email, 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 the PaymentIntent is captured.

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 and local regulatatory requirements require you to include several fields on the receipts you provide to customers.

The Stripe API makes it easy to fetch necessary fields for compliance-ready receipts.

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

Field Name Requirement

application_preferred_name

Application name

Required

dedicated_file_name

AID

Required

account_type

Account Type

Optional (but required for Interac)

application_cryptogram

Application Cryptogram

Optional

authorization_response_code

ARC

Optional

terminal_verification_results

TVR

Optional

transaction_status_information

TSI

Optional

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

Field Name Requirement

application_preferred_name

Application name

Required

dedicated_file_name

AID

Required

account_type

Account Type

Optional

application_cryptogram

Application Cryptogram

Optional

authorization_response_code

ARC

Optional

terminal_verification_results

TVR

Optional

transaction_status_information

TSI

Optional

You can access these fields server-side via 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.

Was this page helpful?
Questions? Contact us.
Developer tutorials on YouTube.