Skip to main content

What are Virtual Bank Accounts?

Virtual Bank Accounts are dedicated bank account numbers that allow your business and your customers to receive money. When someone sends funds to a Virtual Bank Account, the money is automatically credited to the associated wallet, and you are notified via a webhook. They are available in NGN, GBP, EUR, and USD.

How to create a Virtual Bank Account

  • Endpoint: /virtual-bank-account
  • Method: POST
  • Purpose: Generate a new Virtual Bank Account linked to a wallet.
For NGN, the Virtual Bank Account is typically activated immediately and the response will return with a SUCCESSFUL status along with the account details. For GBP, EUR, and USD, the account is created asynchronously. The response will return with a PENDING status. Once the account is fully activated, you will receive a virtual_account.ready webhook with the account details (account number, bank name, etc.). If the account creation fails or is rejected, you will receive a virtual_account.failed or virtual_account.rejected webhook instead.
For GBP, EUR, and USD, Virtual Bank Account creation requires a verified customer of type individual. Business-type customers are not supported for these currencies.
In the development environment, only NGN Virtual Bank Accounts settle.

Understanding identification types (TIN)

When creating a Virtual Bank Account (particularly for USD), your customer needs a tin (Tax Identification Number) value on their profile. However, “TIN” is a generic term — what it actually represents depends on the customer’s country and whether they are an individual or a business. For example:
CountryCustomer typeWhat to collectExample label
USIndividualSocial Security NumberSSN
USBusinessEmployer Identification NumberEIN
NGIndividualBank Verification NumberBVN
GBIndividualNational Insurance NumberNINO
CAIndividualSocial Insurance NumberSIN
How to use this in your integration:
  1. Call Get identification type with the customer’s country and type (or their customer_id if you already have one).
  2. Use the returned label to display the correct field name in your UI (e.g. “Enter your Social Security Number” instead of “Enter your TIN”).
  3. Save the value your customer provides as the tin field when creating or updating the customer.
  4. Proceed to create the Virtual Bank Account.
Individual and business customers in the same country often require different identification types. Always pass the correct type parameter when looking up the identification type.

Quick answers

  • Which Virtual Bank Accounts settle in development? Only NGN Virtual Bank Accounts settle in the development environment.
  • Should the customer’s country match the identity document? Yes. The customer’s country must match the identity document submitted for KYC.
  • How long does customer verification take? See the warning below.
Verification is not instant. After you upload identity documents for a customer, those documents go through a review process. The customer’s status will remain PENDING until that review is complete.In most cases, the review finishes within a few minutes. However, if the documents require an additional level of checks and screening, the process can take up to 2 hours. This is completely normal and is not a sign that anything has gone wrong. Do not raise support tickets or enquiries for verifications that have been pending for less than 2 hours — such requests will not be attended to.If verification has been pending for 5 hours or more, something may have gone wrong. Only at that point should you contact the operations team at support@blaaiz.com to have the situation investigated and expedited.Listen for the customer.verified or customer.rejected webhook to know when the review is complete.
Before creating a Virtual Bank Account, ensure the following prerequisites are in place. Requirements vary depending on the currency.
Wallet must existYou must have a wallet in the currency you want to create a Virtual Bank Account for. Pass a valid wallet_id in your request.Customer is always requiredYou must provide a customer_id for all currencies. The customer must belong to your business and must have verification_status of VERIFIED before you can create a Virtual Bank Account.No duplicate accountsYou cannot create a second Virtual Bank Account for the same customer and wallet combination. If one already exists, the request will be rejected.Customer country and identity document must matchThe customer’s country must match the country on the identity document submitted for KYC.Accepted identity documentsOnly a Driver’s License, Passport, or Resident Permit is accepted for individual customers. For business customers, only a Certificate of Incorporation is accepted. ID cards (National Identity Cards) are not accepted. No other document types are supported.Document qualityAll uploaded documents must be clear, legible, and authentic. Blurry, cropped, obscured, or otherwise unclear images will not be reviewed and will be rejected. Fraudulent or falsified documents will not be tolerated — repeated attempts to submit false or invalid documents will result in the customer being permanently blacklisted from the platform. There are no exceptions or compromises.

Managing Virtual Bank Accounts

Once created, you can manage your Virtual Bank Accounts using the following endpoints: