Canadian Virtual Accounts

CAD Virtual Account Funding

For CAD virtual accounts, the customer makes one setup call and then just listens for the webhook.

Step-by-step process

StepWhoCall or actionNotes
1VoPayVirtual Account is created and assigned to a Merchant accountThere is no API for this step. VoPay will create a virtual account for a customer
2VoPay/CustomerVirtual account Information is shared with the customerVoPay CSM and/or Implementation team shares the account and transit numbers with the customer. Through email
3CustomerRegister the webhookPOST /api/v2/account/webhook-url with Type=virtualtransaction. Test it with /api/v2/account/webhook-url/test?Type=virtualtransaction
4PayerPayer (Customer itself or a 3rd party) sends CAD payment to the virtual accountEFT or wire to the virtual account
5VoPayFunds land in Virtual AccountVoPay confirms the transaction
6VoPayVoPay applies funding to a VoPay account and sends webhook notificationVoPay updates account transaction history and sends thevirtualtransactionwebhook notification.
7CustomerReceive the notificationvirtualtransaction webhook. Match on ClientAccountID, and confirm the amount
8CustomerLook up the detailsGET /api/v2/account/transactions (filter by client account), GET /api/v2/account/client-accounts/balance. Use these for reconciliation or to see the running balance
9CustomerUse the fundsAny payout from the client account, or a transfer between client accounts. This is optional. The funds are already in the client account

virtualtransaction Webhook notification

When a credit is approved, the customer receives a virtualtransaction webhook, and a ledger transaction appears on the client account.

Webhook fields

FieldMeaning
IDThe ledger transaction ID. Pass it to the transaction lookup endpoints
ClientAccountIDThe client account that received the funds (the one the virtual account is mapped to)
TransactionTypefunding or wire for a credit, withdraw for a debit. VoPay ops picks it when they approve
AmountCAD amount as BMO reported it
TransactionDateTransaction date from BMO
AvailableBalanceAvailable CAD balance of the whole account (FetchAvailableBalance), not the client account's balance

Sample payload

View sample payload

{
  "Success": true,
  "EventID": 12345,
  "Event": "virtualtransaction",
  "Status": "successful",
  "FailureReason": "",
  "ID": 98765,
  "UpdatedAt": "2026-09-28 14:30:00",
  "ValidationKey": "...",
  "Environment": "Production",
  "TransactionDate": "2026-09-28",
  "Amount": "2500.00",
  "AccountID": "<API account ID>",
  "ClientAccountID": "<client account ID>",
  "TransactionType": "funding",
  "AvailableBalance": "..."
}

Virtual Account Info and Transaction History in VoPay portals

VoPay Accounts Portal ScreenDetails
VoPay Dashboard & Account Summary screenAccount Balances goes up
Transaction historyVirtual Account Funding or Virtual Account Wire transaction shows up under Account Transaction History. You can filter by those types.
Contact/Client Transaction HistoryThe credit appears in that client account's transactions and balance. You can filter by virtual account transaction types.

Did this page help you?