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 statuses

Refund events


Events

Payload

The webhook payload consists of:

  • data - represents all refund detail fields returned in the get payin endpoint
  • event_type - refund events denoted by the format of refund.{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.

FieldDescription
refund_idThe unique refund identifier.
payin_idThe unique payin identifier to the associated payin that was refunded.
merchant_idThe unique merchant identifier.
idempotency_keyA unique identifier provided by the platform.
amountThe amount of the refund to attempt to process, in minor units.
currency_codeThree-letter ISO currency code, in uppercase. Currently, only USD is supported.
reasonThe reason a refund was issued.
statusThe status of the refund, will be CREATED.
metadataValid JSON key-value object specified by the platform to store additional information on the refund.
amount_splitsThe amount splits of the payin, applicable if the payin config defined the amount splits.
created_atDate 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.

FieldDescription
refund_idThe unique refund identifier.
statusThe status of the payin, will be PROCESSING.
auth_codeThe authorization code if the refund was approved.
merchant_feesThe refund fee billed to the merchant.
updated_atDate 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.

FieldDescription
refund_idThe unique refund identifier.
statusThe status of the payin, will be SUCCEEDED.
updated_atDate and time refund was updated at in UTC RFC 3339 format.

Failed


Event: refund.failed

Triggered when a refund unsuccessfully attempted to process.

FieldDescription
refund_idThe unique refund identifier.
statusThe status of the payin, will be FAILED.
refusal_codeThe code explaining the reason for the refusal if the payin or refund failed to process.
refusal_descThe 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_atDate 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.

FieldDescription
refund_idThe unique refund identifier.
statusThe status of the payin, will be CANCELED.
updated_atDate 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.

FieldDescription
refund_idThe unique refund identifier.
statusThe status of the payin, will be IN_REVIEW.
updated_atDate and time refund was updated at in UTC RFC 3339 format.