Skip to content

Refunds

A refund returns funds against a payment. Each refund is tied to one payment; an invoice with multiple payments may have multiple refunds.

Object

{
"id": "ref_…",
"object": "refund",
"payment_id": "pay_…",
"invoice_id": "inv_…",
"credit_note_id": "cn_…",
"amount": "25.00",
"currency": "USD",
"destination": "original_method",
"status": "succeeded",
"reason": "order_change",
"provider_id": "re_…",
"failure_reason": null,
"metadata": {},
"created_at": "2026-05-07T10:00:00Z",
"completed_at": "2026-05-07T10:00:42Z"
}

Status

pending, succeeded, failed, canceled.

Endpoints

MethodPathWhat
POST/v1/payments/{id}/refundsCreate.
GET/v1/refunds/{id}Retrieve.
GET/v1/refundsList + filter.

Destination

destinationEffect
original_method (default)Returns funds to the payment method that captured.
walletCredits the customer’s wallet in the payment currency.

What happens automatically

A refund creates an accompanying credit note, posts the reversing ledger entries, and adjusts any active recognition schedule for the originating line item. Affiliate commissions attributable to the originating payment are reversed if still within the hold period.

Idempotency

Use a fresh Idempotency-Key per refund attempt. Reusing the original payment’s key has no effect (different route, different intent).

Webhook events

refund.created, refund.succeeded, refund.failed.