Here we describe how you can use an InputRequest to show a prompt on the payment terminal asking the shopper to confirm something by drawing their signature on the display.
The following illustrations show a signature screen on a portrait, small portrait, and landscape display.



Using the on-screen buttons, the shopper can clear or confirm their signature.
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 Signature input request
To use the payment terminal to ask a shopper to provide their signature:
-
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.DisplayOutputto define what is shown on the terminal:Parameter Description DeviceCustomerDisplay InfoQualifyDisplay OutputContent.OutputFormatText OutputContent.PredefinedContent.ReferenceIDGetSignature OutputContent.OutputTextAn array of two Textfields containing your own text to show on the terminal:- The header. On a portrait display, this is limited to about 20 characters.
- Use an empty value, or specify additional text.
On M400, e280, and e285 terminals terminals, additional text is ignored, but you still need to include the secondTextfield with an empty value.
-
InputRequest.InputDatato handle the user input:Parameter Description DeviceCustomerInput InfoQualifyInput InputCommandGetConfirmation 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 their signature.
For a complete list of fields you can pass in a GetSignature 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
InputResponsehas anInputResultwith:Response.AdditionalResponse: the signature provided by the shopper.Input.ConfirmedFlag: true indicates the shopper confirmed their agreement by selecting Confirm
.Input.ConfirmedFlag: false means the shopper declined by selecting Cancel
.
-
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.
For a complete list of fields you can receive in a GetSignature input response, see the API reference.
- If input is received from the terminal, the
-
Pass the relevant data from
InputResult.Inputto your system for validation and further use.