Refund a card payment (full or partial)
Refunds a card (fiat) payment.
Only payments with status PAYMENT_SUCCESS, CHECKOUT_SUCCESS (or PARTIALLY_REFUNDED, for a further partial) and source FIAT can be refunded.
Crypto payments cannot be refunded from API.
Full vs partial refund
- Omit
amountInCents→ the full remaining amount is refunded and the payment becomesREFUNDED. - Provide
amountInCents→ only that amount (in cents, in the payment’s currency) is refunded. You may call the endpoint multiple times as long as the cumulative refunded amount does not exceed the captured total (grossAmountCents). While a residual amount remains, the payment isPARTIALLY_REFUNDED; once the cumulative refunds reach the captured total it flips toREFUNDED.
The cumulative amount refunded so far is exposed as refundedAmountCents on the payment, and each call
returns the remainingRefundableCents still available.
Webhooks: a partial refund emits PARTIAL_REFUNDED; the refund that completes the full amount (or a plain full refund) emits PAYMENT_REFUNDED.
Sandbox mode: For sandbox product payments, the refund skips the payment provider call and directly updates the payment status.
Authorizations
API key authentication
Headers
Optional. A unique string you generate per refund. Retrying a request with the same key replays the
original result (response header Idempotency-Replayed: true) instead of issuing the refund again — making
a timed-out request safe to retry. Reusing a key with a different request body returns 409.
Especially important for partial refunds, which are otherwise legitimately repeatable.
255Path Parameters
Body
Reason for the refund
500"Customer requested refund"
Optional. Amount to refund in cents, in the payment's currency.
Omit to refund the full remaining amount. When provided, must not exceed the remaining
refundable amount (grossAmountCents - refundedAmountCents).
x >= 1500
Optional alternative to the Idempotency-Key header (the header takes precedence). Same
behavior — retrying with the same value replays the original result instead of re-refunding.
255"refund-pay_abc123-01HZ..."

