{"title":"Generate receipts","category":"default","creationDate":1564086720,"content":"<p>When you make a Terminal API transaction from your POS app, the API response includes receipt data. This contains values you can add to the receipt that you print, show, or email to your shopper.<\/p>\n<div class=\"notices yellow\">\n<p>Standalone terminals are not integrated in a POS system. They have a built-in printer that automatically prints a compliant receipt.<\/p>\n<\/div>\n<h2>Requirements<\/h2>\n<p>Before you begin, take into account the following requirements, and preparations.<\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Requirement<\/strong><\/th>\n<th><strong>Description<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Integration type<\/strong><\/td>\n<td>A <a href=\"\/point-of-sale\/design-your-integration\/terminal-api\">Terminal API integration<\/a> with payment terminals.<\/td>\n<\/tr>\n<tr>\n<td><strong>Setup steps<\/strong><\/td>\n<td>If you want to set a different language for receipts than the terminal display, check the <a href=\"#changing-receipt-languages\">Changing the receipt languages<\/a>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Generating compliant receipts<\/h2>\n<p>Card schemes have very specific requirements on what should be included on a receipt. These requirements differ per scheme and country\/region, and can change. Receipts generated by Adyen have been certified as compliant by the card schemes that we support.<\/p>\n<p>We strongly recommend generating receipts using the <a href=\"\/#receipt-data\">Adyen-generated receipt data<\/a> without alterations.<\/p>\n<p>Card schemes will occasionally visit stores to verify that the receipts are fully compliant. Non-compliant receipts can result in payments being <a href=\"\/get-started-with-adyen\/adyen-glossary\/#chargeback\">charged back<\/a>.<\/p>\n<div class=\"notices red\">\n<p>If you override the <a href=\"#receipt-data\">Adyen-generated receipt data<\/a>, or validate values against a hard-coded list, it is your responsibility to ensure that scheme requirements are met at all times.<\/p>\n<\/div>\n<h2>URL encoding<\/h2>\n<p>If the Terminal API request includes characters from a non-Latin script, those characters are URL-encoded. To ensure those characters appear correctly on the printed receipt, you first need to URL-decode the <code>PaymentReceipt<\/code> object from the payment response.<\/p>\n<h2>Displaying virtual receipts<\/h2>\n<p>If you are using a wide-screen <a href=\"\/point-of-sale\/what-we-support\/select-your-terminals\">multimedia payment terminal<\/a>, such as the M400, you can <a href=\"\/point-of-sale\/shopper-engagement\/display-data\/display-receipt\">show line items or receipts<\/a> on the display of the terminal.<\/p>\n<h2>Receipt printing on terminals with a built-in printer<\/h2>\n<p>Some payment terminals, like the <a href=\"\/point-of-sale\/user-manuals\/v400m-user-manual\">V400m<\/a> or <a href=\"\/point-of-sale\/user-manuals\/v400c-user-manual\">V400c<\/a>, have a built-in printer. Such terminals automatically print the receipt using the Terminal API receipt data.<\/p>\n<p>You can optionally <a href=\"\/point-of-sale\/design-your-integration\/determine-account-structure\/configure-features#terminal-customization-hardware-features-and-receipts\">add your company logo<\/a> to this receipt.<\/p>\n<p>If you do not want to print the receipt on the terminal, specify the <a href=\"\/point-of-sale\/add-data\/tender-options\">tender option<\/a> <strong>ReceiptHandler<\/strong> in your payment requests.<\/p>\n<ul>\n<li>Without that tender option, a terminal with a built-in printer will print the receipt.<\/li>\n<li>With that tender option, a terminal with a built-in printer will not print the receipt. You can then let your POS app send the receipt data to your receipt printer, or email the receipt to the shopper.<\/li>\n<\/ul>\n<p>To let the shopper decide whether to print their receipt:<\/p>\n<ul>\n<li>\n<p>In your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>, go to <strong>In-person payments<\/strong> &gt; <strong>Terminal settings<\/strong> &gt; <strong>Receipts<\/strong> and enable <strong>Prompt before printing<\/strong>. The terminal will then show a screen like the following after a transaction.<\/p>\n<p><img alt=\"\" src=\"\/images\/d\/4\/2\/7\/c\/d427c437f2fef8bf961ca4fcecf1aeb5437c859c-screen-enprint-prompt-approved.png\" \/><\/p>\n<\/li>\n<\/ul>\n<h2 id=\"changing-receipt-languages\">Changing the receipt languages<\/h2>\n<p>You can customize the languages used for the terminal display, and receipts. This includes setting the terminal's primary and secondary languages, and excluding languages from use on the shopper receipt, for example if your integration has character set limitations.<\/p>\n<p>To configure a specific merchant or shopper receipt language that differs from the primary and secondary terminal languages, contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a>.<\/p>\n<h3>Change your receipt language settings<\/h3>\n<p>To change your terminal and receipt language settings:<\/p>\n<ol>\n<li>Log in to your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>.<\/li>\n<li>Switch to your merchant account.<\/li>\n<li>Go to <strong>In-person payments<\/strong> &gt; <strong>Terminal settings<\/strong>.<\/li>\n<li>Under <strong>Customization<\/strong> &gt; <strong>Location<\/strong>, configure the following:\n<ul>\n<li><strong>Primary language:<\/strong> Sets the default language for the terminal and acts as a language option for receipts.<\/li>\n<li><strong>Secondary language:<\/strong> Sets the terminal's secondary language and acts as a language option for receipts if the shopper selects it.<\/li>\n<li><strong>Exclude shopper language:<\/strong> Prevents a specific language from being used on shopper receipts.<\/li>\n<\/ul><\/li>\n<\/ol>\n<div class=\"notices blue\">\n<p>If you want to <a href=\"\/point-of-sale\/mobile-android\/manage#change-the-receipt-language\">change the language<\/a> for either or both receipts for your mobile solution, contact our <a href=\"https:\/\/support.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support team<\/a>.<\/p>\n<\/div>\n<h3>Receipt language flows<\/h3>\n<p>When a receipt is generated, the terminal follows a specific flow to select the language. If at any step the selected language is excluded from use, the terminal ignores it and moves to the next step.<\/p>\n<ul>\n<li>\n<p><strong>Merchant receipt:<\/strong> The terminal first checks if a specific merchant receipt language is configured by our Support Team. If the language is not configured, the terminal uses the primary language. The receipt language falls back to English if the primary language is not configured.<\/p>\n<\/li>\n<li>\n<p><strong>Shopper receipt:<\/strong> The terminal first checks if a specific shopper receipt language is configured by our Support Team. If the language is not configured, it tries to use the language of the country or region where the card was issued. If the language of the card is unknown or excluded from use, the terminal falls back to its secondary language (if selected by the shopper). If no secondary language is configured, the terminal uses its primary language. The receipt language falls back to English if the primary language is not configured.<\/p>\n<\/li>\n<\/ul>\n<p>The following diagram shows the receipt generation flows for merchant receipt and shopper receipt:<\/p>\n<div style=\"text-align: center;\">\n\n<div id=\"mermaid-6a12dc92c673b-wrapper\"><div id=\"mermaid-6a12dc92c673b\" class=\"mermaid-shortcode loading\">CmdyYXBoIFRECiUlIFN0YXJ0aW5nIFBvaW50CiAgICBTdGFydCgiPGRpdiBzdHlsZT0nd2lkdGg6MzAwcHg7Zm9udC1zaXplOjE4cHQnPlJlY2VpcHQgZ2VuZXJhdGlvbjwvZGl2PiIpOjo6dG9wU3R5bGUKCiAgICBTdGFydCAtLS0+IE1lcmNoYW50SGVhZCgiPGRpdiBzdHlsZT0nd2lkdGg6MjUwcHg7Zm9udC1zaXplOjE4cHQnPk1lcmNoYW50IHJlY2VpcHQ8L2Rpdj4iKTo6OmNhdGVnb3J5U3R5bGUKICAgIFN0YXJ0IC0tLT4gU2hvcHBlckhlYWQoIjxkaXYgc3R5bGU9J3dpZHRoOjI1MHB4O2ZvbnQtc2l6ZToxOHB0Jz5TaG9wcGVyIHJlY2VpcHQ8L2Rpdj4iKTo6OmNhdGVnb3J5U3R5bGUKCiAgICBzdWJncmFwaCAiICIKICAgICUlIFNob3BwZXIgRGVjaXNpb24gRmxvdwogICAgICAgIFNob3BwZXJIZWFkIC0tPiBTX0NoZWNrMSgiPGRpdiBzdHlsZT0nd2lkdGg6MzAwcHg7Zm9udC1zaXplOjE2cHQnPlNob3BwZXIgcmVjZWlwdCBsYW5ndWFnZTxicj5jb25maWd1cmVkIGJ5IFN1cHBvcnQ\/PC9kaXY+Iik6OjpzdGVwU3R5bGUKICAgICAgICBTX0NoZWNrMSAtLT58PGZvbnQgc2l6ZT0nNCc+WWVzPC9mb250PnwgU19BY3Rpb24xKCI8ZGl2IHN0eWxlPSd3aWR0aDoyMDBweDtmb250LXNpemU6MTZwdCc+VGVybWluYWwgdXNlczxicj5zaG9wcGVyIHJlY2VpcHQ8YnI+bGFuZ3VhZ2U8L2Rpdj4iKTo6OmZpbmFsU3R5bGUKICAgICAgICBTX0NoZWNrMSAtLT58PGZvbnQgc2l6ZT0nNCc+Tm88L2ZvbnQ+fCBTX0NoZWNrMigiPGRpdiBzdHlsZT0nd2lkdGg6MjUwcHg7Zm9udC1zaXplOjE2cHQnPkxhbmd1YWdlIG9mIHRoZTxicj5jYXJkIHN1cHBvcnRlZD88L2Rpdj4iKTo6OnN0ZXBTdHlsZQoKICAgICAgICBTX0NoZWNrMiAtLT58PGZvbnQgc2l6ZT0nNCc+WWVzPC9mb250PnwgU19BY3Rpb24yKCI8ZGl2IHN0eWxlPSd3aWR0aDoyMDBweDtmb250LXNpemU6MTZwdCc+VGVybWluYWwgdXNlczxicj5sYW5ndWFnZSBvZiB0aGUgY2FyZDwvZGl2PiIpOjo6ZmluYWxTdHlsZQogICAgICAgIFNfQ2hlY2syIC0tPnw8Zm9udCBzaXplPSc0Jz5ObzwvZm9udD58IFNfQ2hlY2szKCI8ZGl2IHN0eWxlPSd3aWR0aDoyNTBweDtmb250LXNpemU6MTZwdCc+U2hvcHBlciBzZWxlY3RlZDxicj5zZWNvbmRhcnkgbGFuZ3VhZ2U\/PC9kaXY+Iik6OjpzdGVwU3R5bGUKCiAgICAgICAgU19DaGVjazMgLS0+fDxmb250IHNpemU9JzQnPlllczwvZm9udD58IFNfQWN0aW9uMygiPGRpdiBzdHlsZT0nd2lkdGg6MjAwcHg7Zm9udC1zaXplOjE2cHQnPlRlcm1pbmFsIHVzZXM8YnI+aXRzIHNlY29uZGFyeTxicj5sYW5ndWFnZTwvZGl2PiIpOjo6ZmluYWxTdHlsZQogICAgICAgIFNfQ2hlY2szIC0tPnw8Zm9udCBzaXplPSc0Jz5ObzwvZm9udD58IFNfQWN0aW9uNCgiPGRpdiBzdHlsZT0nd2lkdGg6MjAwcHg7Zm9udC1zaXplOjE2cHQnPlRlcm1pbmFsJ3MgcHJpbWFyeTxicj5sYW5ndWFnZSBzZXQ\/PC9kaXY+Iik6OjpzdGVwU3R5bGUKCiAgICAgICAgU19BY3Rpb240IC0tPnw8Zm9udCBzaXplPSc0Jz5ZZXM8L2ZvbnQ+fCBTX0ZpbmFsMSgiPGRpdiBzdHlsZT0nd2lkdGg6MzAwcHg7Zm9udC1zaXplOjE2cHQnPlRlcm1pbmFsIHVzZXM8YnI+aXRzIHByaW1hcnkgbGFuZ3VhZ2U8L2Rpdj4iKTo6OmZpbmFsU3R5bGUKICAgICAgICBTX0FjdGlvbjQgLS0+fDxmb250IHNpemU9JzQnPk5vPC9mb250PnwgU19GaW5hbDIoIjxkaXYgc3R5bGU9J3dpZHRoOjMwMHB4O2ZvbnQtc2l6ZToxNnB0Jz5GYWxscyBiYWNrIHRvIEVuZ2xpc2g8L2Rpdj4iKTo6OmZpbmFsU3R5bGUKICAgIGVuZAoKCiAgICBzdWJncmFwaCAiICIKICAgICUlIE1lcmNoYW50IERlY2lzaW9uIEZsb3cKICAgICAgICBNZXJjaGFudEhlYWQgLS0+IE1fQ2hlY2sxKCI8ZGl2IHN0eWxlPSd3aWR0aDozMDBweDtmb250LXNpemU6MTZwdCc+TWVyY2hhbnQgcmVjZWlwdCBsYW5ndWFnZTxicj5jb25maWd1cmVkIGJ5IFN1cHBvcnQ\/PC9kaXY+Iik6OjpzdGVwU3R5bGUKICAgICAgICBNX0NoZWNrMSAtLT58PGZvbnQgc2l6ZT0nNCc+WWVzPC9mb250PnwgTV9BY3Rpb24xKCI8ZGl2IHN0eWxlPSd3aWR0aDoyMDBweDtmb250LXNpemU6MTVwdCc+VGVybWluYWwgdXNlczxicj5tZXJjaGFudCByZWNlaXB0PGJyPmxhbmd1YWdlPC9kaXY+Iik6OjpmaW5hbFN0eWxlCiAgICAgICAgTV9DaGVjazEgLS0+fDxmb250IHNpemU9JzQnPk5vPC9mb250PnwgTV9BY3Rpb24yKCI8ZGl2IHN0eWxlPSd3aWR0aDoyMDBweDtmb250LXNpemU6MTVwdCc+VGVybWluYWwncyBwcmltYXJ5PGJyPmxhbmd1YWdlIHNldD88L2Rpdj4iKTo6OnN0ZXBTdHlsZQoKICAgICAgICBNX0FjdGlvbjIgLS0+fDxmb250IHNpemU9JzQnPlllczwvZm9udD58IE1fRmluYWwxKCI8ZGl2IHN0eWxlPSd3aWR0aDozMDBweDtmb250LXNpemU6MTZwdCc+VGVybWluYWwgdXNlczxicj5pdHMgcHJpbWFyeSBsYW5ndWFnZTwvZGl2PiIpOjo6ZmluYWxTdHlsZQogICAgICAgIE1fQWN0aW9uMiAtLT58PGZvbnQgc2l6ZT0nNCc+Tm88L2ZvbnQ+fCBNX0ZpbmFsMigiPGRpdiBzdHlsZT0nd2lkdGg6MzAwcHg7Zm9udC1zaXplOjE2cHQnPkZhbGxzIGJhY2sgdG8gRW5nbGlzaDwvZGl2PiIpOjo6ZmluYWxTdHlsZQogICAgZW5kCgolJSBTdHlsZXMgLSBSZW1vdmluZyBtaW4td2lkdGggdG8gcHJldmVudCB0ZXh0LWxvc3MsIHVzaW5nIHBhZGRpbmcgaW5zdGVhZAogICAgY2xhc3NEZWYgdG9wU3R5bGUgZmlsbDojMDAwLHN0cm9rZTojMDAwLGNvbG9yOiNmZmYKICAgIGNsYXNzRGVmIGNhdGVnb3J5U3R5bGUgZmlsbDojNDQ0LHN0cm9rZTojMzMzLGNvbG9yOiNmZmYKICAgIGNsYXNzRGVmIHN0ZXBTdHlsZSBmaWxsOiNmZmYsc3Ryb2tlOiMwYWJmNTMsc3Ryb2tlLXdpZHRoOjJweCxjb2xvcjojMDAwLGZvbnQtc2l6ZToxNnB0LHRleHQtYWxpZ246Y2VudGVyCiAgICBjbGFzc0RlZiBmaW5hbFN0eWxlIGZpbGw6IzBhYmY1MyxzdHJva2U6IzA3OGQzZSxjb2xvcjojZmZmLGZvbnQtc2l6ZToxNnB0LHRleHQtYWxpZ246Y2VudGVyCg==<\/div><\/div>\n<\/div>\n<h2 id=\"receipt-data\">Receipt data<\/h2>\n<p>When you make a payment using our Terminal API, the <a href=\"\/point-of-sale\/basic-tapi-integration\/make-a-payment#payment-response\">payment result<\/a> contains a <code>PaymentReceipt<\/code> object. This object includes:<\/p>\n<ul>\n<li><code>CustomerReceipt<\/code>: you can use this data to generate a receipt for the shopper.<\/li>\n<li><code>CashierReceipt<\/code>: you can use this data to generate a merchant receipt. You can also use this data to collect the shopper's signature, or for reconciliation purposes.<\/li>\n<\/ul>\n<p>Each receipt consists of multiple key-value pairs, which are generated dynamically depending on the:<\/p>\n<ul>\n<li>Transaction type.<\/li>\n<li>Result. For example, approved or declined.<\/li>\n<li>Cardholder verification method (CVM).<\/li>\n<li>Card issuer country\/region.<\/li>\n<li>Country\/region of your store.<\/li>\n<li>Payment method.<\/li>\n<\/ul>\n<p>The following table shows all the keys that can appear in Adyen-generated receipt data.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Key<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>header1<\/code><\/td>\n<td style=\"text-align: left;\">First header line of your receipt. You can <a href=\"\/point-of-sale\/design-your-integration\/determine-account-structure\/configure-features#terminal-customization-hardware-features-and-receipts\">customize<\/a> the structure and text of the receipt header.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>header2<\/code><\/td>\n<td style=\"text-align: left;\">Second header line of your receipt. You can <a href=\"\/point-of-sale\/design-your-integration\/determine-account-structure\/configure-features#terminal-customization-hardware-features-and-receipts\">customize<\/a> the structure and text of the receipt header.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>aac<\/code><\/td>\n<td style=\"text-align: left;\">Decline cryptogram generated by the card.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>accountType<\/code><\/td>\n<td style=\"text-align: left;\">Bank account used for the authorization. For example, chequing or savings account.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>additionalEmvData<\/code><\/td>\n<td style=\"text-align: left;\">Set of EMV details.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>aid<\/code><\/td>\n<td style=\"text-align: left;\">Application Identifier (the scheme product).<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>approved<\/code><\/td>\n<td style=\"text-align: left;\">Final state for approved transactions.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>refused<\/code><\/td>\n<td style=\"text-align: left;\">Final state for declined transactions.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>void<\/code><\/td>\n<td style=\"text-align: left;\">Final state for transactions that were cancelled by the merchant, shopper, or terminal.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>atc<\/code><\/td>\n<td style=\"text-align: left;\">Application Transaction Counter.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>authCode<\/code><\/td>\n<td style=\"text-align: left;\">Authorization code from the issuer.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>authorizationType<\/code><\/td>\n<td style=\"text-align: left;\">Indicates the payment authorization was a pre-authorization. Not included for a regular final authorization. To enable this key, contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>authResponseCode<\/code><\/td>\n<td style=\"text-align: left;\">Authorization response code from the issuer.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>buyerId<\/code><\/td>\n<td style=\"text-align: left;\">Identification of the wallet used for authorization.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>cardholderHeader<\/code><\/td>\n<td style=\"text-align: left;\">Receipt type indicator. For example, <strong>CARDHOLDER COPY<\/strong> (or the localized text).<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>cardholderName<\/code><\/td>\n<td style=\"text-align: left;\">Name of the cardholder. This key is not present by default. When enabled, it is included only on the merchant receipt. To enable this key, contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>cardType<\/code><\/td>\n<td style=\"text-align: left;\">Terminal-determined value for the type of card.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>cashbackAmount<\/code><\/td>\n<td style=\"text-align: left;\">Amount to be provided to the shopper in cash.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>charityAmount<\/code><\/td>\n<td style=\"text-align: left;\">Amount donated to a non-profit by the shopper.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>cid<\/code><\/td>\n<td style=\"text-align: left;\">Cryptogram Information Data.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>cnpj<\/code><\/td>\n<td style=\"text-align: left;\">Identification number issued for the National Registry of Legal Entities.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>currentBalanceAmount<\/code><\/td>\n<td style=\"text-align: left;\">Balance on the cardholder's bank account.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>cvmRes<\/code><\/td>\n<td style=\"text-align: left;\">When applicable, indicates the PIN has been verified.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>dccexpl<\/code><\/td>\n<td style=\"text-align: left;\">Explanation of the DCC process, for shopper consent.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>dccmarkup<\/code><\/td>\n<td style=\"text-align: left;\">Markup on the sourced exchange rate for DCC.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>dccrate<\/code><\/td>\n<td style=\"text-align: left;\">Exchange rate used to calculate the DCC conversion (including markup).<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>dccshopperamount<\/code><\/td>\n<td style=\"text-align: left;\">Amount after DCC conversion was applied.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>dccsource<\/code><\/td>\n<td style=\"text-align: left;\">Source of the base exchange rate (proxied by Adyen, excluding markup).<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>discountAmount<\/code><\/td>\n<td style=\"text-align: left;\">Discount applied by the merchant.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>expiryDate<\/code><\/td>\n<td style=\"text-align: left;\">Expiry date of the card.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>filler<\/code><\/td>\n<td style=\"text-align: left;\">Generic filler to create blocks of elements that go together.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>fundingSource<\/code><\/td>\n<td style=\"text-align: left;\">Funding source used for paying, such as a credit, debit, prepaid, or charge card. In other words: where the customer's money comes from. To enable this key, contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>gratuityAmount<\/code><\/td>\n<td style=\"text-align: left;\">Amount of the tip.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>mid<\/code><\/td>\n<td style=\"text-align: left;\">Merchant Identification.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>mref<\/code><\/td>\n<td style=\"text-align: left;\">Merchant-determined reference for the transaction.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>originalAmount<\/code><\/td>\n<td style=\"text-align: left;\">Starting amount of the transaction before gratuity, adjustments, and such.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>pan<\/code><\/td>\n<td style=\"text-align: left;\">The last four digits of the masked PAN.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>panSeq<\/code><\/td>\n<td style=\"text-align: left;\">PAN sequence number or sequence number of the issued card.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentMethod<\/code><\/td>\n<td style=\"text-align: left;\">Payment method on the brand or scheme level, as provided by Adyen. For example, <code>visa<\/code>, <code>maestro<\/code>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentMethodVariant<\/code><\/td>\n<td style=\"text-align: left;\">Payment method on the product level, as provided by Adyen. For example, <code>visastandarddebit<\/code>, <code>vpay<\/code>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>posEntryMode<\/code><\/td>\n<td style=\"text-align: left;\">Method of obtaining the PAN, such as ICC, NFC, MSR, or MKE.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>preferredName<\/code><\/td>\n<td style=\"text-align: left;\">Issuer-determined label for the application on the card.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>productType<\/code><\/td>\n<td style=\"text-align: left;\">Category of account within the funding source that is used for the transaction. For example, Checking, Savings, Credit, or Default (when the terminal does not require a product type).<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>ptid<\/code><\/td>\n<td style=\"text-align: left;\">Hardware (terminal) identifier sent to the schemes.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>retain<\/code><\/td>\n<td style=\"text-align: left;\">Retention message.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>rrn<\/code><\/td>\n<td style=\"text-align: left;\">Retrieval Reference Number.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>stan<\/code><\/td>\n<td style=\"text-align: left;\">System Trace Audit Number.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>surcharge<\/code><\/td>\n<td style=\"text-align: left;\">Surcharge amount.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>tid<\/code><\/td>\n<td style=\"text-align: left;\">Terminal identifier.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>tokenTxVariant<\/code><\/td>\n<td style=\"text-align: left;\">Description of the token variant, such as ApplePay or SamsungPay.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>totalAmount<\/code><\/td>\n<td style=\"text-align: left;\">Total amount to be debited or credited.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>txdate<\/code><\/td>\n<td style=\"text-align: left;\">Terminal date of the transaction, in the local time zone.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>txRef<\/code><\/td>\n<td style=\"text-align: left;\">Reference for the transaction, provided by the merchant.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>txtime<\/code><\/td>\n<td style=\"text-align: left;\">Terminal time of the transaction, in the local time zone.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>txtype<\/code><\/td>\n<td style=\"text-align: left;\">Transaction type: GOODS_SERVICES, REFUND, and so on.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>walletDccAmount<\/code><\/td>\n<td style=\"text-align: left;\">Amount after DCC was applied by the scheme.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>walletDccRate<\/code><\/td>\n<td style=\"text-align: left;\">Rate applied by the scheme to calculate DCC.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>walletOperationType<\/code><\/td>\n<td style=\"text-align: left;\">Similar to <code>paymentMethod<\/code>. For example, <code>alipay<\/code> or <code>wechatpay<\/code>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>walletTransactionReference<\/code><\/td>\n<td style=\"text-align: left;\">Reference that the scheme assigned to the transaction.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>sigline<\/code><\/td>\n<td style=\"text-align: left;\">Line to indicate a signature needs to be placed above it.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>signature<\/code><\/td>\n<td style=\"text-align: left;\">Room for shopper signature on the merchant receipt.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>merchantSigline<\/code><\/td>\n<td style=\"text-align: left;\">Line for merchant signature on the shopper receipt.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>thanks<\/code><\/td>\n<td style=\"text-align: left;\">'Thank you' message (or the localized text).<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>QRCode<\/code><\/td>\n<td style=\"text-align: left;\">QR code value. You can <a href=\"\/point-of-sale\/design-your-integration\/determine-account-structure\/configure-features#terminal-customization-hardware-features-and-receipts\">customize this<\/a>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/point-of-sale\/design-your-integration\/determine-account-structure\/configure-features#terminal-customization-hardware-features-and-receipts\"\n                        target=\"_self\"\n                        >\n                    Adapt receipts to your location and company branding\n                <\/a><\/li><li><a href=\"\/point-of-sale\/basic-tapi-integration\/make-a-payment#payment-response\"\n                        target=\"_self\"\n                        >\n                    Payment response\n                <\/a><\/li><li><a href=\"\/point-of-sale\/design-your-integration\/determine-account-structure\/configure-features#terminal-customization-hardware-features-and-receipts\"\n                        target=\"_self\"\n                        >\n                    Terminal customization, hardware features, and receipts\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/point-of-sale\/basic-tapi-integration\/generate-receipts","articleFields":{"description":"Learn about compliant transaction receipts and printing receipts on terminals with a build-in printer.","last_edit_on":"27-10-2025 09:43","feedback_component":true,"filters_component":false,"decision_tree":"[]","page_id":"e7fb1c97-47bb-44c0-a450-0ece5b80f46c"},"algolia":{"url":"https:\/\/docs.adyen.com\/point-of-sale\/basic-tapi-integration\/generate-receipts","title":"Generate receipts","content":"When you make a Terminal API transaction from your POS app, the API response includes receipt data. This contains values you can add to the receipt that you print, show, or email to your shopper.\n\nStandalone terminals are not integrated in a POS system. They have a built-in printer that automatically prints a compliant receipt.\n\nRequirements\nBefore you begin, take into account the following requirements, and preparations.\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nA Terminal API integration with payment terminals.\n\n\nSetup steps\nIf you want to set a different language for receipts than the terminal display, check the Changing the receipt languages.\n\n\n\nGenerating compliant receipts\nCard schemes have very specific requirements on what should be included on a receipt. These requirements differ per scheme and country\/region, and can change. Receipts generated by Adyen have been certified as compliant by the card schemes that we support.\nWe strongly recommend generating receipts using the Adyen-generated receipt data without alterations.\nCard schemes will occasionally visit stores to verify that the receipts are fully compliant. Non-compliant receipts can result in payments being charged back.\n\nIf you override the Adyen-generated receipt data, or validate values against a hard-coded list, it is your responsibility to ensure that scheme requirements are met at all times.\n\nURL encoding\nIf the Terminal API request includes characters from a non-Latin script, those characters are URL-encoded. To ensure those characters appear correctly on the printed receipt, you first need to URL-decode the PaymentReceipt object from the payment response.\nDisplaying virtual receipts\nIf you are using a wide-screen multimedia payment terminal, such as the M400, you can show line items or receipts on the display of the terminal.\nReceipt printing on terminals with a built-in printer\nSome payment terminals, like the V400m or V400c, have a built-in printer. Such terminals automatically print the receipt using the Terminal API receipt data.\nYou can optionally add your company logo to this receipt.\nIf you do not want to print the receipt on the terminal, specify the tender option ReceiptHandler in your payment requests.\n\nWithout that tender option, a terminal with a built-in printer will print the receipt.\nWith that tender option, a terminal with a built-in printer will not print the receipt. You can then let your POS app send the receipt data to your receipt printer, or email the receipt to the shopper.\n\nTo let the shopper decide whether to print their receipt:\n\n\nIn your Customer Area, go to In-person payments &gt; Terminal settings &gt; Receipts and enable Prompt before printing. The terminal will then show a screen like the following after a transaction.\n\n\n\nChanging the receipt languages\nYou can customize the languages used for the terminal display, and receipts. This includes setting the terminal's primary and secondary languages, and excluding languages from use on the shopper receipt, for example if your integration has character set limitations.\nTo configure a specific merchant or shopper receipt language that differs from the primary and secondary terminal languages, contact our Support Team.\nChange your receipt language settings\nTo change your terminal and receipt language settings:\n\nLog in to your Customer Area.\nSwitch to your merchant account.\nGo to In-person payments &gt; Terminal settings.\nUnder Customization &gt; Location, configure the following:\n\nPrimary language: Sets the default language for the terminal and acts as a language option for receipts.\nSecondary language: Sets the terminal's secondary language and acts as a language option for receipts if the shopper selects it.\nExclude shopper language: Prevents a specific language from being used on shopper receipts.\n\n\n\nIf you want to change the language for either or both receipts for your mobile solution, contact our Support team.\n\nReceipt language flows\nWhen a receipt is generated, the terminal follows a specific flow to select the language. If at any step the selected language is excluded from use, the terminal ignores it and moves to the next step.\n\n\nMerchant receipt: The terminal first checks if a specific merchant receipt language is configured by our Support Team. If the language is not configured, the terminal uses the primary language. The receipt language falls back to English if the primary language is not configured.\n\n\nShopper receipt: The terminal first checks if a specific shopper receipt language is configured by our Support Team. If the language is not configured, it tries to use the language of the country or region where the card was issued. If the language of the card is unknown or excluded from use, the terminal falls back to its secondary language (if selected by the shopper). If no secondary language is configured, the terminal uses its primary language. The receipt language falls back to English if the primary language is not configured.\n\n\nThe following diagram shows the receipt generation flows for merchant receipt and shopper receipt:\n\n\nCmdyYXBoIFRECiUlIFN0YXJ0aW5nIFBvaW50CiAgICBTdGFydCgiPGRpdiBzdHlsZT0nd2lkdGg6MzAwcHg7Zm9udC1zaXplOjE4cHQnPlJlY2VpcHQgZ2VuZXJhdGlvbjwvZGl2PiIpOjo6dG9wU3R5bGUKCiAgICBTdGFydCAtLS0+IE1lcmNoYW50SGVhZCgiPGRpdiBzdHlsZT0nd2lkdGg6MjUwcHg7Zm9udC1zaXplOjE4cHQnPk1lcmNoYW50IHJlY2VpcHQ8L2Rpdj4iKTo6OmNhdGVnb3J5U3R5bGUKICAgIFN0YXJ0IC0tLT4gU2hvcHBlckhlYWQoIjxkaXYgc3R5bGU9J3dpZHRoOjI1MHB4O2ZvbnQtc2l6ZToxOHB0Jz5TaG9wcGVyIHJlY2VpcHQ8L2Rpdj4iKTo6OmNhdGVnb3J5U3R5bGUKCiAgICBzdWJncmFwaCAiICIKICAgICUlIFNob3BwZXIgRGVjaXNpb24gRmxvdwogICAgICAgIFNob3BwZXJIZWFkIC0tPiBTX0NoZWNrMSgiPGRpdiBzdHlsZT0nd2lkdGg6MzAwcHg7Zm9udC1zaXplOjE2cHQnPlNob3BwZXIgcmVjZWlwdCBsYW5ndWFnZTxicj5jb25maWd1cmVkIGJ5IFN1cHBvcnQ\/PC9kaXY+Iik6OjpzdGVwU3R5bGUKICAgICAgICBTX0NoZWNrMSAtLT58PGZvbnQgc2l6ZT0nNCc+WWVzPC9mb250PnwgU19BY3Rpb24xKCI8ZGl2IHN0eWxlPSd3aWR0aDoyMDBweDtmb250LXNpemU6MTZwdCc+VGVybWluYWwgdXNlczxicj5zaG9wcGVyIHJlY2VpcHQ8YnI+bGFuZ3VhZ2U8L2Rpdj4iKTo6OmZpbmFsU3R5bGUKICAgICAgICBTX0NoZWNrMSAtLT58PGZvbnQgc2l6ZT0nNCc+Tm88L2ZvbnQ+fCBTX0NoZWNrMigiPGRpdiBzdHlsZT0nd2lkdGg6MjUwcHg7Zm9udC1zaXplOjE2cHQnPkxhbmd1YWdlIG9mIHRoZTxicj5jYXJkIHN1cHBvcnRlZD88L2Rpdj4iKTo6OnN0ZXBTdHlsZQoKICAgICAgICBTX0NoZWNrMiAtLT58PGZvbnQgc2l6ZT0nNCc+WWVzPC9mb250PnwgU19BY3Rpb24yKCI8ZGl2IHN0eWxlPSd3aWR0aDoyMDBweDtmb250LXNpemU6MTZwdCc+VGVybWluYWwgdXNlczxicj5sYW5ndWFnZSBvZiB0aGUgY2FyZDwvZGl2PiIpOjo6ZmluYWxTdHlsZQogICAgICAgIFNfQ2hlY2syIC0tPnw8Zm9udCBzaXplPSc0Jz5ObzwvZm9udD58IFNfQ2hlY2szKCI8ZGl2IHN0eWxlPSd3aWR0aDoyNTBweDtmb250LXNpemU6MTZwdCc+U2hvcHBlciBzZWxlY3RlZDxicj5zZWNvbmRhcnkgbGFuZ3VhZ2U\/PC9kaXY+Iik6OjpzdGVwU3R5bGUKCiAgICAgICAgU19DaGVjazMgLS0+fDxmb250IHNpemU9JzQnPlllczwvZm9udD58IFNfQWN0aW9uMygiPGRpdiBzdHlsZT0nd2lkdGg6MjAwcHg7Zm9udC1zaXplOjE2cHQnPlRlcm1pbmFsIHVzZXM8YnI+aXRzIHNlY29uZGFyeTxicj5sYW5ndWFnZTwvZGl2PiIpOjo6ZmluYWxTdHlsZQogICAgICAgIFNfQ2hlY2szIC0tPnw8Zm9udCBzaXplPSc0Jz5ObzwvZm9udD58IFNfQWN0aW9uNCgiPGRpdiBzdHlsZT0nd2lkdGg6MjAwcHg7Zm9udC1zaXplOjE2cHQnPlRlcm1pbmFsJ3MgcHJpbWFyeTxicj5sYW5ndWFnZSBzZXQ\/PC9kaXY+Iik6OjpzdGVwU3R5bGUKCiAgICAgICAgU19BY3Rpb240IC0tPnw8Zm9udCBzaXplPSc0Jz5ZZXM8L2ZvbnQ+fCBTX0ZpbmFsMSgiPGRpdiBzdHlsZT0nd2lkdGg6MzAwcHg7Zm9udC1zaXplOjE2cHQnPlRlcm1pbmFsIHVzZXM8YnI+aXRzIHByaW1hcnkgbGFuZ3VhZ2U8L2Rpdj4iKTo6OmZpbmFsU3R5bGUKICAgICAgICBTX0FjdGlvbjQgLS0+fDxmb250IHNpemU9JzQnPk5vPC9mb250PnwgU19GaW5hbDIoIjxkaXYgc3R5bGU9J3dpZHRoOjMwMHB4O2ZvbnQtc2l6ZToxNnB0Jz5GYWxscyBiYWNrIHRvIEVuZ2xpc2g8L2Rpdj4iKTo6OmZpbmFsU3R5bGUKICAgIGVuZAoKCiAgICBzdWJncmFwaCAiICIKICAgICUlIE1lcmNoYW50IERlY2lzaW9uIEZsb3cKICAgICAgICBNZXJjaGFudEhlYWQgLS0+IE1fQ2hlY2sxKCI8ZGl2IHN0eWxlPSd3aWR0aDozMDBweDtmb250LXNpemU6MTZwdCc+TWVyY2hhbnQgcmVjZWlwdCBsYW5ndWFnZTxicj5jb25maWd1cmVkIGJ5IFN1cHBvcnQ\/PC9kaXY+Iik6OjpzdGVwU3R5bGUKICAgICAgICBNX0NoZWNrMSAtLT58PGZvbnQgc2l6ZT0nNCc+WWVzPC9mb250PnwgTV9BY3Rpb24xKCI8ZGl2IHN0eWxlPSd3aWR0aDoyMDBweDtmb250LXNpemU6MTVwdCc+VGVybWluYWwgdXNlczxicj5tZXJjaGFudCByZWNlaXB0PGJyPmxhbmd1YWdlPC9kaXY+Iik6OjpmaW5hbFN0eWxlCiAgICAgICAgTV9DaGVjazEgLS0+fDxmb250IHNpemU9JzQnPk5vPC9mb250PnwgTV9BY3Rpb24yKCI8ZGl2IHN0eWxlPSd3aWR0aDoyMDBweDtmb250LXNpemU6MTVwdCc+VGVybWluYWwncyBwcmltYXJ5PGJyPmxhbmd1YWdlIHNldD88L2Rpdj4iKTo6OnN0ZXBTdHlsZQoKICAgICAgICBNX0FjdGlvbjIgLS0+fDxmb250IHNpemU9JzQnPlllczwvZm9udD58IE1fRmluYWwxKCI8ZGl2IHN0eWxlPSd3aWR0aDozMDBweDtmb250LXNpemU6MTZwdCc+VGVybWluYWwgdXNlczxicj5pdHMgcHJpbWFyeSBsYW5ndWFnZTwvZGl2PiIpOjo6ZmluYWxTdHlsZQogICAgICAgIE1fQWN0aW9uMiAtLT58PGZvbnQgc2l6ZT0nNCc+Tm88L2ZvbnQ+fCBNX0ZpbmFsMigiPGRpdiBzdHlsZT0nd2lkdGg6MzAwcHg7Zm9udC1zaXplOjE2cHQnPkZhbGxzIGJhY2sgdG8gRW5nbGlzaDwvZGl2PiIpOjo6ZmluYWxTdHlsZQogICAgZW5kCgolJSBTdHlsZXMgLSBSZW1vdmluZyBtaW4td2lkdGggdG8gcHJldmVudCB0ZXh0LWxvc3MsIHVzaW5nIHBhZGRpbmcgaW5zdGVhZAogICAgY2xhc3NEZWYgdG9wU3R5bGUgZmlsbDojMDAwLHN0cm9rZTojMDAwLGNvbG9yOiNmZmYKICAgIGNsYXNzRGVmIGNhdGVnb3J5U3R5bGUgZmlsbDojNDQ0LHN0cm9rZTojMzMzLGNvbG9yOiNmZmYKICAgIGNsYXNzRGVmIHN0ZXBTdHlsZSBmaWxsOiNmZmYsc3Ryb2tlOiMwYWJmNTMsc3Ryb2tlLXdpZHRoOjJweCxjb2xvcjojMDAwLGZvbnQtc2l6ZToxNnB0LHRleHQtYWxpZ246Y2VudGVyCiAgICBjbGFzc0RlZiBmaW5hbFN0eWxlIGZpbGw6IzBhYmY1MyxzdHJva2U6IzA3OGQzZSxjb2xvcjojZmZmLGZvbnQtc2l6ZToxNnB0LHRleHQtYWxpZ246Y2VudGVyCg==\n\nReceipt data\nWhen you make a payment using our Terminal API, the payment result contains a PaymentReceipt object. This object includes:\n\nCustomerReceipt: you can use this data to generate a receipt for the shopper.\nCashierReceipt: you can use this data to generate a merchant receipt. You can also use this data to collect the shopper's signature, or for reconciliation purposes.\n\nEach receipt consists of multiple key-value pairs, which are generated dynamically depending on the:\n\nTransaction type.\nResult. For example, approved or declined.\nCardholder verification method (CVM).\nCard issuer country\/region.\nCountry\/region of your store.\nPayment method.\n\nThe following table shows all the keys that can appear in Adyen-generated receipt data.\n\n\n\nKey\nDescription\n\n\n\n\nheader1\nFirst header line of your receipt. You can customize the structure and text of the receipt header.\n\n\nheader2\nSecond header line of your receipt. You can customize the structure and text of the receipt header.\n\n\naac\nDecline cryptogram generated by the card.\n\n\naccountType\nBank account used for the authorization. For example, chequing or savings account.\n\n\nadditionalEmvData\nSet of EMV details.\n\n\naid\nApplication Identifier (the scheme product).\n\n\napproved\nFinal state for approved transactions.\n\n\nrefused\nFinal state for declined transactions.\n\n\nvoid\nFinal state for transactions that were cancelled by the merchant, shopper, or terminal.\n\n\natc\nApplication Transaction Counter.\n\n\nauthCode\nAuthorization code from the issuer.\n\n\nauthorizationType\nIndicates the payment authorization was a pre-authorization. Not included for a regular final authorization. To enable this key, contact our Support Team.\n\n\nauthResponseCode\nAuthorization response code from the issuer.\n\n\nbuyerId\nIdentification of the wallet used for authorization.\n\n\ncardholderHeader\nReceipt type indicator. For example, CARDHOLDER COPY (or the localized text).\n\n\ncardholderName\nName of the cardholder. This key is not present by default. When enabled, it is included only on the merchant receipt. To enable this key, contact our Support Team.\n\n\ncardType\nTerminal-determined value for the type of card.\n\n\ncashbackAmount\nAmount to be provided to the shopper in cash.\n\n\ncharityAmount\nAmount donated to a non-profit by the shopper.\n\n\ncid\nCryptogram Information Data.\n\n\ncnpj\nIdentification number issued for the National Registry of Legal Entities.\n\n\ncurrentBalanceAmount\nBalance on the cardholder's bank account.\n\n\ncvmRes\nWhen applicable, indicates the PIN has been verified.\n\n\ndccexpl\nExplanation of the DCC process, for shopper consent.\n\n\ndccmarkup\nMarkup on the sourced exchange rate for DCC.\n\n\ndccrate\nExchange rate used to calculate the DCC conversion (including markup).\n\n\ndccshopperamount\nAmount after DCC conversion was applied.\n\n\ndccsource\nSource of the base exchange rate (proxied by Adyen, excluding markup).\n\n\ndiscountAmount\nDiscount applied by the merchant.\n\n\nexpiryDate\nExpiry date of the card.\n\n\nfiller\nGeneric filler to create blocks of elements that go together.\n\n\nfundingSource\nFunding source used for paying, such as a credit, debit, prepaid, or charge card. In other words: where the customer's money comes from. To enable this key, contact our Support Team.\n\n\ngratuityAmount\nAmount of the tip.\n\n\nmid\nMerchant Identification.\n\n\nmref\nMerchant-determined reference for the transaction.\n\n\noriginalAmount\nStarting amount of the transaction before gratuity, adjustments, and such.\n\n\npan\nThe last four digits of the masked PAN.\n\n\npanSeq\nPAN sequence number or sequence number of the issued card.\n\n\npaymentMethod\nPayment method on the brand or scheme level, as provided by Adyen. For example, visa, maestro.\n\n\npaymentMethodVariant\nPayment method on the product level, as provided by Adyen. For example, visastandarddebit, vpay.\n\n\nposEntryMode\nMethod of obtaining the PAN, such as ICC, NFC, MSR, or MKE.\n\n\npreferredName\nIssuer-determined label for the application on the card.\n\n\nproductType\nCategory of account within the funding source that is used for the transaction. For example, Checking, Savings, Credit, or Default (when the terminal does not require a product type).\n\n\nptid\nHardware (terminal) identifier sent to the schemes.\n\n\nretain\nRetention message.\n\n\nrrn\nRetrieval Reference Number.\n\n\nstan\nSystem Trace Audit Number.\n\n\nsurcharge\nSurcharge amount.\n\n\ntid\nTerminal identifier.\n\n\ntokenTxVariant\nDescription of the token variant, such as ApplePay or SamsungPay.\n\n\ntotalAmount\nTotal amount to be debited or credited.\n\n\ntxdate\nTerminal date of the transaction, in the local time zone.\n\n\ntxRef\nReference for the transaction, provided by the merchant.\n\n\ntxtime\nTerminal time of the transaction, in the local time zone.\n\n\ntxtype\nTransaction type: GOODS_SERVICES, REFUND, and so on.\n\n\nwalletDccAmount\nAmount after DCC was applied by the scheme.\n\n\nwalletDccRate\nRate applied by the scheme to calculate DCC.\n\n\nwalletOperationType\nSimilar to paymentMethod. For example, alipay or wechatpay.\n\n\nwalletTransactionReference\nReference that the scheme assigned to the transaction.\n\n\nsigline\nLine to indicate a signature needs to be placed above it.\n\n\nsignature\nRoom for shopper signature on the merchant receipt.\n\n\nmerchantSigline\nLine for merchant signature on the shopper receipt.\n\n\nthanks\n'Thank you' message (or the localized text).\n\n\nQRCode\nQR code value. You can customize this.\n\n\n\nSee also\n\n\n                    Adapt receipts to your location and company branding\n                \n                    Payment response\n                \n                    Terminal customization, hardware features, and receipts\n                \n","type":"page","locale":"en","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"In-person payments","lvl2":"Implement the payment flow","lvl3":"Generate receipts"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/","lvl1":"https:\/\/docs.adyen.com\/point-of-sale","lvl2":"https:\/\/docs.adyen.com\/point-of-sale\/basic-tapi-integration","lvl3":"\/point-of-sale\/basic-tapi-integration\/generate-receipts"},"levels":4,"category":"In-person payments","category_color":"green","tags":["Generate","receipts"]},"articleFiles":{"screen-EN_print-prompt-approved.png":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/images\/f\/8\/0\/6\/2\/f80625d9b8476bd7bcf4eb5bd4ee65ebea1ce3e6-screen-enprint-prompt-approved.png\" \/>"}}
