Listening for Payout Webhooks

This guide will allow you to enable payout webhook. By doing so you can sends real-time notifications to your system about key payout events, such as processing, completion, or failure, enabling automated updates without manual checks.

Webhook Types

In the payout workflow you should expect to receive the following webhooks:

EventDescription
bvnk:payment:payout:status-changeThe payout has transitioned to a new state.

Data Types

FieldDescription
eventThe type of event triggering the webhook.
eventIdA unique identifier for the event.
timestampThe timestamp of when the event occurred.
data.statusThe status of the payout.
data.customerReferenceA customer-specific reference for the transaction (optional).
data.transactionReferenceA unique reference for the transaction.
data.paymentReferenceA reference code for the payment.
data.valueDateThe date the transaction was valued.
data.amount.valueThe value of the transaction amount.
data.amount.currencyCodeThe currency code of the transaction amount.
data.fee.valueThe value of the transaction fee.
data.fee.currencyCodeThe currency code of the transaction fee.
data.paymentMethodThe payment method used for the payout.
data.originator.walletIdThe wallet ID of the originator.
data.originator.entity.typeThe type of originator entity.
data.originator.entity.nameThe name of the originator (for companies).
data.originator.entity.firstNameThe first name of the originator (for individuals).
data.originator.entity.lastNameThe last name of the originator (for individuals).
data.originator.bankAccount.bankCodeThe bank code of the originator (optional).
data.originator.bankAccount.accountNumberThe account number of the originator.
data.originator.bankAccount.accountNumberFormatThe format of the account number of the originator.
data.beneficiary.entity.typeThe type of beneficiary entity.
data.beneficiary.entity.nameThe name of the beneficiary (for companies).
data.beneficiary.entity.firstNameThe first name of the beneficiary (for individuals).
data.beneficiary.entity.lastNameThe last name of the beneficiary (for individuals).
data.beneficiary.bankAccount.bankCodeThe bank code of the beneficiary (optional).
data.beneficiary.bankAccount.accountNumberThe account number of the beneficiary.
data.beneficiary.bankAccount.accountNumberFormatThe format of the account number of the beneficiary.

Webhook Examples

For example:

{
   "event":"bvnk:payment:payout:status-change",
   "eventId":"4d9f2f80-7f4d-11ee-8c99-0242ac120002",
   "timestamp":"2024-10-28 09:25:21.716405",
   "data":{
      "status":"COMPLETED",
      "customerReference":"fd808a48-7313-4773-8383-fffb62fdc2d7",  //optional
      "transactionReference":"fd808a48-7313-4773-8383-fffb62fdc2d7",
      "paymentReference":"GBPCLEAREXTERNALPA",
      "valueDate":"2024-09-12",
      "amount":{
         "value":39,
         "currencyCode":"EUR"
      },
      "fee":{
         "value":3,
         "currencyCode":"EUR"
      },
      "paymentMethod":"SEPA_CT",
      "originator":{
         "walletId":"a:24011842467367:OqdNqVa:1",
         "entity":{
            "type":"COMPANY",
            "name":"Some Business",  //for company
            "firstName":"John", //for individual
            "lastName":"Doe", //for individual
         },
         "bankAccount":{
            "bankCode":"SAPYGB2L",  //optional
            "accountNumber":"GB93SAPY60838220490275",
            "accountNumberFormat":"IBAN"
         }
      },
      "beneficiary":{
         "entity":{
            "type":"COMPANY",
            "name":"Some Business",  //for company
            "firstName":"John", //for individual
            "lastName":"Doe", //for individual
         },
         "bankAccount":{
            "bankCode":"SAPYGB2L",  //optional
            "accountNumber":"GB93SAPY60838220562249",
            "accountNumberFormat":"IBAN"
         }
      }
   }
}