completed payment intent. Partial refunds are allowed; multiple refunds may be issued against the same intent as long as the refundable amount permits it.
Create a refund
number
required
Amount to refund in major units (e.g.
25 = 25.00). Minimum 1. Must not exceed the refundable_amount returned by refund availability. Decimals are accepted and rounded to the scale the currency supports.string
required
Reason for the refund. Must be one of the following values:
string
Free-text explanation. Maximum 500 characters.
object
Up to 10 key/value pairs stored on the refund.
boolean
When
true, Orchestrate may process the refund as an outbound payout to the original payer if the payment gateway does not support a direct reversal. Requires the corresponding project setting to be enabled. When this path is taken, the execution_method on the refund will be payout and the payout block will be populated.422 with the service’s error message — for example, if the amount exceeds what is refundable or the payment is not in a refundable state.
Refundable amount
Call refund availability before submitting a refund:refundable_amount — authoritative, already reserving in-flight refunds — along with whether a refund is possible at all and whether the remaining balance allows a partial one. Use it rather than your own arithmetic.
Refund resource
string
Refund identifier.
Amount
{ value, formatted, short, currency } — the refunded amount.Amount | null
Amount sent to the payment gateway. It differs from
amount when the payment was
processed in another currency.ExchangeRate | null
Effective conversion between
amount and processed_amount. Contains value,
from_currency, to_currency, and a display-ready expression. null when both
amounts use the same currency.string
full when the refund covers the full intent amount; partial otherwise.string
How the refund was processed:
gateway (reversed through the original payment gateway) or payout (sent as an outbound payout to the original payer).string
One of
pending, processing, completed, failed.object
{ value, label } — the reason enum value and its human-readable label.string
The note supplied at creation, if any.
string | null
Machine-readable failure code when
status is failed.string | null
Human-readable failure message when
status is failed.object
The metadata supplied at creation.
object | null
Populated when
execution_method is payout. Contains:string | null
ISO 8601 timestamp when the refund completed.
string | null
ISO 8601 timestamp when the refund failed.
string
ISO 8601 timestamp when the refund was created.