HomeGuidesRecipesAPI ReferenceChangelog
Treasury Portal Login
Guides

Webhooks

Receive real-time notifications for virtual account status changes, receives, and sends.

Overview

Virtual account operations are asynchronous. Webhook events are sent to notify you of changes to account status, received funds, and sent funds. Configure your webhook endpoint to receive these notifications and keep your systems in sync.

Account Status Webhooks (VIBAN)

Since virtual account creation is asynchronous, webhook events are sent whenever an account's status changes. These events use the VIBAN prefix.

EventDescription
VIBAN.PENDINGAccount has been requested and is awaiting provisioning
VIBAN.ACTIVEAccount has been provisioned and is ready to receive and send payments
VIBAN.CLOSEDAccount has been closed
VIBAN.FROZENAccount has been frozen

These events are sent for both primary wallet virtual accounts and custom wallet virtual accounts.

Example Webhook Event

{
  "accountId": "fa19be59-571d-4e9d-ac35-ddee805a5b22",
  "accountName": "Primary Account Number",
  "accountNumber": "1234567890",
  "bankAddress": "",
  "bankName": "Erebor Bank",
  "currency": "USD",
  "event": "VIBAN.PENDING",
  "executedAt": 1770368203203,
  "id": "fa19be59-571d-4e9d-ac35-ddee805a5b22",
  "routingNumber": "125108405",
  "status": "PENDING",
  "subwalletId": "54640e36-466a-5bb0-a47b-5044b28b416e",
  "swiftCode": "PCBBUS66XXX",
  "userId": "d7fbe40a-6d50-4607-8648-9827a54947c3"
}
{
  "accountId": "fa19be59-571d-4e9d-ac35-ddee805a5b22",
  "accountName": "Primary Account Number",
  "accountNumber": "1234567890",
  "bankAddress": "",
  "bankName": "Erebor Bank",
  "currency": "USD",
  "event": "VIBAN.ACTIVE",
  "executedAt": 1770368203203,
  "id": "fa19be59-571d-4e9d-ac35-ddee805a5b22",
  "routingNumber": "125108405",
  "status": "PENDING",
  "subwalletId": "54640e36-466a-5bb0-a47b-5044b28b416e",
  "swiftCode": "PCBBUS66XXX",
  "userId": "d7fbe40a-6d50-4607-8648-9827a54947c3"
}
FieldDescription
accountIdVirtual account unique identifier
accountNameAccount holder name
accountNumberBank account number
bankNameBank name
currencyAccount currency code
eventThe webhook event type (e.g., VIBAN.PENDING)
executedAtUnix timestamp (ms) when the event occurred
idEvent identifier
routingNumberBank routing number (if applicable)
statusCurrent account status
subwalletIdAssociated custom wallet ID (if applicable)
swiftCodeSWIFT code (if applicable)
userIdPartner identifier who owns the account

Receive Webhooks

Webhook events are sent when funds are received into your virtual accounts. The event type depends on the type of virtual account:

  • Primary virtual accounts: Received funds trigger top-up settlement webhook events.
  • Custom wallet virtual accounts: Received funds trigger collection webhook events.

Send Webhooks

When you send funds from a virtual account using the Payments API, payment webhook events are sent to notify you of the payment status.

Payment Webhook Events

For detailed information on receive and send webhook event types and statuses, refer to the Webhooks and Events pages.