Terminal-2 icon

Ask for text input

Use an input request to ask a shopper for text input.

Here we describe how you can use an InputRequest to ask the shopper or your staff to enter text. You can use this, for example, to obtain the email address of a shopper.

The following illustrations show a text input screen on a portrait, small portrait (e285p), and landscape display.


The terminal continues to show your input request until one of these events occurs:

  • The user has provided input.
  • The maximum input time expires. You can set this time in the request.
  • On the terminal, Cancel is selected.
  • The terminal receives a request to cancel collecting input or any other request from the POS app.

Make a Text input request

To use the payment terminal to ask for text input:

  1. Make a POST request to a Terminal API endpoint, specifying:

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

      Parameter Required Description
      ProtocolVersion -white_check_mark- 3.0
      MessageClass -white_check_mark- Device
      MessageCategory -white_check_mark- Input
      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 system where you send this request from.
      POIID -white_check_mark- The unique ID of the terminal to send this request to. Format: [device model]-[serial number].
    • InputRequest.DisplayOutput: this part of the request body defines what is shown on the terminal.

      Parameter Description
      Device CustomerDisplay
      InfoQualify Display
      OutputContent.OutputFormat Text
      OutputContent.PredefinedContent.ReferenceID GetText
      OutputContent.OutputText An array of one Text field containing your own text to show on the terminal.
    • InputRequest.InputData: this part of the request body handles the user input.

      Parameter Description
      Device CustomerInput
      InfoQualify Input
      InputCommand TextString
      MaxInputTime (Integer) Time-out in seconds. This is the time that the user gets to finish their input.
      DefaultInputString Placeholder text for the input box, to let the user know what input format you are expecting.
      MaskChararctersFlag Mask user input. Allowed values are true and false.

    The following example asks the shopper for their email address.

    For a complete list of fields you can pass in a GetText input request, see the API reference.

  2. Wait for the user to supply the requested input.

    The provided input is not validated against a format.

    • If input is received from the terminal, the InputResult.Input contains:
      • TextInput: the text that the user entered.
    • If the input request times out, the InputResult.Response has AdditionalResponse: message=Screen%20timeout, Result: Failure, and ErrorCondition: Cancel.

    • If you make a payment request while the input request is waiting for input on the terminal, the payment request overrides the input request. The InputResult.Response has AdditionalResponse: message=A%20higher%20priority%20request%20has%20been%20received, Result: Failure, and ErrorCondition: Busy.

    • If the user declined to respond (selected the Cancel key ), the InputResult.Input.DigitInput field is empty. The InputResult.Response has Result: Failure and ErrorCondition: Cancel.

    For a complete list of fields you can receive in a GetText input response, see the API reference.

  3. Pass the TextInput value to your system for validation and further use.

See also