A reversal cancels a completed payment, same business day, before clearing. This article also owns the decision every integrator faces: reversal or refund?
Reversal or refund — the decision
| Reversal | Refund | |
|---|---|---|
| When | Same day, before clearing | Any time, including after clearing |
| What it is | Cancels the original transaction | A new, opposite transaction |
| References the original? | Yes — by POITransactionID | No (new transaction) |
| Typical trigger | Cashier error, cancelled sale | Product return |
If the sale is from today and the cashier wants to undo it, reverse it. If it is older, or the reversal is refused, refund it. Refunding a transaction covers the second path; do not restate this decision there — link here.
The request
POST /reversal:
"ReversalRequest": {
"Currency": "EUR",
"OriginalPOITransaction": {"POITransactionID": {"TimeStamp": "2025-11-28T14:12:59.6+01:00", "TransactionID": "9990"}, "SaleID": "POS_01"},
"ReversalReason": "MerchantCancel",
"SaleData": {"OperatorID": "Cashier_01", "SaleTransactionID": {"TimeStamp": "...", "TransactionID": "9991"}}
}The critical field is OriginalPOITransaction.POITransactionID — the terminal's identifier from the original PaymentResponse, which your POS stored at payment time. Referencing your own SaleTransactionID fails with "transaction not found" (ErrorCondition: NotAllowed with an explanatory AdditionalResponse).
ReversalReason values include MerchantCancel (cashier-initiated) and Unable2Compl (technical follow-up, e.g. after a too-late abort).
The response
Success returns ReversalResponse with ReversedAmount, the original transaction reference, and receipts to print. Failure follows the standard model — check ErrorCondition and AdditionalResponse.
When the reversal is refused — the credit fallback
The acquirer can refuse a reversal (typically when the original has already moved to clearing). The required behaviour is the credit fallback: on a refused reversal, your POS initiates a refund for the same amount instead. This fallback is a certification requirement — a POS that dead-ends on a refused reversal fails the campaign. Surface it to the cashier as one action ("cancel the sale") with the fallback automatic underneath.
Related
- Refunding a transaction — the fallback path and standalone returns.
- How the message model works — Rule 3: why the POITransactionID is the reference.