Payment refund webhook specifications

Set up webhooks to get updates on payouts from Payments API v3

Payment API v3 will send webhook notifications for two statuses in the lifecycle of a payment refund:

  • Executed
  • Failed
    For more information about statuses, refer to refund statuses.

refund_executed

The following table describes the different fields you will receive in the refund_executed webhook notification:

FieldTypeDescription
typestringType of the event. In this case, it would be: refund_executed
event_idstringUnique event UUID
event_versionnumberVersion of the event
refund_idstringUUID of the refund for which the webhook is being sent
payment_idstringUUID of the payment for which the refund is for
executed_atstringTime of the refund execution, in ISO8601 format
scheme_idstringThe id of the scheme used to execute the payout. Values are: faster_payments_service, sepa_credit_transfer or sepa_credit_transfer_instant.
{
  "type": "refund_executed",
  "event_version": 1,
  "event_id": "f6321c84-1797-4e66-acd4-d768c09f9edf",
  "refund_id": "9c4952c2-efcf-442f-86d6-ee207c2a1d1d",
  "payment_id": "dfb531ca-8e25-4753-bc23-0c7eeb8d4f29",
  "executed_at": "2021-12-25T15:00:00.000Z",
  "scheme_id": "faster_payments_service",
}

refund_failed

The following table describes the different fields you will receive in the refund_failed webhook notification:

FieldTypeDescription
typestringType of the event. In this case, it would be: refund_failed
event_idstringUnique event UUID
event_versionnumberVersion of the event
refund_idstringUUID of the refund for which the webhook is being sent
payment_idstringUUID of the refund for which the webhook is being sent
failed_atstringTime of the refund failure, in ISO8601 format
failure_reasonstringThe reason for the refund failure
{
  "type": "refund_failed",
  "event_version": 1,
  "event_id": "d916d958-a96a-4767-96b0-e4841780eeca",
  "refund_id": "af386a24-e5e6-4508-a4e4-82d4bc4e3677",
  "payment_id": "3bf64c4c-8d92-4fdc-b8c1-c1efbb4c5a9f",
  "failed_at": "2021-12-25T15:00:00.000Z",
  "failure_reason": "insufficient_funds"
}