Skip to main content
A virtual bank account is a Nigerian Naira bank account number that Dubu Pay provisions on your behalf. You give the account details to your customer, they make a local bank transfer, and Dubu Pay detects the deposit, converts it to USDT at the prevailing exchange rate, and records it against your merchant balance. From your customer’s point of view it looks like a standard Nigerian bank transfer — there is no crypto interface required on their end.

Two types of virtual account

Dubu Pay offers two types of NGN virtual account, each suited to different use cases.

Temporary accounts

A temporary account is valid for exactly 25 minutes. You specify the exact NGN amount the customer should send, and the exchange rate is locked in at the moment you create the account. If the customer sends a different amount or pays after expiry, the account will not accept the payment. Use temporary accounts for:
  • Checkout pages where the customer pays a fixed invoice amount
  • Time-limited payment links
  • Any flow where you want certainty about the rate and amount
If a customer pays after the 25-minute window, the account is expired and will not settle the deposit. Always make the expiry visible in your UI and provide a way for the customer to request a new account if needed.

Permanent accounts

A permanent account has no expiry and accepts any NGN amount. The exchange rate is applied at the time each deposit clears, not at account creation. Permanent accounts require the associated customer to have completed Tier 2 KYC, including BVN verification. Use permanent accounts for:
  • Customers who top up a wallet balance repeatedly over time
  • Subscription-style payment acceptance
  • Any integration where you want to give a customer a stable, reusable bank account number
Permanent accounts are the preferred choice when you manage an ongoing customer relationship. They eliminate the need to re-issue an account for every payment.

Virtual account fields

A virtual account object returned by the API includes:

How deposits flow

When a customer sends money to a virtual account, the deposit progresses through several internal states before it appears as settled funds.
You should listen for webhook events to track deposit status changes in real time rather than polling the deposits endpoint. Dubu Pay emits an event for each status transition.

Creating virtual accounts

You can create virtual accounts in two ways:
Issue a permanent NGN virtual account directly against a customer record. The customer must have completed Tier 2 KYC.
Retrieve the existing account for a customer:

Settlement modes

When creating an onramp you choose how the converted USDT is delivered after a deposit settles:

Endpoint overview