Refunds
POST /refunds refunds a succeeded payment. It requires an Idempotency-Key.
{ "payment_id": "pay_0192f3a1", "amount": 25000, "reason": "Customer request" }amountis in minor units. Omit it for a full refund.- Cards are refunded through the provider.
- Other families are refunded as a payout to the payer’s account, so
destinationis required (same object as in Payouts). The account must belong to the payer of the original payment. - Our fee is not returned by default.
Conditions
Section titled “Conditions”- The amount is not more than the paid amount minus what was already refunded (
refunded_amounton the payment). availablebalance covers the refund, otherwise422 insufficient_balance.- The merchant has no
debt.
Statuses
Section titled “Statuses”created, processing, succeeded, failed, canceled, returned.
- For cards,
createdreserves the amount,succeededsends the money to the payer, andfailedorcanceledrelease the reserve. - For other families the refund status follows the payout (
payout_idis set). If the payout isreturned, the refund isreturnedtoo and the money comes back to your balance.
Events: refund.created, refund.processing, refund.succeeded, refund.failed, refund.returned. GET /refunds can be filtered by payment_id.