refunded status and carries a refundReason. This applies to every transfer: those you create with quotes and transfers, and those Rain creates when funds arrive on an onramp or offramp payment route. Use this page to understand what each reason means.
Where you see the refund reason
Rain returnsrefundReason on the transfer object, with the same values for every transfer type. You can read it in two places:
- The Transactions API. Filter by
type=transferto see transfers. - The
transactionTransferwebhooks (created,updated, andcompleted). The reason is intransfer.refundReason, and requires webhook version1.1.0or later. See the transfer object reference for the full payload.
refundReason is omitted on transfers that haven’t been refunded. Rain can set it shortly before the status changes to refunded, while the return is in progress.
Refund reasons
Handle refunds in your integration
1
Listen for the webhook
Subscribe to the
transactionTransfer webhooks. A refunded transfer arrives with status set to refunded.2
Read the reason
Read
transfer.refundReason and branch on it. Handle other as a catch-all.3
Tell your user
Show your user a clear message and, where it makes sense, prompt them to create a new transfer.
What’s next
Transfers
Learn how transfers move funds and which statuses they pass through.
Money Movement Limits
Check the limits and settlement times for each rail.