Skip to main content

EPOS Communication

The Paynt EPOS API is a RESTful service that runs directly on PAX terminals.

It enables secure communication between your POS system and the terminal over HTTP/HTTPS.


Communication Flow

d2 diagram

Step-by-Step

  1. Pairing – Your POS system authenticates with the terminal using a pairing code and receives an auth token.

  2. Request – Your POS sends a transaction request (sale, refund, etc.) with the auth token in the header.

  3. UTI Response – The terminal immediately returns a UTI (Unique Transaction Identifier) to acknowledge the request.

  4. Processing – The terminal displays the payment screen and waits for the customer to tap or insert their card.

  5. Status Check – Your POS queries the transaction status using the UTI to get full details once the payment completes.


Why Use UTI Patterns?

The UTI (Unique Transaction Identifier) system decouples the transaction request from its result.

A UTI is an alphanumeric string consisting of 1-64 characters. Special characters  are not allowed. Each UTI must be a unique value. The UTI can be re-used only when the previous one expires, which currently happens after 3 months, though this is subject to change.

This design is important because:

Asynchronous Processing

Card processing takes time:

  • Customer interaction (reading prompts, entering PIN)
  • Network calls to the payment processor
  • Receipt printing

Your POS doesn't need to wait with an open connection during all of this.

Resilience

  • Network interruptions don't lose transactions
  • You can check the status at any time
  • Multiple systems can query the same transaction

Simplicity

  • Fire-and-forget request model
  • Poll for results when ready
  • No complex callback infrastructure needed

Request Authentication

Every request after pairing must include the auth token in the Authorization header:

Authorization: 7653518633181484

The auth token:

  • Is issued during pairing
  • Remains valid until re-pairing
  • Should be stored securely by your POS

API Architecture

The EPOS API follows REST principles:

AspectImplementation
ProtocolHTTPS (self-signed certificate)
FormatJSON
Base URLhttps://{IP}:{PORT}/payntpos/1.0.0
AuthenticationBearer token in header

Endpoints

MethodEndpointPurpose
GET/pairAuthenticate and get token
POST/transactionStart a transaction
GET/transactionGet transaction status

Error Handling

The API uses standard HTTP status codes:

CodeMeaning
200Success
400Bad request (check parameters)
401Unauthorized (invalid or missing token)
500Terminal error

Always check both the HTTP status and the transApproved field in the response.