Terminal-2 icon

Accessibility mode from the POS app

Learn how to make the terminal read out instructions to make accessible payments for visually impaired shoppers from your POS app.

You can enable accessible mode by making a payment request from your POS app. The request needs to include the accessibility mode operation details.

Requirements

Before you begin, take into account the following requirements, limitations, and preparations.

Requirement Description
Integration type A Terminal API integration with payment terminals.
Hardware
  • One of the following terminal models on software version 1.117 or later: AMS1, S1F2, S1F2L, S1E2L, and S1U2.
  • Optionally, 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).
Limitations Before you begin, keep in mind that Accessibility mode does not support:
  • Tipping
  • Giving
  • Signature as a cardholder verification method
  • The following languages: Estonian, Latvian, Icelandic, and Lithuanian
Setup steps Contact 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).

How it works

  1. Make a payment request with a Base64-encoded Operation object to enable the accessibility mode.

    When the terminal is in accessibility mode, the timeout period is extended to give the shopper time to listen to the audio instructions.

  2. The terminal reads out the text shown on the terminal screen, and instructs the shopper on how to present their payment card.
  3. The shopper presents their card to complete the payment.

Make an accessible payment from the POS app

After accessibility mode is configured, you are ready to make a payment request with a Base64-encoded Operation object to enable the accessibility mode.

  1. Create an Operation JSON object with the Operation.Type: Payment and Operation.Variant: EnableAccessibilityMode:

  2. Encode the Operation JSON object to Base64. You will pass the resulting string in SaleData.SaleToPOIData.

  3. Make a PaymentRequest with:

    • MessageHeader: the standard SaleToPOIRequest.MessageHeader object. Specify:

      Parameter Required Description
      ProtocolVersion -white_check_mark- 3.0
      MessageClass -white_check_mark- Service
      MessageCategory -white_check_mark- Payment
      MessageType -white_check_mark- Request
      ServiceID -white_check_mark- Your 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.
      SaleID -white_check_mark- Your unique ID for the POS system component to send this request from.
      POIID -white_check_mark- The unique ID of the terminal to send this request to. Format: [device model]-[serial number].
    • PaymentRequest: the request body. This includes:

      Parameter Description
      SaleData.SaleTransactionID An 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.
      SaleData.SaleToPOIData The Base64-encoded Operation object.
      PaymentTransaction.AmountsReq An object with:
      • Currency: the transaction currency.
      • RequestedAmount: the purchase amount, with decimals.

    The payment response is the same as with a regular payment. The terminal exits the accessibility mode after a successful or canceled payment.

See also