You can gather ratings from your customers using the default GetRating input request. As an alternative, you can use the GetOneKeyRating input request. The main difference is that with GetOneKeyRating, a single key press answers the question:
- The user presses a key from 0 to 9 on the terminal keypad.
- Or the user presses Cancel
on the keypad or Skip on the terminal display.
After selecting a key, the answer is confirmed automatically, and the user cannot go back to change the answer.
Asking for rating with a single key press requires a physical keypad and is currently available on the following terminals: M400, P400 Plus, and V400m.
The following illustrations show the single key press rating screen on a portrait and landscape display.


The terminal continues to show your input request until one of these events occurs:
- The user selects a value from 0 to 9 on the keypad.
- The maximum input time expires. You can set this time in the request.
- The user presses Cancel
on the keypad or Skip on the terminal display. - The terminal receives a request to cancel collecting input or any other request from your POS app.
Make a Rating input request
To use the payment terminal to ask for a rating:
-
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.ReferenceIDGetOneKeyRating 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
or Skip on the screen), 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.