{"title":"Accessibility mode from the POS app","category":"default","creationDate":1776961627,"content":"<p>You can enable accessible mode by making a payment request from your POS app. The payment terminal will then provide the shopper with audio instructions during the payment. The request needs to include the accessibility mode operation details.<\/p>\n<h2>Requirements<\/h2>\n<p>Before you begin, take into account the following requirements, limitations, and preparations.<\/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=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api\">Terminal API integration<\/a> with payment terminals.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Hardware<\/strong><\/td>\n<td style=\"text-align: left;\">Android payment terminals. <br>Accessibility mode is supported on the following models: <ul><li markdown=\"1\">On software version 1.117 or later: AMS1, S1F2, S1F2L, S1E2L, S1U2.<\/li><li markdown=\"1\">On software version 1.124 or later: P630, M450, SFO1. <\/ul><\/li> Optional harware: <ul><li markdown=\"1\">A pair of headphones that can be used with a 3.5mm audio jack (S1F2, S1F2L, S1E2L) or a USB-C jack (AMS1 and S1U2).<\/ul><\/li><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Limitations<\/strong><\/td>\n<td style=\"text-align: left;\">Accessibility mode does not support: <ul><li markdown=\"1\">Tipping<\/li><li markdown=\"1\">Giving<\/li><li markdown=\"1\">Signature as a cardholder verification method<\/li><li markdown=\"1\">The following languages: Estonian, Latvian, Icelandic, and Lithuanian.<\/ul><\/li><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">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>: <ul><li markdown=\"1\">Ask them to configure the accessibility mode.<\/li><li markdown=\"1\">Tell them if you want to extend the default timeout for the payment screens (2 minutes) and the PIN entry screen (5 minutes). <\/ul><\/li><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>How it works<\/h2>\n<ol>\n<li>Make a payment request with a Base64-encoded <code>Operation<\/code> object to enable the accessibility mode.\n<div class=\"notices green\">\n<p>When the terminal is in accessibility mode, the timeout period is extended to give the shopper time to listen to the audio instructions.<\/p>\n<\/div><\/li>\n<li>The terminal reads out the text shown on the terminal screen, and instructs the shopper on how to present their payment card.<\/li>\n<li>The shopper presents their card to complete the payment.<\/li>\n<\/ol>\n<h2 id=\"pos\">Make an accessible payment from the POS app<\/h2>\n<p>After accessibility mode is configured, you are ready to make a payment request with a Base64-encoded <code>Operation<\/code> object to enable the accessibility mode.<\/p>\n<ol>\n<li>\n<p>Create an <code>Operation<\/code> JSON object with the <code>Operation.Type<\/code>: <span translate=\"no\"><strong>Payment<\/strong><\/span> and <code>Operation.Variant<\/code>: <span translate=\"no\"><strong>EnableAccessibilityMode<\/strong><\/span>:<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Operation JSON object'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"Operation\\\":[\\n        {\\n           \\\"Type\\\":\\\"Payment\\\",\\n            \\\"Variant\\\":\\\"EnableAccessibilityMode\\\"\\n        }\\n    ]\\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 <code>Operation<\/code> JSON object to Base64. You will pass the resulting string in <code>SaleData.SaleToPOIData<\/code>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Converted to a Base64-encoded string'\" :id=\"''\" :code-data='[{\"language\":\"raw\",\"tabTitle\":\"\",\"content\":\"eyJPcGVyYXRpb24iOiBbeyJUeXBlIjogIlBheW1lbnQiLCAiVmFyaWFudCI6ICJFbmFibGVBY2Nlc3NpYmlsaXR5TW9kZSJ9XX0=\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p><a href=\"\/pt\/point-of-sale\/basic-tapi-integration\/make-a-payment#make-a-payment\">Make a payment request<\/a>, specifying:<\/p>\n<ul>\n<li>\n<p>The standard <a href=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api#request-message-header\">\n  <code>SaleToPOIRequest.MessageHeader<\/code>\n<\/a> object, with <code>MessageClass<\/code> set to <span translate=\"no\"><strong>Service<\/strong><\/span> and <code>MessageCategory<\/code> set to <span translate=\"no\"><strong>Payment<\/strong><\/span>.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>ProtocolVersion<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><strong>3.0<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageClass<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>Service<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageCategory<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>Payment<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageType<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>Request<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>ServiceID<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (<code>POIID<\/code>) being used.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>SaleID<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Your unique ID for the POS system component to send this request from.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>POIID<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The unique ID of the terminal to send this request to. Format: <em>[device model]-[serial number]<\/em>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n<p>The  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/payment\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">PaymentRequest<\/a> object with:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>SaleData.SaleTransactionID<\/code><\/td>\n<td style=\"text-align: left;\">An object with: <ul><li markdown=\"1\"><code>TransactionID<\/code>: your reference to identify a payment. We recommend using a unique value per payment. In your Customer Area and Adyen reports, this will show as the <strong>merchant reference<\/strong> for the transaction.<\/li> <li markdown=\"1\"><code>TimeStamp<\/code>: date and time of the request in <a href=\"https:\/\/en.wikipedia.org\/wiki\/ISO_8601#Coordinated_Universal_Time_(UTC)\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">UTC format<\/a>.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>SaleData.SaleToPOIData<\/code><\/td>\n<td style=\"text-align: left;\">The Base64-encoded <code>Operation<\/code> object.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>PaymentTransaction.AmountsReq<\/code><\/td>\n<td style=\"text-align: left;\">An object with: <ul><li markdown=\"1\"><code>Currency<\/code>: the transaction <a href=\"\/pt\/development-resources\/currency-codes\">currency<\/a>.<\/li><li markdown=\"1\"><code>RequestedAmount<\/code>: the purchase amount, with decimals.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Payment request with accessibility mode enabled'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"SaleToPOIRequest\\\":{\\n    \\\"MessageHeader\\\":{\\n      \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n      \\\"MessageClass\\\":\\\"Service\\\",\\n      \\\"MessageCategory\\\":\\\"Payment\\\",\\n      \\\"MessageType\\\":\\\"Request\\\",\\n      \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n      \\\"ServiceID\\\":\\\"0207111104\\\",\\n      \\\"POIID\\\":\\\"S1E2L-324688179\\\"\\n    },\\n    \\\"PaymentRequest\\\":{\\n      \\\"SaleData\\\":{\\n        \\\"SaleTransactionID\\\":{\\n          \\\"TransactionID\\\":\\\"27908\\\",\\n          \\\"TimeStamp\\\":\\\"2025-05-14T10:11:03.000Z\\\"\\n        },\\n        \\\"SaleToPOIData\\\":\\n            \\\"eyJPcGVyYXRpb24iOiBbeyJUeXBlIjogIlBheW1lbnQiLCAiVmFyaWFudCI6ICJFbmFibGVBY2Nlc3NpYmlsaXR5TW9kZSJ9XX0=\\\"\\n      },\\n      \\\"PaymentTransaction\\\":{\\n        \\\"AmountsReq\\\":{\\n          \\\"Currency\\\":\\\"EUR\\\",\\n          \\\"RequestedAmount\\\":10.00\\n        }\\n      }\\n    }\\n  }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The <a href=\"\/pt\/point-of-sale\/basic-tapi-integration\/make-a-payment\/#payment-response\">payment response<\/a> is the same as with a regular payment. The terminal exits the accessibility mode after a successful or canceled payment.<\/p>\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\/android-terminals\/accessibility-mode\/accessibility-from-terminal\"\n                        target=\"_self\"\n                        >\n                    Accessibility mode from the terminal\n                <\/a><\/li><li><a href=\"\/point-of-sale\/basic-tapi-integration\/make-a-payment\"\n                        target=\"_self\"\n                        >\n                    Make a payment\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/android-terminals\/accessibility-mode\/accessibility-from-pos","articleFields":{"description":"Learn how to make the terminal read out instructions to make accessible payments for visually impaired shoppers from your POS app.","feedback_component":true,"filters_component":false,"robots":"noindex,nofollow","last_edit_on":"27-05-2025 17:16","decision_tree":"[]","page_id":"e9aaacbd-115d-4105-b36b-2eef7e349cf2"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/android-terminals\/accessibility-mode\/accessibility-from-pos","title":"Accessibility mode from the POS app","content":"You can enable accessible mode by making a payment request from your POS app. The payment terminal will then provide the shopper with audio instructions during the payment. The request needs to include the accessibility mode operation details.\nRequirements\nBefore you begin, take into account the following requirements, limitations, and preparations.\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nA Terminal API integration with payment terminals.\n\n\nHardware\nAndroid payment terminals. Accessibility mode is supported on the following models: On software version 1.117 or later: AMS1, S1F2, S1F2L, S1E2L, S1U2.On software version 1.124 or later: P630, M450, SFO1.  Optional harware: A pair of headphones that can be used with a 3.5mm audio jack (S1F2, S1F2L, S1E2L) or a USB-C jack (AMS1 and S1U2).\n\n\nLimitations\nAccessibility mode does not support: TippingGivingSignature as a cardholder verification methodThe following languages: Estonian, Latvian, Icelandic, and Lithuanian.\n\n\nSetup steps\nContact our Support Team: Ask them to configure the accessibility mode.Tell them if you want to extend the default timeout for the payment screens (2 minutes) and the PIN entry screen (5 minutes). \n\n\n\nHow it works\n\nMake a payment request with a Base64-encoded Operation object to enable the accessibility mode.\n\nWhen the terminal is in accessibility mode, the timeout period is extended to give the shopper time to listen to the audio instructions.\n\nThe terminal reads out the text shown on the terminal screen, and instructs the shopper on how to present their payment card.\nThe shopper presents their card to complete the payment.\n\nMake an accessible payment from the POS app\nAfter accessibility mode is configured, you are ready to make a payment request with a Base64-encoded Operation object to enable the accessibility mode.\n\n\nCreate an Operation JSON object with the Operation.Type: Payment and Operation.Variant: EnableAccessibilityMode:\n\n\n\n\n\nEncode the Operation JSON object to Base64. You will pass the resulting string in SaleData.SaleToPOIData.\n\n\n\n\n\nMake a payment request, specifying:\n\n\nThe standard \n  SaleToPOIRequest.MessageHeader\n object, with MessageClass set to Service and MessageCategory set to Payment.\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nProtocolVersion\n\n3.0\n\n\nMessageClass\n\nService\n\n\nMessageCategory\n\nPayment\n\n\nMessageType\n\nRequest\n\n\nServiceID\n\nYour unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (POIID) being used.\n\n\nSaleID\n\nYour unique ID for the POS system component to send this request from.\n\n\nPOIID\n\nThe unique ID of the terminal to send this request to. Format: [device model]-[serial number].\n\n\n\n\n\nThe  PaymentRequest object with:\n\n\n\nParameter\nDescription\n\n\n\n\nSaleData.SaleTransactionID\nAn object with: TransactionID: your reference to identify a payment. We recommend using a unique value per payment. In your Customer Area and Adyen reports, this will show as the merchant reference for the transaction. TimeStamp: date and time of the request in UTC format.\n\n\nSaleData.SaleToPOIData\nThe Base64-encoded Operation object.\n\n\nPaymentTransaction.AmountsReq\nAn object with: Currency: the transaction currency.RequestedAmount: the purchase amount, with decimals.\n\n\n\n\n\n\n\n\nThe payment response is the same as with a regular payment. The terminal exits the accessibility mode after a successful or canceled payment.\n\n\nSee also\n\n\n                    Accessibility mode from the terminal\n                \n                    Make a payment\n                \n","type":"page","locale":"pt","boost":16,"hierarchy":{"lvl0":"Home","lvl1":"Terminais","lvl2":"Android terminals","lvl3":"Accessibility mode on Android terminals","lvl4":"Accessibility mode from the POS app"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/point-of-sale","lvl2":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/android-terminals","lvl3":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/android-terminals\/accessibility-mode","lvl4":"\/pt\/point-of-sale\/android-terminals\/accessibility-mode\/accessibility-from-pos"},"levels":5,"category":"In-person payments","category_color":"green","tags":["Accessibility"]}}
