Listening for Payin Webhooks

A payin webhook delivers real-time notifications to your system about key payin events, such as initiation, completion, or failure, ensuring automated updates without manual polling.

Webhook Types

Once you have a vIBAN, and it recieves a deposit, the following webhooks will be sent out:

EventDescription
bvnk:payment:payin:status-changeThe pay in 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 pay-in.
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 pay-in.
data.originator.nameThe name of the originator, which could be a company or an individual.
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.walletIdThe wallet ID of the beneficiary.
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:payin: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":{
         "name":"Some Business",
         "bankAccount":{
            "bankCode":"SAPYGB2L",  //optional
            "accountNumber":"GB93SAPY60838220490275",
            "accountNumberFormat":"IBAN"
         }
      },
      "beneficiary":{
         "walletId":"a:24042240678622:beEODVM:1",
         "entity":{
            "type":"COMPANY",
            "name":"Some Business",  //for company
            "firstName":"John", //for individual
            "lastName":"Doe", //for individual
         },
         "bankAccount":{
            "bankCode":"LHVBEE20",
            "accountNumber":"EE307777000028295451",
            "accountNumberFormat":"IBAN"
         }
      }
   }
}