A refund returns funds to the cardholder as a new transaction — it does not reference any prior transaction. Use it for product returns and as the fallback when a cancellation is refused.
The request
A refund is a process-transaction call with the refund type:
POST /process-transaction/PAX:{serialNumber}?waitTime=60{
"transactionType": "REFUND",
"amount": 1199,
"currency": "EUR",
"ecrTransactionId": "REFUND-2026-07-06-0003",
"cashierId": "Cashier01"
}No terminalTransactionId is involved — that is precisely the difference from a cancellation. The cardholder presents the card being credited; the response follows the standard model (status, its own terminalTransactionId — store it, a refund can itself be cancelled same-day).
Rules that matter
- Partial refunds are your arithmetic: the platform does not link the refund to a sale, so preventing over-refunding is ECR-side logic.
- A refund can be reversed: cancel it via its own
terminalTransactionId, same day — the correction path for a wrong-amount refund.
Related
- Reversing a transaction (Cloud API) — cancellation vs refund, and the fallback that lands here.