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
integer
required
Amount to refund in major units (e.g.
25 = 25.00). Minimum 1. Must not exceed refunds_summary.refundable_amount.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
Every payment intent carries arefunds_summary object:
Amount
Total already refunded.
Amount
Total currently in-flight refunds (created but not yet completed).
Amount
The amount you may safely refund right now. This is authoritative — it already accounts for in-flight refunds. A refund up to this value is guaranteed not to be rejected on balance grounds.
boolean
Whether at least one refund is currently in the
pending or processing state.refundable_amount — not your own arithmetic — before submitting a refund.
Refund resource
string
Refund identifier.
Amount
{ value, formatted, short, currency } — the refunded amount.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.