Refund Flow
How card refunds (full and partial) work end-to-end.
A refund reverses a previously successful card payment, returning funds to the customer's card. Both full and partial refunds are supported.
#1. Prerequisites
You need the transactionId from the original payment in SUCCEED status. Refunds cannot be initiated against FAILED, PROCESSING, or already-refunded transactions.
#2. Initiate the Refund
Send POST /api/v1/refunds/card with the transactionId and optional amount. If amount is omitted, the full transaction amount is refunded.
Exirom returns a new refundTransactionId and status PROCESSING immediately.
#Full vs Partial Refund
| Type | How |
|---|---|
| Full | Omit the amount field |
| Partial | Include amount less than the original transaction amount |
Multiple partial refunds can be issued against a single transaction up to the original amount.
#3. Final Status via Webhook
When the card network processes the reversal, Exirom sends a webhook to your callbackUrl:
- SUCCEED — refund was accepted and funds will be returned to the cardholder
- FAILED — refund was declined (e.g., card account closed, refund window expired)
Cardholders typically see the credit within 3–10 business days depending on their bank.
#FX Refunds
If the original payment was in a foreign currency, see FX Refund Flow — currency conversion applies in both directions, and the refunded amount may differ due to exchange rate fluctuations.
#Related
- API Reference: POST /api/v1/refunds/card — Full endpoint spec, Try It
- API Reference: GET /api/v1/refunds/card/status/{id} — Check refund status
- FX Refund Flow — Handling currency conversion on refunds
- Transaction Status Guide — Status values and lifecycle