Skip to main content

Process a Sale

Use a sale transaction when you want to charge a customer immediately. Funds are captured and will settle at the end of the day.


Prerequisites

  • Understand EPOS communication
  • A paired terminal with a valid auth token
  • Terminal IP address and serial number

Steps

  1. Send a POST request to the transaction endpoint:
curl --location 'https://{IP}:{PORT}/payntpos/1.0.0/transaction?tid={TID}&disablePrinting=false' \
--header 'Content-Type: application/json' \
--header 'Authorization: {AUTH_TOKEN}' \
--data '{
"transType": "SALE",
"reference": "your-reference",
"amountTrans": 1000
}'
  1. The terminal displays the payment screen.
  2. The customer taps or inserts their card.
  3. The response returns a UTI:
{
"transType": "SALE",
"amountTrans": 1000,
"uti": "6f311f3a-a72f-3864-98db-bfef44223c1f"
}

The UTI is an alphanumeric string consisting of 1-64 characters. Special characters  are not allowed. For example, 000000000001, 000000000002, 000000000003. 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.

  1. Retrieve the transaction status using the UTI:
curl --location 'https://{IP}:{PORT}/payntpos/1.0.0/transaction?tid={TID}&uti={UTI}' \
--header 'Authorization: {AUTH_TOKEN}'

Request Parameters

FieldTypeRequiredDescription
transTypestringYesSet to SALE
amountTransintegerYesAmount in cents (e.g., 1000 = €10.00)
referencestringNoYour reference ID for tracking. The reference ID is an alphanumeric string consisting of 1-36 characters, Special characters are not allowed. Usually shown in 5 groups separated by hyphens, for example, gr3d4fae-9dec-11d0-a763-00a0c91e6bf1.

Example Response (Transaction Status)

{
"transApproved": true,
"transactionType": "SALE",
"authCode": "308373",
"transAmount": 1000,
"primaryAccountNumber": "47**********0010",
"transactionDate": "Mon Apr 28 09:27:25 GMT+03:00 2025",
"uti": "6f311f3a-a72f-3864-98db-bfef44223c1f"
}

Tips

  • Use the reference field to link transactions to your order system.
  • Set disablePrinting=true in the query string to skip receipt printing.
  • Always check transApproved in the status response to confirm the payment succeeded.