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
- 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
}'
- The terminal displays the payment screen.
- The customer taps or inserts their card.
- 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.
- 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
| Field | Type | Required | Description |
|---|---|---|---|
| transType | string | Yes | Set to SALE |
| amountTrans | integer | Yes | Amount in cents (e.g., 1000 = €10.00) |
| reference | string | No | Your 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
referencefield to link transactions to your order system. - Set
disablePrinting=truein the query string to skip receipt printing. - Always check
transApprovedin the status response to confirm the payment succeeded.
Related
- How to Process a Refund – Return funds after a sale
- How to Void a Transaction – Cancel before settlement