VIRTUAL ACCOUNTS
Overview
Create virtual accounts for your customers, collect money into them, and reconcile the inflows. NGN accounts are issued instantly; foreign-currency (USD/EUR/GBP) accounts are issued by our partner ban
/v1/customer
All Customer Accounts & Collections endpoints live under this base path.
Use this section to
- Enroll customers and submit their KYC documents
- Generate NGN or foreign-currency (USD/EUR/GBP) virtual accounts
- Track a customer's accounts and reconcile inflows into them
Response format
Success
{
"status": "success",
"message": "...",
"data": { }
}Error
{
"status": "error",
"code": "ERROR_CODE",
"message": "..."
}Currencies
NGN (default), USD, EUR, GBP.
Customer identity
Every customer has a uuid, returned at enrollment. Use it everywhere :uuid / customer_id appears in later calls.
Typical integration flow
- Enroll the customer to get their
uuid. - Submit KYC — one call per document type the target account requires.
- Check KYC status until the required items are approved.
- Generate an account in the currency you want.
- NGN accounts come back active immediately.
- USD/EUR/GBP accounts come back pending; wait for the account-created webhook (or account-failed).
- Money paid into the account credits your business wallet in that currency and fires a credit webhook.
- Reconcile any time by listing collections.
KYC requirements per account
| Account currency | Required (all must be approved) |
|---|---|
| NGN (via Safe Haven / Dot Bank) | BVN |
| NGN (via 9PSB) | BVN and NIN |
| USD / EUR / GBP | A government ID (passport, national ID, or driver's license — with its document number) and proof of address |
For USD/EUR/GBP, an approved BVN is optional — when present it's passed to the partner bank as the customer's bank identifier for NG nationals.
Note: Document-type KYC (passport, driver's license, national ID, proof of address) is accepted on submission, but the partner bank performs the authoritative review at account-issuance time and can still decline it — surfaced via the account-failed webhook.
Questions? Email [email protected]. Also on GitBook.