Entities
Refund
A refund returns some or all of a captured payment to the buyer. Refunds
are created against a payment intent and are processed asynchronously: a refund
starts as
pending, moves to processing, and ends in a terminal succeeded
or failed state.
Statuses
Creating refunds
POST /payments/refund requires the
paymentIntentId to refund and the amount in the smallest unit of the
payment intent’s currency. Refunds are always issued in the currency of the
original payment — you cannot pass a different one. You can refund all or
part of a payment by setting amount to the desired value. You can create
multiple partial refunds against the same payment; the total across all
refunds can never exceed the captured amount.
Refund creation supports idempotent requests
via the optional X-Idempotency-Key header.
Tracking refund state
Subscribe to thepayments.refund.created and
payments.refund.updated webhooks
to be notified when a refund is created and on every status change, then read
the refund back with
GET /payments/refund/{refundId}.
If you cannot receive webhooks, poll
GET /payments/refund/{refundId} until
status is terminal.The refund object. Its status tracks the refund from creation through completion.
Unique identifier for the refund.
Current refund processing status.
Available options:
pending, processing, succeeded, failed Refund amount in the smallest unit of currency. Refunds are always in the currency of the payment intent being refunded.
ISO currency code for the refund. Supported currencies are usd and eur.
Available options:
usd, eur The payment intent being refunded.
ISO-8601 timestamp the refund was created at.
ISO-8601 timestamp the refund last changed status.