Refunds
Give back all or part of a collection.
Create a refund
POST /v1/refunds
| Field | Required | Description |
|---|---|---|
payment_id |
yes | The original collection: its identifier or reference |
amount_minor |
— | String, in minor units. Absent = the remaining balance |
reason |
— | customer_request, duplicate, fraudulent or other |
description |
— | Free text, visible in the dashboard |
A refund is a full operation in its own right: its own id, its own status, its own webhook event
(refund.success / refund.failed).
Rules
- Only a successful collection can be refunded.
- Refunds cannot add up to more than the amount collected — the API answers
422 invalid_requestbeyond that. - Collection fees are not given back: they stay with you.
- A partial refund leaves the original collection readable, with its full history.
- Funds are taken from your available balance at the time of the call, like a payout.
One idempotency key per refund. Never the original payment's identifier: a collection can be refunded in several parts, and a key carrying the parent's identifier would make the second partial refund look like a replay of the first.
Read and list
GET /v1/refunds/{id}
GET /v1/refunds