{"title":"Add information to a payment","category":"default","creationDate":1682687820,"content":"<p>A basic Terminal API payment request includes the amount, currency, ID, and timestamp of the transaction. But maybe you want to add information that you want us to apply to your request, or save on the Adyen payments platform. The <code>SaleToAcquirerData<\/code> field allows you to do that.<\/p>\n<h2>Requirements<\/h2>\n<p>Before you begin, take into account the following requirements.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Requirement<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Integration type<\/strong><\/td>\n<td style=\"text-align: left;\">A <a href=\"\/point-of-sale\/basic-tapi-integration\/\">Terminal API<\/a> integration with payment terminals or with a <a href=\"\/point-of-sale\/ipp-mobile\">Mobile solution<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">Before you begin, <a href=\"\/point-of-sale\/add-data#receive-additional-data\">select the data you want to receive in the additional response<\/a>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Data elements<\/h2>\n<p>In the <code>SaleToAcquirerData<\/code> field you can add all kinds of data elements:<\/p>\n<ul>\n<li><a href=\"#application-info\">Application info<\/a> that we can use for troubleshooting purposes.<\/li>\n<li><a href=\"#metadata\">Metadata<\/a> of your own choice that you want to connect to the payment.<\/li>\n<li>Data to use for <a href=\"#shopper-recognition\">shopper recognition and tokenization<\/a>.<\/li>\n<li>Dynamic <a href=\"#shopper-statement\">shopper statements<\/a>.<\/li>\n<li><a href=\"#split-payments\">Split payment<\/a> details.<\/li>\n<li><a href=\"#tender-options\">Tender options<\/a> to influence how the transaction is processed.<\/li>\n<li><a href=\"#additional-data-elements\">Additional data<\/a> for common use cases like pre-authorization, or hospitality.<\/li>\n<\/ul>\n<p>Refer to the <a href=\"\/point-of-sale\/add-data\/sale-to-acquirer-data\">sample collection of SaleToAcquirerData<\/a> to see what these data elements look like. Below we describe them in a bit more detail, and we explain how to add a combination of data elements to your payment request.<\/p>\n<h3 id=\"application-info\">Application info<\/h3>\n<p>Application info consists of data elements that identify the software that you use for making payment requests to the Adyen payments platform. When you pass this information in your payment requests, we are able to analyze and troubleshoot payments more efficiently, and provide a better support experience.<\/p>\n<p>For details, see <a href=\"\/point-of-sale\/basic-tapi-integration\/pass-application-information\">Pass application info<\/a>.<\/p>\n<h3 id=\"metadata\">Metadata<\/h3>\n<p>Metadata are data elements that you create yourself. When you add metadata to your payment request, they are <a href=\"#receive-additional-data\">returned in the response<\/a> so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a payment. You are free to create up to 20 metadata fields, where the maximum field name is 20 characters, and the maximum value 80 characters.<\/p>\n<p>To also receive metadata in your settlement reports, 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 id=\"shopper-recognition\">Shopper recognition and tokenization<\/h3>\n<p>Based on shopper identifiers that you receive in your payment response, you can link the payment to a shopper. This enables you to personalize the shopping experience or make recurring payments using a token instead of real card details. You first need to create those shopper identifiers by including data elements like <code>shopperEmail<\/code>, <code>shopperReference<\/code>, and <code>recurringProcessingModel<\/code> in the <code>SaleToAcquirerData<\/code> field of your initial payment request. You then retrieve the shopper identifiers from the payment response and store them in your system.<\/p>\n<p>For more information see <a href=\"\/point-of-sale\/shopper-recognition\">Shopper recognition<\/a>.<\/p>\n<h3 id=\"shopper-statement\">Shopper statement<\/h3>\n<p>When shoppers check their bank statements, they need to be able to easily identify the charges they see. The description of the transaction should start with your brand or the merchant name that is most recognizable to the cardholder.<\/p>\n<p>In your Terminal API payment request, you can provide a transaction-specific <code>shopperStatement<\/code>. We recommend sending no more than 22 characters and using only <span translate=\"no\"><strong>a-z<\/strong><\/span>, <span translate=\"no\"><strong>A-Z<\/strong><\/span>, <span translate=\"no\"><strong>0-9<\/strong><\/span>, spaces, and the special characters <code>. , ' _ - ? + * \/<\/code>. That is because banks may cut off longer statements and do not always support Unicode characters.<\/p>\n<p>The <code>shopperStatement<\/code> from your Terminal API payment request only appears on your shopper's bank statement if your <a href=\"\/account\/transaction-description\/\">account is configured<\/a> to include a dynamic shopper statement in the transaction description.<\/p>\n<h3 id=\"split-payments\">Split payments<\/h3>\n<p>Platforms usually split payments between the platform and the users of the platform. Using the <code>SaleToAcquirerData<\/code> field you can define how to split a payment, such as the amount and type of each split and the accounts that receive the splits.<\/p>\n<p>For instructions, see our Adyen for Platforms documentation about <a href=\"\/platforms\/in-person-payments\">processing in-person payments<\/a>.<\/p>\n<h3 id=\"tender-options\">Tender options<\/h3>\n<p>Tender options are parameters that change how the <a href=\"\/get-started-with-adyen\/adyen-glossary\/#tender\">tender<\/a> is processed. For example, the tender option <code>AskGratuity<\/code> triggers the payment terminal to ask the shopper for a tip.<\/p>\n<h3 id=\"additional-data-elements\">Additional data<\/h3>\n<p>There are many additional data elements that you can add to your payment requests. The list is long and growing, so we cannot mention all of them here. See for example the <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/latest\/authorise__reqParam_additionalData\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Additional data in our API Explorer<\/a>. Many of these elements also apply to point-of-sale payments.<\/p>\n<h2 id=\"instructions\">Adding data elements to your request<\/h2>\n<p>There are two ways to pass data elements in the <code>SaleToAcquirerData<\/code> field of your payment request:<\/p>\n<ul>\n<li><strong>Option 1<\/strong>: as a JSON object converted to a Base64-encoded string.<\/li>\n<li><strong>Option 2<\/strong>: as form-encoded key-value pairs (using <strong>&amp;<\/strong> as a separator).<\/li>\n<\/ul>\n<p>Refer to the <a href=\"\/point-of-sale\/add-data\/sale-to-acquirer-data\">sample collection of SaleToAcquirerData<\/a> to see what these formats look like.<\/p>\n<div class=\"notices green\">\n<p>The format of the <code>SaleToAcquirerData<\/code>, Base64-encoded or key-value pairs, determines the format of the <code>AdditionalResponse<\/code> that you receive. To always receive the <code>AdditionalResponse<\/code> in one of those formats, 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<\/div>\n<h2 id=\"receive-additional-data\">Receiving the additional response<\/h2>\n<p>The <code>AdditionalResponse<\/code> in your payment response returns information resulting from the processing of your payment request. It also returns some of the information you added to your payment request, so you can use this in your business logic.<\/p>\n<p>The additional response can contain many data fields, but you may not need them all. To select the data that you want:<\/p>\n<ol>\n<li>In your Customer Area, go to <strong>Developers<\/strong> &gt; <strong>Additional data<\/strong>.<\/li>\n<li>Select the options for the type of data you want to receive.<\/li>\n<\/ol>\n<p>The format of the <code>AdditionalResponse<\/code> corresponds with the format of the <code>SaleToAcquirerData<\/code> in the payment request: a Base64-encoded JSON object, or form-encoded key-value pairs.<br \/>\nIf the request doesn't contain any <code>SaleToAcquirerData<\/code>, the <code>AdditionalResponse<\/code> will be in key-value pairs format.<\/p>\n<h2 id=\"base64-json\">Option 1: Pass data elements as Base64-encoded JSON<\/h2>\n<p>This example shows how to add data elements to your payment request as a JSON object converted to a Base64-encoded string:<\/p>\n<ol>\n<li>\n<p>Create a JSON object with the data elements you want to pass.<\/p>\n<p>In this example, we use a limited set of data:<\/p>\n<ul>\n<li>Metadata: the key <code>employeeNumber<\/code> with a value of <strong>1<\/strong><\/li>\n<li>Shopper statement: Book shop - ISBN 9780706414004<\/li>\n<li>Shopper email: S.Hopper@example.com<\/li>\n<li>Shopper reference: CUST01_34582<\/li>\n<li>Two tender options: <code>ReceiptHandler<\/code> to let the POS app handle printing or sending the receipt, and <code>AskGratuity<\/code> to ask for a tip.<\/li>\n<\/ul>\n<p>So the JSON object looks like this:<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Data elements in JSON format'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"metadata\\\": {\\n        \\\"employeeNumber\\\": \\\"1\\\"\\n    },\\n    \\\"shopperStatement\\\": \\\"Book shop - ISBN 9780706414004\\\",\\n    \\\"shopperEmail\\\": \\\"S.Hopper@example.com\\\",\\n    \\\"shopperReference\\\": \\\"CUST01_34582\\\",\\n    \\\"tenderOption\\\": \\\"ReceiptHandler,AskGratuity\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Encode the JSON object to Base64.<\/p>\n<pre><code class=\"language-raw\">ewogICAibWV0YWRhdGEiOnsKICAgICAgImVtcGxveWVlTnVtYmVyIjoiMSIKICAgfSwKICAgInNob3BwZXJTdGF0ZW1lbnQiOiJCb29rIHNob3AgLSBJU0JOIDk3ODA3MDY0MTQwMDQiLAogICAic2hvcHBlckVtYWlsIjoiUy5Ib3BwZXJAZXhhbXBsZS5jb20iLAogICAic2hvcHBlclJlZmVyZW5jZSI6IkNVU1QwMV8zNDU4MiIsCiAgICJ0ZW5kZXJPcHRpb24iOiJSZWNlaXB0SGFuZGxlcixBc2tHcmF0dWl0eSIKfQ==<\/code><\/pre>\n<\/li>\n<li>\n<p><a href=\"\/point-of-sale\/basic-tapi-integration\/make-a-payment\">Make a payment request<\/a> with:<\/p>\n<ul>\n<li><code>SaleData.SaletoAcquirerData<\/code>: The Base64-encoded JSON object.<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"''\" :id=\"'pass-add-data-base64'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n    \\\"SaleToPOIRequest\\\": {\\n        \\\"PaymentRequest\\\": {\\n            \\\"SaleData\\\": {\\n                \\\"SaleToAcquirerData\\\": \\\"ewogICAibWV0YWRhdGEiOnsKICAgICAgImVtcGxveWVlTnVtYmVyIjoiMSIKICAgfSwKICAgInNob3BwZXJTdGF0ZW1lbnQiOiJCb29rIHNob3AgLSBJU0JOIDk3ODA3MDY0MTQwMDQiLAogICAic2hvcHBlckVtYWlsIjoiUy5Ib3BwZXJAZXhhbXBsZS5jb20iLAogICAic2hvcHBlclJlZmVyZW5jZSI6IkNVU1QwMV8zNDU4MiIsCiAgICJ0ZW5kZXJPcHRpb24iOiJSZWNlaXB0SGFuZGxlcixBc2tHcmF0dWl0eSIKfQ==\\\",\\n                \\\"SaleTransactionID\\\": {\\n                    \\\"TransactionID\\\": \\\"27908\\\",\\n                    \\\"TimeStamp\\\": \\\"2020-04-08T12:08:52+00:00\\\"\\n                }\\n            },\\n            \\\"PaymentTransaction\\\": {\\n                \\\"AmountsReq\\\": {\\n                    \\\"Currency\\\": \\\"EUR\\\",\\n                    \\\"RequestedAmount\\\": 10.99\\n                }\\n            }\\n        },\\n        \\\"MessageHeader\\\": {\\n            \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n            \\\"MessageClass\\\": \\\"Service\\\",\\n            \\\"MessageCategory\\\": \\\"Payment\\\",\\n            \\\"MessageType\\\": \\\"Request\\\",\\n            \\\"ServiceID\\\": \\\"692\\\",\\n            \\\"SaleID\\\": \\\"POSSystemID12346\\\",\\n            \\\"POIID\\\": \\\"e280-346403161\\\"\\n        }\\n    }\\n}\"},{\"language\":\"java\",\"tabTitle\":\"Java\",\"content\":\"String POIID = \\\"YOUR_TERMINAL_ID\\\";\\nString serviceID = \\\"YOUR_UNIQUE_ATTEMPT_ID\\\";\\nString saleID = \\\"YOUR_CASH_REGISTER_ID\\\";\\nString transactionID = \\\"YOUR_UNIQUE_TRANSACTION_ID\\\";\\n\\nSaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nmessageHeader.setPOIID(POIID);\\nmessageHeader.setMessageClass( MessageClassType.SERVICE );\\nmessageHeader.setMessageType( MessageType.REQUEST );\\nmessageHeader.setProtocolVersion(\\\"3.0\\\");\\nmessageHeader.setServiceID(serviceID);\\nmessageHeader.setSaleID(saleID);\\nmessageHeader.setMessageCategory( MessageCategoryType.PAYMENT );\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nPaymentRequest paymentRequest = new PaymentRequest();\\nPaymentTransaction paymentTransaction = new PaymentTransaction();\\nAmountsReq amountsReq = new AmountsReq();\\namountsReq.setRequestedAmount( BigDecimal.valueOf(10.99) );\\namountsReq.setCurrency(\\\"EUR\\\");\\npaymentTransaction.setAmountsReq(amountsReq);\\n\\nTransactionConditions transactionConditions = new TransactionConditions();\\npaymentTransaction.setTransactionConditions(transactionConditions);\\npaymentRequest.setPaymentTransaction(paymentTransaction);\\n\\nSaleData saleData = new SaleData();\\nsaleData.setSaleToAcquirerData(\\\"ewogICAibWV0YWRhdGEiOnsKICAgICAgImVtcGxveWVlTnVtYmVyIjoiMSIKICAgfSwKICAgInNob3BwZXJTdGF0ZW1lbnQiOiJCb29rIHNob3AgLSBJU0JOIDk3ODA3MDY0MTQwMDQiLAogICAic2hvcHBlckVtYWlsIjoiUy5Ib3BwZXJAZXhhbXBsZS5jb20iLAogICAic2hvcHBlclJlZmVyZW5jZSI6IkNVU1QwMV8zNDU4MiIsCiAgICJ0ZW5kZXJPcHRpb24iOiJSZWNlaXB0SGFuZGxlcixBc2tHcmF0dWl0eSIKfQ==\\\");\\nsaleData.setTokenRequestedType( TokenRequestedType.CUSTOMER );\\nTransactionIdentification saleTransactionID = new TransactionIdentification();\\nsaleTransactionID.setTransactionID(transactionID);\\nsaleTransactionID.setTimeStamp(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));\\nsaleData.setSaleTransactionID(saleTransactionID);\\npaymentRequest.setSaleData(saleData);\\nsaleToPOIRequest.setPaymentRequest(paymentRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>Note that the payment response has an <code>AdditionalResponse<\/code> in the same format as the <code>SaleToAcquirerData<\/code> field: a Base64-encoded string.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Base64 encoded AdditionalResponse'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"SaleToPOIResponse\\\": {\\n        \\\"PaymentResponse\\\": {\\n            \\\"POIData\\\": {...},\\n            \\\"SaleData\\\": {\\n                \\\"SaleTransactionID\\\": {\\n                    \\\"TimeStamp\\\": \\\"2020-04-08T12:08:52.000Z\\\",\\n                    \\\"TransactionID\\\": \\\"27908\\\"\\n                }\\n            },\\n            \\\"PaymentReceipt\\\": [...],\\n            \\\"PaymentResult\\\": {\\n                \\\"AmountsResp\\\": {\\n                    \\\"AuthorizedAmount\\\": 12.08,\\n                    \\\"Currency\\\": \\\"EUR\\\",\\n                    \\\"TipAmount\\\": 1.09,\\n                },\\n                \\\"OnlineFlag\\\": true,\\n                \\\"PaymentAcquirerData\\\": {...},\\n                },\\n                \\\"PaymentInstrumentData\\\": {\\n                    \\\"CardData\\\": {...},\\n                    \\\"PaymentInstrumentType\\\": \\\"Card\\\"\\n                }\\n            },\\n            \\\"Response\\\": {\\n                \\\"Result\\\": \\\"Success\\\",\\n                \\\"AdditionalResponse\\\": \\\"eyAiYWRkaXRpb25hbERhdGEiOiB7ICJBSUQiOiAiQTAwMDAwMDAwNDEwMTAwMSIsICJQYXltZW50QWNjb3VudFJlZmVyZW5jZSI6ICJjWHM1cFc1cVJwcmVKZEZHUXRjWTM2cENBcWpTMiIsICJhY3F1aXJlclJlc3BvbnNlQ29kZSI6ICJBUFBST1ZFRCIsICJhbGlhcyI6ICJNNDY5NTA5NTk0ODU5ODAyIiwgImFsaWFzVHlwZSI6ICJEZWZhdWx0IiwgImFwcGxpY2F0aW9uTGFiZWwiOiAiTUNFTkdCUkdCUCIsICJhcHBsaWNhdGlvblByZWZlcnJlZE5hbWUiOiAibWMgZW4gZ2JyIGdicCIsICJiYWNrZW5kR2lmdGNhcmRJbmRpY2F0b3IiOiAiZmFsc2UiLCAiYmF0dGVyeUxldmVsIjogIjYlIiwgImNhcmRCaW4iOiAiNTQxMzMzIiwgImNhcmRIb2xkZXJOYW1lIjogIiBcLyIsICJjYXJkSG9sZGVyVmVyaWZpY2F0aW9uTWV0aG9kUmVzdWx0cyI6ICIxRjAzMDIiLCAiY2FyZElzc3VlTnVtYmVyIjogIjMzIiwgImNhcmRJc3N1ZXJDb3VudHJ5SWQiOiAiODI2IiwgImNhcmRTY2hlbWUiOiAibWMiLCAiY2FyZFN1bW1hcnkiOiAiOTk5OSIsICJjYXJkVHlwZSI6ICJtYyIsICJleHBpcnlNb250aCI6ICIwMiIsICJleHBpcnlZZWFyIjogIjIwMjgiLCAiZnVuZGluZ1NvdXJjZSI6ICJDUkVESVQiLCAiZ2lmdGNhcmRJbmRpY2F0b3IiOiAiZmFsc2UiLCAiZ3JhdHVpdHlBbW91bnQiOiAiMTA5IiwgImlzbzg2MDFUeERhdGUiOiAiMjAyMy0wMS0yNFQxMTozNzo1Ni42NjlaIiwgImlzc3VlckNvdW50cnkiOiAiR0IiLCAibWVyY2hhbnRSZWZlcmVuY2UiOiAiMjc5MDgiLCAibWV0YWRhdGEuZW1wbG95ZWVOdW1iZXIiOiAiMSIsICJtaWQiOiAiNTAiLCAib2ZmbGluZSI6ICJmYWxzZSIsICJwYXltZW50TWV0aG9kIjogIm1jIiwgInBheW1lbnRNZXRob2RWYXJpYW50IjogIm1jIiwgInBvc0Ftb3VudENhc2hiYWNrVmFsdWUiOiAiMCIsICJwb3NBbW91bnRHcmF0dWl0eVZhbHVlIjogIjEwOSIsICJwb3NBdXRoQW1vdW50Q3VycmVuY3kiOiAiRVVSIiwgInBvc0F1dGhBbW91bnRWYWx1ZSI6ICIxMjA4IiwgInBvc0VudHJ5TW9kZSI6ICJDTEVTU19DSElQIiwgInBvc09yaWdpbmFsQW1vdW50VmFsdWUiOiAiMTA5OSIsICJwb3NhZGRpdGlvbmFsYW1vdW50cy5ncmF0dWl0eUFtb3VudCI6ICIxMDkiLCAicG9zYWRkaXRpb25hbGFtb3VudHMub3JpZ2luYWxBbW91bnRDdXJyZW5jeSI6ICJFVVIiLCAicG9zYWRkaXRpb25hbGFtb3VudHMub3JpZ2luYWxBbW91bnRWYWx1ZSI6ICIxMDk5IiwgInBzcFJlZmVyZW5jZSI6ICJYREtUTkxERzk3NVpHTjgyIiwgInJlY3VycmluZy5zaG9wcGVyUmVmZXJlbmNlIjogIkNVU1QwMV8zNDU4MiIsICJzaG9wcGVyRW1haWwiOiAiUy5Ib3BwZXJAZXhhbXBsZS5jb20iLCAic2hvcHBlclJlZmVyZW5jZSI6ICJDVVNUMDFfMzQ1ODIiLCAic2hvcHBlclN0YXRlbWVudCI6ICJCb29rIHNob3AgLSBJU0JOIDk3ODA3MDY0MTQwMDQiLCAic3RhcnRNb250aCI6ICIwMSIsICJzdGFydFllYXIiOiAiMjAxNyIsICJ0YyI6ICI3MUQ0OUMyMTM2MkI3NENDIiwgInRpZCI6ICI0NzA2OTgzMiIsICJ0cmFuc2FjdGlvblJlZmVyZW5jZU51bWJlciI6ICJYREtUTkxERzk3NVpHTjgyIiwgInRyYW5zYWN0aW9uVHlwZSI6ICJHT09EU19TRVJWSUNFUyIsICJ0eGRhdGUiOiAiMjQtMDEtMjAyMyIsICJ0eHRpbWUiOiAiMTI6Mzc6NTYiIH0sICJzdG9yZSI6ICJBM25TdG9yZU5MIiB9\\\",\\n            }\\n        },\\n        \\\"MessageHeader\\\": {...}\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Decode the Base64 string in the <code>AdditionalResponse<\/code> field of the payment response. This contains:<\/p>\n<ul>\n<li>The <code>metadata<\/code>, <code>shopperEmail<\/code>, <code>shopperReference<\/code>, and <code>shopperStatement<\/code> from the request.<\/li>\n<li>Data resulting from the processing of the payment. The shopper gave a 10% tip (EUR&nbsp;1.09).<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Decoded Base64 AdditionalResponse'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"additionalData\\\":{\\n      \\\"AID\\\":\\\"A000000004101001\\\",\\n      \\\"PaymentAccountReference\\\":\\\"cXs5pW5qRpreJdFGQtcY36pCAqjS2\\\",\\n      \\\"acquirerResponseCode\\\":\\\"APPROVED\\\",\\n      \\\"alias\\\":\\\"M469509594859802\\\",\\n      \\\"aliasType\\\":\\\"Default\\\",\\n      \\\"applicationLabel\\\":\\\"MCENGBRGBP\\\",\\n      \\\"applicationPreferredName\\\":\\\"mc en gbr gbp\\\",\\n      \\\"backendGiftcardIndicator\\\":\\\"false\\\",\\n      \\\"batteryLevel\\\":\\\"6%\\\",\\n      \\\"cardBin\\\":\\\"541333\\\",\\n      \\\"cardHolderName\\\":\\\" \\\\\\\/\\\",\\n      \\\"cardHolderVerificationMethodResults\\\":\\\"1F0302\\\",\\n      \\\"cardIssueNumber\\\":\\\"33\\\",\\n      \\\"cardIssuerCountryId\\\":\\\"826\\\",\\n      \\\"cardScheme\\\":\\\"mc\\\",\\n      \\\"cardSummary\\\":\\\"9999\\\",\\n      \\\"cardType\\\":\\\"mc\\\",\\n      \\\"expiryMonth\\\":\\\"02\\\",\\n      \\\"expiryYear\\\":\\\"2028\\\",\\n      \\\"fundingSource\\\":\\\"CREDIT\\\",\\n      \\\"giftcardIndicator\\\":\\\"false\\\",\\n      \\\"gratuityAmount\\\":\\\"109\\\",\\n      \\\"iso8601TxDate\\\":\\\"2023-01-24T11:37:56.669Z\\\",\\n      \\\"issuerCountry\\\":\\\"GB\\\",\\n      \\\"merchantReference\\\":\\\"27908\\\",\\n      \\\"metadata.employeeNumber\\\":\\\"1\\\",\\n      \\\"mid\\\":\\\"50\\\",\\n      \\\"offline\\\":\\\"false\\\",\\n      \\\"paymentMethod\\\":\\\"mc\\\",\\n      \\\"paymentMethodVariant\\\":\\\"mc\\\",\\n      \\\"posAmountCashbackValue\\\":\\\"0\\\",\\n      \\\"posAmountGratuityValue\\\":\\\"109\\\",\\n      \\\"posAuthAmountCurrency\\\":\\\"EUR\\\",\\n      \\\"posAuthAmountValue\\\":\\\"1208\\\",\\n      \\\"posEntryMode\\\":\\\"CLESS_CHIP\\\",\\n      \\\"posOriginalAmountValue\\\":\\\"1099\\\",\\n      \\\"posadditionalamounts.gratuityAmount\\\":\\\"109\\\",\\n      \\\"posadditionalamounts.originalAmountCurrency\\\":\\\"EUR\\\",\\n      \\\"posadditionalamounts.originalAmountValue\\\":\\\"1099\\\",\\n      \\\"pspReference\\\":\\\"XDKTNLDG975ZGN82\\\",\\n      \\\"recurring.shopperReference\\\":\\\"CUST01_34582\\\",\\n      \\\"shopperEmail\\\":\\\"S.Hopper@example.com\\\",\\n      \\\"shopperReference\\\":\\\"CUST01_34582\\\",\\n      \\\"shopperStatement\\\":\\\"Book shop - ISBN 9780706414004\\\",\\n      \\\"startMonth\\\":\\\"01\\\",\\n      \\\"startYear\\\":\\\"2017\\\",\\n      \\\"tc\\\":\\\"71D49C21362B74CC\\\",\\n      \\\"tid\\\":\\\"47069832\\\",\\n      \\\"transactionReferenceNumber\\\":\\\"XDKTNLDG975ZGN82\\\",\\n      \\\"transactionType\\\":\\\"GOODS_SERVICES\\\",\\n      \\\"txdate\\\":\\\"24-01-2023\\\",\\n      \\\"txtime\\\":\\\"12:37:56\\\"\\n   },\\n   \\\"store\\\":\\\"YOUR_STORE\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>\n<h2 id=\"key-value-pairs\">Option 2: Pass data elements as key-value pairs<\/h2>\n<p>This example shows how to add data elements to your payment request as form-encoded key-value pairs.<\/p>\n<ol>\n<li>\n<p>Create a string with the data elements you want to pass in key-value pairs, using <strong>&amp;<\/strong> as a separator between the pairs.<\/p>\n<p>In this example, we use a limited set of data:<\/p>\n<ul>\n<li>Metadata: <code>metadata.employeeNumber=1<\/code><\/li>\n<li>Shopper statement: <code>shopperStatement=Book shop - ISBN 9780706414004<\/code><\/li>\n<li>Shopper email: <code>shopperEmail=S.Hopper@example.com<\/code><\/li>\n<li>Shopper reference: <code>shopperReference=CUST01_34582<\/code><\/li>\n<li>Two tender options, to let the POS app handle printing or sending the receipt, and to ask for a tip: <code>tenderOption=ReceiptHandler,AskGratuity<\/code><\/li>\n<\/ul>\n<p>So the string looks like this:<\/p>\n<pre><code class=\"language-raw\">metadata.employeeNumber=1&amp;shopperStatement=Book shop - ISBN 9780706414004&amp;shopperEmail=S.Hopper@example.com&amp;shopperReference=CUST01_34582&amp;tenderOption=ReceiptHandler,AskGratuity<\/code><\/pre>\n<\/li>\n<li>\n<p><a href=\"\/point-of-sale\/basic-tapi-integration\/make-a-payment\">Make a payment request<\/a> with:<\/p>\n<ul>\n<li><code>SaleData.SaletoAcquirerData<\/code>: Your string of form-encoded key-value pairs.<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"''\" :id=\"'pass-add-data-key-value'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n    \\\"SaleToPOIRequest\\\": {\\n        \\\"PaymentRequest\\\": {\\n            \\\"SaleData\\\": {\\n                \\\"SaleToAcquirerData\\\": \\\"metadata.employeeNumber=1&amp;shopperStatement=Book shop - ISBN 9780706414004&amp;shopperEmail=S.Hopper@example.com&amp;shopperReference=CUST01_34582&amp;tenderOption=ReceiptHandler,AskGratuity\\\",\\n                \\\"SaleTransactionID\\\": {\\n                    \\\"TransactionID\\\": \\\"27908\\\",\\n                    \\\"TimeStamp\\\": \\\"2023-01-24T11:56:38.471Z\\\"\\n                }\\n            },\\n            \\\"PaymentTransaction\\\": {\\n                \\\"AmountsReq\\\": {\\n                    \\\"Currency\\\": \\\"EUR\\\",\\n                    \\\"RequestedAmount\\\": 10.99\\n                }\\n            }\\n        },\\n        \\\"MessageHeader\\\": {\\n            \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n            \\\"MessageClass\\\": \\\"Service\\\",\\n            \\\"MessageCategory\\\": \\\"Payment\\\",\\n            \\\"MessageType\\\": \\\"Request\\\",\\n            \\\"ServiceID\\\": \\\"811\\\",\\n            \\\"SaleID\\\": \\\"POSSystemID12346\\\",\\n            \\\"POIID\\\": \\\"e280-346403161\\\"\\n        }\\n    }\\n}\"},{\"language\":\"java\",\"tabTitle\":\"Java\",\"content\":\"String POIID = \\\"YOUR_TERMINAL_ID\\\";\\nString serviceID = \\\"YOUR_UNIQUE_ATTEMPT_ID\\\";\\nString saleID = \\\"YOUR_CASH_REGISTER_ID\\\";\\nString transactionID = \\\"YOUR_UNIQUE_TRANSACTION_ID\\\";\\n\\nSaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();\\nMessageHeader messageHeader = new MessageHeader();\\nmessageHeader.setPOIID(POIID);\\nmessageHeader.setMessageClass( MessageClassType.SERVICE );\\nmessageHeader.setMessageType( MessageType.REQUEST );\\nmessageHeader.setProtocolVersion(\\\"3.0\\\");\\nmessageHeader.setServiceID(serviceID);\\nmessageHeader.setSaleID(saleID);\\nmessageHeader.setMessageCategory( MessageCategoryType.PAYMENT );\\nsaleToPOIRequest.setMessageHeader(messageHeader);\\n\\nPaymentRequest paymentRequest = new PaymentRequest();\\nPaymentTransaction paymentTransaction = new PaymentTransaction();\\nAmountsReq amountsReq = new AmountsReq();\\namountsReq.setRequestedAmount( BigDecimal.valueOf(10.99) );\\namountsReq.setCurrency(\\\"EUR\\\");\\npaymentTransaction.setAmountsReq(amountsReq);\\n\\nTransactionConditions transactionConditions = new TransactionConditions();\\npaymentTransaction.setTransactionConditions(transactionConditions);\\npaymentRequest.setPaymentTransaction(paymentTransaction);\\n\\nSaleData saleData = new SaleData();\\nsaleData.setSaleToAcquirerData(\\\"metadata.employeeNumber=1&amp;shopperStatement=Book shop - ISBN 9780706414004&amp;shopperEmail=S.Hopper@example.com&amp;shopperReference=CUST01_34582&amp;tenderOption=ReceiptHandler,AskGratuity\\\");\\nsaleData.setTokenRequestedType( TokenRequestedType.CUSTOMER );\\nTransactionIdentification saleTransactionID = new TransactionIdentification();\\nsaleTransactionID.setTransactionID(transactionID);\\nsaleTransactionID.setTimeStamp(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));\\nsaleData.setSaleTransactionID(saleTransactionID);\\npaymentRequest.setSaleData(saleData);\\nsaleToPOIRequest.setPaymentRequest(paymentRequest);\\nterminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>Note that the payment response has an <code>AdditionalResponse<\/code> in the same format as the <code>SaleToAcquirerData<\/code>: form-encoded key-value pairs. This contains:<\/p>\n<ul>\n<li>The <code>metadata<\/code>, <code>shopperEmail<\/code>, <code>shopperReference<\/code>, and <code>shopperStatement<\/code> from the request.<\/li>\n<li>Data resulting from the processing of the payment. The shopper gave a 10% tip (EUR&nbsp;1.09).<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Form-encoded AdditionalResponse'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"SaleToPOIResponse\\\": {\\n        \\\"PaymentResponse\\\": {\\n            \\\"POIData\\\": {...},\\n            \\\"SaleData\\\": {\\n                \\\"SaleTransactionID\\\": {\\n                    \\\"TimeStamp\\\": \\\"2020-04-08T13:53:52.000Z\\\",\\n                    \\\"TransactionID\\\": \\\"27908\\\"\\n                }\\n            },\\n            \\\"PaymentReceipt\\\": [...],\\n            \\\"PaymentResult\\\": {\\n                \\\"AmountsResp\\\": {\\n                    \\\"AuthorizedAmount\\\": 12.08,\\n                    \\\"Currency\\\": \\\"EUR\\\",\\n                    \\\"TipAmount\\\": 1.09\\n                },\\n                \\\"OnlineFlag\\\": true,\\n                \\\"PaymentAcquirerData\\\": {...},\\n                \\\"PaymentInstrumentData\\\": {\\n                    \\\"CardData\\\": {...},\\n                    \\\"PaymentInstrumentType\\\": \\\"Card\\\"\\n                }\\n            },\\n            \\\"Response\\\": {\\n                \\\"Result\\\": \\\"Success\\\",\\n                \\\"AdditionalResponse\\\": \\\"AID=A000000004101001&amp;tid=47069832&amp;transactionType=GOODS_SERVICES&amp;backendGiftcardIndicator=false&amp;posadditionalamounts.originalAmountValue=1099&amp;shopperStatement=Book%20shop%20-%20ISBN%000158204503066&amp;expiryYear=2028&amp;acquirerResponseCode=APPROVED&amp;alias=M469509594859802&amp;giftcardIndicator=false&amp;gratuityAmount=109&amp;posAmountGratuityValue=109&amp;batteryLevel=27%25&amp;cardHolderName=%20%2f&amp;paymentMethodVariant=mc&amp;pspReference=HZP8T728QRWZNN82&amp;applicationPreferredName=mc%20en%20gbr%20gbp&amp;store=YOUR_STORE&amp;aliasType=Default&amp;cardType=mc&amp;iso8601TxDate=2023-01-24T11%3a56%3a40.471Z&amp;offline=false&amp;posOriginalAmountValue=1099&amp;recurring.shopperReference=CUST01_34582&amp;txtime=12%3a56%3a40&amp;paymentMethod=mc&amp;txdate=24-01-2023&amp;shopperEmail=S.Hopper%40example.com&amp;shopperReference=CUST01_34582&amp;startYear=2017&amp;tc=3FCC3D9E2B3E30F9&amp;applicationLabel=MCENGBRGBP&amp;cardIssueNumber=33&amp;cardSummary=9999&amp;expiryMonth=02&amp;merchantReference=27908&amp;mid=50&amp;posadditionalamounts.originalAmountCurrency=EUR&amp;transactionReferenceNumber=HZP8T728QRWZNN82&amp;posAuthAmountCurrency=EUR&amp;PaymentAccountReference=cXs5pW5qRpreJdFGQtcY36pCAqjS2&amp;cardHolderVerificationMethodResults=1F0302&amp;cardIssuerCountryId=826&amp;posAmountCashbackValue=0&amp;fundingSource=CREDIT&amp;metadata.employeeNumber=1&amp;posEntryMode=CLESS_CHIP&amp;startMonth=01&amp;cardBin=541333&amp;cardScheme=mc&amp;issuerCountry=GB&amp;posAuthAmountValue=1208&amp;posadditionalamounts.gratuityAmount=109\\\"\\n            }\\n        },\\n        \\\"MessageHeader\\\": {...}\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>\n<h2>See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/point-of-sale\/add-data\/sale-to-acquirer-data\"\n                        target=\"_self\"\n                        >\n                    Sample collection of SaleToAcquirerData\n                <\/a><\/li><li><a href=\"\/point-of-sale\/basic-tapi-integration\/pass-application-information\"\n                        target=\"_self\"\n                        >\n                    Pass application information\n                <\/a><\/li><li><a href=\"\/point-of-sale\/add-data\/tender-options\"\n                        target=\"_self\"\n                        >\n                    Pass tender options\n                <\/a><\/li><li><a href=\"\/point-of-sale\/shopper-recognition\"\n                        target=\"_self\"\n                        >\n                    Shopper recognition and tokenization\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/point-of-sale\/add-data","articleFields":{"description":"Send us extra data elements such as application info, tender options, and additional data.","feedback_component":true,"type":"page","_expandable":{"operations":""},"status":"current","last_edit_on":"12-03-2024 16:30","filters_component":false,"decision_tree":"[]","page_id":"5a4ac895-564d-4910-a491-11ef32554c8d"},"algolia":{"url":"https:\/\/docs.adyen.com\/point-of-sale\/add-data","title":"Add information to a payment","content":"A basic Terminal API payment request includes the amount, currency, ID, and timestamp of the transaction. But maybe you want to add information that you want us to apply to your request, or save on the Adyen payments platform. The SaleToAcquirerData field allows you to do that.\nRequirements\nBefore you begin, take into account the following requirements.\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nA Terminal API integration with payment terminals or with a Mobile solution.\n\n\nSetup steps\nBefore you begin, select the data you want to receive in the additional response.\n\n\n\nData elements\nIn the SaleToAcquirerData field you can add all kinds of data elements:\n\nApplication info that we can use for troubleshooting purposes.\nMetadata of your own choice that you want to connect to the payment.\nData to use for shopper recognition and tokenization.\nDynamic shopper statements.\nSplit payment details.\nTender options to influence how the transaction is processed.\nAdditional data for common use cases like pre-authorization, or hospitality.\n\nRefer to the sample collection of SaleToAcquirerData to see what these data elements look like. Below we describe them in a bit more detail, and we explain how to add a combination of data elements to your payment request.\nApplication info\nApplication info consists of data elements that identify the software that you use for making payment requests to the Adyen payments platform. When you pass this information in your payment requests, we are able to analyze and troubleshoot payments more efficiently, and provide a better support experience.\nFor details, see Pass application info.\nMetadata\nMetadata are data elements that you create yourself. When you add metadata to your payment request, they are returned in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a payment. You are free to create up to 20 metadata fields, where the maximum field name is 20 characters, and the maximum value 80 characters.\nTo also receive metadata in your settlement reports, contact our Support Team.\nShopper recognition and tokenization\nBased on shopper identifiers that you receive in your payment response, you can link the payment to a shopper. This enables you to personalize the shopping experience or make recurring payments using a token instead of real card details. You first need to create those shopper identifiers by including data elements like shopperEmail, shopperReference, and recurringProcessingModel in the SaleToAcquirerData field of your initial payment request. You then retrieve the shopper identifiers from the payment response and store them in your system.\nFor more information see Shopper recognition.\nShopper statement\nWhen shoppers check their bank statements, they need to be able to easily identify the charges they see. The description of the transaction should start with your brand or the merchant name that is most recognizable to the cardholder.\nIn your Terminal API payment request, you can provide a transaction-specific shopperStatement. We recommend sending no more than 22 characters and using only a-z, A-Z, 0-9, spaces, and the special characters . , ' _ - ? + * \/. That is because banks may cut off longer statements and do not always support Unicode characters.\nThe shopperStatement from your Terminal API payment request only appears on your shopper's bank statement if your account is configured to include a dynamic shopper statement in the transaction description.\nSplit payments\nPlatforms usually split payments between the platform and the users of the platform. Using the SaleToAcquirerData field you can define how to split a payment, such as the amount and type of each split and the accounts that receive the splits.\nFor instructions, see our Adyen for Platforms documentation about processing in-person payments.\nTender options\nTender options are parameters that change how the tender is processed. For example, the tender option AskGratuity triggers the payment terminal to ask the shopper for a tip.\nAdditional data\nThere are many additional data elements that you can add to your payment requests. The list is long and growing, so we cannot mention all of them here. See for example the Additional data in our API Explorer. Many of these elements also apply to point-of-sale payments.\nAdding data elements to your request\nThere are two ways to pass data elements in the SaleToAcquirerData field of your payment request:\n\nOption 1: as a JSON object converted to a Base64-encoded string.\nOption 2: as form-encoded key-value pairs (using &amp; as a separator).\n\nRefer to the sample collection of SaleToAcquirerData to see what these formats look like.\n\nThe format of the SaleToAcquirerData, Base64-encoded or key-value pairs, determines the format of the AdditionalResponse that you receive. To always receive the AdditionalResponse in one of those formats, contact our Support Team.\n\nReceiving the additional response\nThe AdditionalResponse in your payment response returns information resulting from the processing of your payment request. It also returns some of the information you added to your payment request, so you can use this in your business logic.\nThe additional response can contain many data fields, but you may not need them all. To select the data that you want:\n\nIn your Customer Area, go to Developers &gt; Additional data.\nSelect the options for the type of data you want to receive.\n\nThe format of the AdditionalResponse corresponds with the format of the SaleToAcquirerData in the payment request: a Base64-encoded JSON object, or form-encoded key-value pairs.\nIf the request doesn't contain any SaleToAcquirerData, the AdditionalResponse will be in key-value pairs format.\nOption 1: Pass data elements as Base64-encoded JSON\nThis example shows how to add data elements to your payment request as a JSON object converted to a Base64-encoded string:\n\n\nCreate a JSON object with the data elements you want to pass.\nIn this example, we use a limited set of data:\n\nMetadata: the key employeeNumber with a value of 1\nShopper statement: Book shop - ISBN 9780706414004\nShopper email: S.Hopper@example.com\nShopper reference: CUST01_34582\nTwo tender options: ReceiptHandler to let the POS app handle printing or sending the receipt, and AskGratuity to ask for a tip.\n\nSo the JSON object looks like this:\n\n\n\n\n\nEncode the JSON object to Base64.\newogICAibWV0YWRhdGEiOnsKICAgICAgImVtcGxveWVlTnVtYmVyIjoiMSIKICAgfSwKICAgInNob3BwZXJTdGF0ZW1lbnQiOiJCb29rIHNob3AgLSBJU0JOIDk3ODA3MDY0MTQwMDQiLAogICAic2hvcHBlckVtYWlsIjoiUy5Ib3BwZXJAZXhhbXBsZS5jb20iLAogICAic2hvcHBlclJlZmVyZW5jZSI6IkNVU1QwMV8zNDU4MiIsCiAgICJ0ZW5kZXJPcHRpb24iOiJSZWNlaXB0SGFuZGxlcixBc2tHcmF0dWl0eSIKfQ==\n\n\nMake a payment request with:\n\nSaleData.SaletoAcquirerData: The Base64-encoded JSON object.\n\n\n\n\nNote that the payment response has an AdditionalResponse in the same format as the SaleToAcquirerData field: a Base64-encoded string.\n\n\n\n\n\nDecode the Base64 string in the AdditionalResponse field of the payment response. This contains:\n\nThe metadata, shopperEmail, shopperReference, and shopperStatement from the request.\nData resulting from the processing of the payment. The shopper gave a 10% tip (EUR&nbsp;1.09).\n\n\n\n\n\n\nOption 2: Pass data elements as key-value pairs\nThis example shows how to add data elements to your payment request as form-encoded key-value pairs.\n\n\nCreate a string with the data elements you want to pass in key-value pairs, using &amp; as a separator between the pairs.\nIn this example, we use a limited set of data:\n\nMetadata: metadata.employeeNumber=1\nShopper statement: shopperStatement=Book shop - ISBN 9780706414004\nShopper email: shopperEmail=S.Hopper@example.com\nShopper reference: shopperReference=CUST01_34582\nTwo tender options, to let the POS app handle printing or sending the receipt, and to ask for a tip: tenderOption=ReceiptHandler,AskGratuity\n\nSo the string looks like this:\nmetadata.employeeNumber=1&amp;shopperStatement=Book shop - ISBN 9780706414004&amp;shopperEmail=S.Hopper@example.com&amp;shopperReference=CUST01_34582&amp;tenderOption=ReceiptHandler,AskGratuity\n\n\nMake a payment request with:\n\nSaleData.SaletoAcquirerData: Your string of form-encoded key-value pairs.\n\n\n\n\nNote that the payment response has an AdditionalResponse in the same format as the SaleToAcquirerData: form-encoded key-value pairs. This contains:\n\nThe metadata, shopperEmail, shopperReference, and shopperStatement from the request.\nData resulting from the processing of the payment. The shopper gave a 10% tip (EUR&nbsp;1.09).\n\n\n\n\n\n\nSee also\n\n\n                    Sample collection of SaleToAcquirerData\n                \n                    Pass application information\n                \n                    Pass tender options\n                \n                    Shopper recognition and tokenization\n                \n","type":"page","locale":"en","boost":18,"hierarchy":{"lvl0":"Home","lvl1":"In-person payments","lvl2":"Add information to a payment"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/","lvl1":"https:\/\/docs.adyen.com\/point-of-sale","lvl2":"\/point-of-sale\/add-data"},"levels":3,"category":"In-person payments","category_color":"green","tags":["information","payment"]},"articleFiles":{"pass-add-data-base64.json":"<p alt=\"\">pass-add-data-base64.json<\/p>","pass-add-data-key-value.json":"<p alt=\"\">pass-add-data-key-value.json<\/p>"}}
