Refunds
Money → Refunds lists every refund, and a refund is created from the transaction it reverses rather than from this page.
Refunding a payment
Section titled “Refunding a payment”Open the transaction, choose Refund, and enter an amount. Leave the amount as it is to refund in full, or lower it for a partial refund.
You can refund in several parts. The total of all refunds against one charge cannot
exceed the original — the attempt is refused with refund_exceeds_original, and
the figure to check is the original amount, not the merchant amount.
A refund has its own status and takes its own time. pending means it is with the
partner; succeeded means the customer has it. The customer does not see it the
moment you click.
What it does to your money
Section titled “What it does to your money”A refund takes the money back out of your balance. If your available balance is not sufficient, the refund can be refused — the funds have to come from somewhere, and a refund is not a reversal of the bookkeeping, it is a new movement in the other direction.
The fee on the original collection is not automatically returned. Check your pricing agreement for what is refundable. Budget for this: a full refund usually costs you slightly more than the payment earned you.
What cannot be refunded
Section titled “What cannot be refunded”- A transaction that never succeeded. There is nothing to send back. If a customer
was charged on a transaction showing
failed, that is a real discrepancy — raise it with us rather than refunding something else. - More than the original amount, in total across all refunds.
- A transaction under dispute. The dispute process decides that money; see Disputes. Refunding a disputed payment mid-process can leave you out twice.
If a refund fails
Section titled “If a refund fails”The usual causes are a closed or changed customer account — a wallet that no longer exists, a card that has been reissued. The money stays with you and the customer still does not have it, which means somebody has to contact them for current details.
The transaction’s own page shows the reason. If it says nothing useful, send us the refund’s reference.
Doing this from the API
Section titled “Doing this from the API”POST /v1/refunds against the charge, with a refund.create scope. It takes an
Idempotency-Key like any other money movement — and for the same reason. See
Idempotency.
Refunds also emit webhooks (refund.succeeded, refund.failed), so your own
system can learn the outcome rather than polling for it.

