Here we describe how you can use an InputRequest
to show some information on the display of the payment terminal and ask the shopper to confirm they agree.
The following illustrations show a confirmation 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 Confirmation input request
To use the payment terminal to ask a shopper to confirm something:
-
Make a POST request to a Terminal API endpoint, specifying:
-
MessageHeader
: the standardSaleToPOIRequest.MessageHeader
object. Specify: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
to define what is shown on the terminal:Parameter Description Device
CustomerDisplay InfoQualify
Display OutputContent.OutputFormat
Text OutputContent.PredefinedContent.ReferenceID
GetConfirmation OutputContent.OutputText
An array of four Text
fields containing your own text to show on the terminal:- The title. On a portrait display, this is limited to about 20 characters.
- Additional text which can be long. Use
\n
to add a line break. - The label for the "Cancel" button on the left.
- The label for the "Confirm" button on the right.
-
InputRequest.InputData
to handle the user input:Parameter Description Device
CustomerInput InfoQualify
Input InputCommand
GetConfirmation MaxInputTime
(Integer) Time-out in seconds. This is the time that the user gets to finish their input.
The following example asks the shopper to confirm they agree.
For a complete list of fields you can pass in a GetConfirmation 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
InputResponse
has anInputResult
with:Input.ConfirmedFlag
: true indicates the shopper confirmed their agreement by selecting the right button on the display ("Agree") or the Confirm key on the keypad.Input.ConfirmedFlag
: false means the shopper selected the left button on the display ("Decline") or the Cancel key on the keypad.
-
If the input request times out, the
InputResult.Response
hasAdditionalResponse
: 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.Response
hasAdditionalResponse
: message=A%20higher%20priority%20request%20has%20been%20received,Result
: Failure, andErrorCondition
: Busy.
For a complete list of fields you can receive in a GetConfirmation input response, see the API reference.
- If input is received from the terminal, the
-
Pass the relevant data from
InputResult.Input
to your system for validation and further use.