Payment Terminal Application
The Payment Terminal Application is our Android payment application which provides the In-Store Payments API to accept point-of-sale (POS) payments consistently across payment terminals. This solution moves you away from dependency on terminal manufacturer-provided software to our card-present software that supports:
- Multiple market segments
- Traditional SMB stand-alone payment terminals
- Large enterprise direct solutions
- Consistency across payment terminal platforms
The following workflow shows how a semi-integrated POS on a separate device communicates to the payment terminal through the Payment Terminal Application.

The following workflow, with a semi-integrated POS on the same device as Payment Terminal Application, shows how our TMS Agent runs alongside Payment Terminal Application and facilitates OS, application, and configuration updates to the payment terminal device.

How it works
How to process a POS payment with the Payment Terminal Application using WebSockets:
- Your POS application initiates the transaction request with Payment Terminal Application. Transaction operation requests are synchronous where you receive the full response before you initiate a new request.
- Payment Terminal Application accepts the request which is either a simple or a complex operation.
- Simple operations have one request and one response message. The response message uses the same operation value as the request.
- Complex operations have one request and multiple response messages. Depending on the type of request, Payment Terminal Application sends notification messages before the final response. The last response message uses the same value in the field
operation
as the request which signals that the operation is complete.
- When you receive the final response, proceed appropriately within your POS to complete the transaction with the cardholder.
API operations
Implement the following set of messages to control transaction flows.
API operation | Semi-integrated | On-Device Integration |
---|---|---|
Transaction | Yes | Yes |
GetTransactions | Yes | No |
SetParameter | Yes | Yes |
GetParameter | Yes | Yes |
Display | Yes | No |
PrintText | Yes | No |
Status | Yes | Yes |
Cancel | Yes | No |
Restart | Yes | Yes |
GetSignature | Yes | Yes |
PrintLastReceipt | Yes | Yes |
LastTransaction | Yes | Yes |
GetInformation | Yes | Yes |
ReadCard | Yes | Yes |
LineItems | Yes | No |
Semi-integrated versus on-device integration
In semi-integrated setup, your POS runs on an external device connected to our payment terminal device.
In on-device integration setup, your POS application runs alongside our Payment Terminal Application on the same device. Your POS application drives the user experience for all user interactions outside of the payment flow. To process a transaction, UI control switches from the POS to the Payment Terminal Application and back.
For both semi-integrated and on-device integration, use the WebSocket API for communication.
User interface
The user interface is mainly supported by the display, keyboard and audio cues when applicable.
Accessibility requirements
The user interface is aligned with the best practices for accessibility, ensuring that both visual and audio elements are used in a consistent manner to facilitate navigation and usability. Payment Terminal Application is ADA (US) and OADA (Canada) compliant.
Idle screen
For POS solutions on a separate device: If no connection exists, the Payment Terminal Application displays the idle screen with the following message: Waiting for POS Connection
After your POS connects, the Payment Terminal Application displays a blank screen with a logo and is ready to accept a command from the POS.
Refer to the following example images of the idle screen.

For on-device integration: The idle screen is not applicable as Payment Terminal Application runs in the background. Your POS manages the display of the device outside of a payment flow.
Audio cues
Payment Terminal Application uses audible cues during a transaction for card read success or failure and for transaction outcome (approved or declined).
The following table describes the various audio cues:
Audio cue | Description |
---|---|
Success tone | Single beep with a duration of 500 ms and an approximate frequency of 1500 Hz. |
Alert tone | Double beep with a duration of 200 ms, an approximate frequency of 750 Hz, and a gap between beeps of 200 ms. |
Attention tone | Repeated beep, as long as attention is required, with a duration of 200 ms and an approximate frequency of 1500 Hz. For example, prompts the user to remove their card. |