Refunds
Refund all or part of a payment, track the refund status, and reconcile with refund.succeeded webhooks.
A refund returns funds to the customer's original payment method. You can refund the full amount or a partial amount, and accumulate multiple partial refunds up to the original amount.
Sensitive operation
Refunds require the private key in the Authorization header. Never expose it client-side.
Refund a payment
https://api.wajub.com/refundspaymentstringrequiredamountnumberoptionalcurrencystringoptionalreasonenumrequiredreferencestringoptionalmetadataobjectoptionalhttps://api.wajub.com/refundscurl https://api.wajub.com/refunds \
-H "Authorization: sk_test.xxxx" \
-H "Content-Type: application/json" \
-d '{ "payment": "trx_01JXXXXXXXXXXXXX", "amount": 2000, "reason": "product_not_received" }'{
"status": "Created",
"code": 201,
"refund": {
"id": "rfd_01JXXXXXXXXXXXXX",
"transaction": "trx_01JXXXXXXXXXXXXX",
"amount": 2000,
"currency": "XAF",
"status": "pending",
"reason": "product_not_received",
"sandbox": true,
"created_at": "2026-01-15T10:30:00Z"
}
}The response also includes reference, metadata, ledger_balance_currency/ledger_balance_before/ledger_balance_after (once settled), a tax breakdown (live only, if applicable), a timeline of status-change events, and failure_reason/failure_message if the refund fails.
Refund lifecycle
A refund is asynchronous: it starts as pending, moves to processing, then resolves.
On Mobile Money, credit on the operator side can take a few minutes to a few hours.
Refund
Reconcile via webhook
Subscribe to refund.processing, refund.succeeded, refund_failed, and refund.cancelled
to update your system as the refund progresses.
refund.succeededevent{
"id": "evt_4Rf8Lm2",
"type": "refund.succeeded",
"created_at": "2026-05-24T11:02:41.000Z",
"data": {
"id": "rfd_01JXXXXXXXXXXXXX",
"payment": "trx_01JXXXXXXXXXXXXX",
"amount": 2000,
"currency": "XAF",
"status": "succeeded"
}
}Partial vs full refund
After a partial refund, the underlying payment's status becomes partially_refunded.
When accumulated refunds reach the original amount, its status becomes refunded.