5. Refunding a transaction

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.