Here we describe how you can use an InputRequest to ask the shopper or your staff to enter a numerical value from 0 to 10. You can use this, for example, to conduct a Net Promoter Score (NPS) survey.
The following illustrations show a rating input screen on a portrait and landscape display.
AMS1 payment terminals cannot support the rating screen due to limited screen-space.


On a small non-android payment terminal portrait display, the information is divided over two screens. The user needs to select Enter rating before entering a value using the keypad.
On a portrait and landscape terminal without keypad, an on-screen keyboard appears.


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 Rating input request
To use the payment terminal to ask for a rating from 0 to 10:
-
Make a Terminal API input request, specifying:
-
The standard
SaleToPOIRequest.MessageHeaderobject, withMessageClassset to Device andMessageCategoryset to Input.Parameter Required Description ProtocolVersion
3.0 MessageClass
Device MessageCategory
Input MessageType
Request ServiceID
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
Your unique ID for the system where you send this request from. POIID
The unique ID of the terminal to send this request to. Format: [device model]-[serial number].
-
InputRequest.DisplayOutput: This object defines what is shown on the terminal.Parameter Description DeviceCustomerDisplay InfoQualifyDisplay OutputContent.OutputFormatText OutputContent.PredefinedContent.ReferenceIDGetRating OutputContent.OutputTextAn array of one or two Textfields containing your own text to show on the terminal. The first text is shown in bold. Use\nfor a new line. Apart from the text you specify, the terminal will show an instruction for how to confirm the input. -
InputRequest.InputData: This object handles the user input.Parameter Description DeviceCustomerInput InfoQualifyInput InputCommandDigitString MaxInputTime(Integer) Time-out in seconds. This is the time that the user gets to finish their input.
The following example asks the shopper for a rating using the first
Textfield for the core question and the secondTextfield to explain the scoring. -
-
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.Inputcontains:DigitInput: the numeral that the user entered.
-
If the input request times out, the
InputResult.ResponsehasAdditionalResponse: message=Screen%20timeout,Result: Failure, andErrorCondition: 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.ResponsehasAdditionalResponse: message=A%20higher%20priority%20request%20has%20been%20received,Result: Failure, andErrorCondition: Busy. -
If the user declined to respond (selected the Cancel key
), the InputResult.Input.DigitInputfield is empty. TheInputResult.ResponsehasResult: Failure andErrorCondition: Cancel.
- If input is received from the terminal, the
-
Pass the
DigitInputvalue to your system for validation and further use.