Authentication
Include your Bearer token in theAuthorization header:
Request body
The account number that will receive funds when this virtual account is credited. Must be a valid current or pool account that belongs to your business. Maximum 10 characters.
A label for this virtual account — for example,
"Invoice #12345" or "Order #9876". Defaults to "Virtual Dynamic Account" if omitted. Maximum 255 characters.Set to
"virtual". This field identifies the account class being created.Example request
Response
Success
The unique account number to share with your customer for payment. Once credited, funds move automatically to the configured pool account.
The label assigned to this virtual account.
Always
"virtual" for accounts created by this endpoint."active" — the account is ready to receive a payment.Current balance in NGN. Starts at
"0.000000000" and sweeps to the pool account on credit.ISO 8601 timestamp of the most recent balance event, or
null if no payments have been received.Error — pool account not found
Error codes
| Code | Meaning |
|---|---|
00 | Success |
41 | Customer not found — your API credentials are invalid |
61 | Customer not verified — your business account must be active |
42 | Pool account not found — the pool_account_number does not belong to your business |
80 | Service unavailable — the core banking provider is temporarily down |
83 | Provider error — the core banking system rejected the request |
Virtual accounts settle automatically. You do not need to initiate a transfer — any payment credited to the virtual account is swept to the parent pool account by the core banking system immediately upon receipt.