Generates a new virtual bank account for the specified wallet. Supports NGN, GBP, USD, EUR.
Important: Virtual bank accounts are not immediately issued. Account details are usually provided within a few minutes, but can take a few days if the customer is being reviewed manually or has not passed internal checks. The initial status will be PENDING until the account is fully provisioned. In the development environment, only NGN virtual bank accounts settle. Required scope: virtual-account:create.
Authorization
oauth2ClientCredentials virtual-account:createUse your OAuth client credentials to obtain a short-lived Bearer token from POST /oauth/token.
In: header
Scope: virtual-account:create
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Supports NGN, GBP, USD, EUR. A verified customer is required for all currencies. NGN supports both type=individual and type=business customers — businesses must have completed the KYB flow (Business customer KYB). GBP, USD, and EUR currently support type=individual only; type=business for those currencies is not yet available.
Response Body
application/json
application/json
application/json
application/json
curl --request POST \ --url 'https://example.com/api/external/virtual-bank-account' \ --header 'Content-Type: application/json' \ --data '{ "wallet_id": "b18ed308-5ac5-4e9e-bb16-8c03ec2d3c01", "customer_id": "9d4c4ec5-59ea-4130-bf8a-6a5edec401ee"}'{ "message": "Virtual bank account initiated successfully.", "data": { "id": "33580c65-d063-4138-a875-82ff09dfaeb5", "business_wallet_id": "b18ed308-5ac5-4e9e-bb16-8c03ec2d3c01", "currency_id": 1, "currency": "NGN", "account_number": "7880000024", "account_name": "John Doe", "bank_name": "78 Finance Company Limited", "bank_code": "123456", "provider": "BANK78", "account_reference": "2327323232", "reservation_reference": null, "rejection_reason": null, "status": "PENDING" }}