Skip to main content
The Virtual Accounts API provides two endpoints for retrieving Nigerian bank account details used in the cNGN onramp flow. Your fintech has a permanent pooled account for collecting NGN deposits, and each user deposit request is associated with a dedicated virtual account that carries a full fee breakdown - letting your users know exactly how much to send and how much will be credited to their wallet.
New to virtual accounts? Read the Virtual Accounts Guide for an overview of account types, the deposit lifecycle, BVN validation requirements, and best practices before integrating these endpoints.

Endpoints Overview


GET /getfintechvirtualaccount

Returns the NGN virtual account(s) created for your fintech during the Strails onboarding process. This is the pooled account your users direct NGN deposits to before conversion into cNGN. Display this account information to your users in your onramp UI.
This endpoint requires no request body.

Response

array
An array of virtual account objects assigned to your fintech. Most fintechs have one account, but multiple accounts may be present if you have been assigned accounts across more than one banking provider.
string
The 10-digit NUBAN account number users send NGN deposits to.
string
The account name as registered with the bank. Display this to users alongside the account number for payment confirmation.
string
The name of the Nigerian bank or microfinance institution holding the virtual account.
string
The virtual account infrastructure provider (e.g. "nutmeg", "redbiller", "novac").
string
Current account status. "active" means the account can receive deposits.
string
ISO 8601 timestamp indicating when the virtual account was provisioned.

POST /getvirtualaccount

Retrieves a specific user-level virtual account using the requestId generated when the deposit request was created. The response includes the exact amounts your user must transfer, a full fee breakdown, and the destination wallet address that will receive the equivalent cNGN.

Request Parameters

string
required
The unique identifier of the deposit request whose virtual account details you want to retrieve. This is returned when a user initiates a deposit or onramp request.
Virtual accounts for individual deposit requests expire 30 minutes after creation. If your user does not complete the NGN transfer within this window, the account will be marked as expired and you will need to create a new deposit request. Do not instruct users to send funds to an expired account.

Response

string
The unique identifier for this deposit request, matching the requestId you submitted.
string
The 10-digit NUBAN account number the user must send NGN to for this specific deposit.
string
The bank where the virtual account is held.
string
The account name displayed during bank transfers, typically in the format "Fintech Name/User Full Name".
number
The exact NGN amount the user must send, including all fees. Always use this figure - not baseAmount - when presenting the transfer amount to your user.
object
A detailed breakdown of how the total amount was calculated, including fintech and Strails fee components.
string
Current status of the deposit request. "created" means the account is active and awaiting the user’s transfer.
string
The EVM wallet address that will receive the cNGN equivalent once the NGN deposit is confirmed.

Error Responses