Refund

Process full or partial refunds on completed payments. Requires the refunds:write scope.

POST/api/v1/{system}/refund🔒 refunds:write

Refund a previous payment the server executes against the acquirer (QR/wallet). Subject to a 60-second cooldown and amount validation (cannot exceed remaining balance). The cooldown applies to THIS server-driven endpoint only — it does NOT apply to card/device refunds recorded via saveTransaction, nor to LAN/Cloud refunds (which are device-executed); those are bound by the cumulative cap, not the cooldown.

Auth: Bearer JWT

Request Body

FieldTypeRequiredDescription
referenceIdstringYesOriginal payment reference
refundAmountstringYesDecimal string, 2 places, range 0.01–999999.99 (e.g. "5.00"); must be <= remaining balance.
refundReasonstringYesReason for the refund
branchIdlongYesBranch user ID
configIdlongYesTerminal config ID
⚠️ Live testing disabled for this endpoint — it modifies data. Use curl or the SDK against your sandbox.