Skip to main content
A refund returns money to the payer against a payment that has already succeeded. This is different from a payout, which sends money to a recipient rather than reversing an existing payment.

Request

Send a POST request to /refunds. Only payment_id is required — omit amount for a full refund.

Response

A successful call returns a 200 with a refund object. The fields that matter right now:

What to do next

A refund does not settle synchronously. Poll GET /refunds/{refund_id} until the status settles.

Status reference

Common errors

Refunding a payment that is not in succeeded status.
Refunding more than the captured amount.
Assuming pending means the refund failed — it means it is still in progress.

Next steps

Payouts

Send money to a recipient instead of reversing a payment.

Quickstart

Create and confirm your first payment.

Mandates and recurring

Set up recurring charges against a stored mandate.

Wallet payments

M-Pesa, Airtel, and MTN MoMo payments.