Refund webhooks
Subscribe to refund webhooks for updates on status changes
Webhooks can be configured to receive updates on every status change that occurs through the life cycle of a refund.

Refund events
Events
Payload
The webhook payload consists of:
data
- represents all refund detail fields returned in the get payin endpointevent_type
- refund events denoted by the format ofrefund.{refund_status}
{
"data": {
"refund_id": "rfd_2sPMefai6yWsyp4MSGUkAo32pp7",
// ...
"status": "PROCESSING",
// ...
},
"event_type": "refund.processing"
}
Created
Event: refund.created
Triggered when a refund is created and waiting approval.
Field | Description |
---|---|
refund_id | The unique refund identifier. |
payin_id | The unique payin identifier to the associated payin that was refunded. |
merchant_id | The unique merchant identifier. |
idempotency_key | A unique identifier provided by the platform. |
amount | The amount of the refund to attempt to process, in minor units. |
currency_code | Three-letter ISO currency code, in uppercase. Currently, only USD is supported. |
reason | The reason a refund was issued. |
status | The status of the refund, will be CREATED . |
metadata | Valid JSON key-value object specified by the platform to store additional information on the refund. |
amount_splits | The amount splits of the payin, applicable if the payin config defined the amount splits. |
created_at | Date and time refund was created at in UTC RFC 3339 format. |
Processing
Event: refund.processing
Triggered when a refund is approved and is currently processing.
Field | Description |
---|---|
refund_id | The unique refund identifier. |
status | The status of the payin, will be PROCESSING . |
auth_code | The authorization code if the refund was approved. |
merchant_fees | The refund fee billed to the merchant. |
updated_at | Date and time refund was updated at in UTC RFC 3339 format. |
Succeeded
Event: refund.succeeded
Triggered when a refund has completed processing and is available for deposit.
Field | Description |
---|---|
refund_id | The unique refund identifier. |
status | The status of the payin, will be SUCCEEDED . |
updated_at | Date and time refund was updated at in UTC RFC 3339 format. |
Failed
Event: refund.failed
Triggered when a refund unsuccessfully attempted to process.
Field | Description |
---|---|
refund_id | The unique refund identifier. |
status | The status of the payin, will be FAILED . |
refusal_code | The code explaining the reason for the refusal if the payin or refund failed to process. |
refusal_desc | The description explaining the reason for the refusal if the payin or refund failed to process. This will be a human-readable value that may be presented to the end user. |
updated_at | Date and time refund was updated at in UTC RFC 3339 format. |
Canceled
Event: refund.canceled
Triggered when a refund is canceled before the refund completes processing.
Field | Description |
---|---|
refund_id | The unique refund identifier. |
status | The status of the payin, will be CANCELED . |
updated_at | Date and time refund was updated at in UTC RFC 3339 format. |
In review
Event: refund.in_review
Triggered when a refund is flagged for risk review and is not available for deposit.
Field | Description |
---|---|
refund_id | The unique refund identifier. |
status | The status of the payin, will be IN_REVIEW . |
updated_at | Date and time refund was updated at in UTC RFC 3339 format. |
Updated 22 days ago