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

    Card network rules 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. You can use Stripe’s prebuilt email receipts, or use receipt data from the Stripe API to generate on-brand custom receipts.

    Prebuilt email receipts

    Prebuilt email receipts already include all 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 require you to include several fields on the receipts you provide to customers.

    The Stripe API makes it easy to fetch all the 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
    authorization_response_code ARC Optional
    application_cryptogram Application Cryptogram 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?

    Feedback about this page?

    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.

    On this page