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. 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 POST Terminal API 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 part of the request body 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 part of the request body 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.For a complete list of fields you can pass in a GetRating input request, see the API reference. 
- 
- 
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 ), theInputResult.Input.DigitInputfield is empty. TheInputResult.ResponsehasResult: Failure andErrorCondition: Cancel.
 For a complete list of fields you can receive in a GetRating input response, see the API reference. 
- If input is received from the terminal, the 
- 
Pass the DigitInputvalue to your system for validation and further use.