Skip to main content
POST
Generate Customer Virtual Account
Create a permanent NGN virtual account dedicated to one of your end-users. Each user gets their own account number, so when a deposit lands you can attribute it to the right user via webhook and credit them automatically — instead of everyone sharing a single business account. The provider requires the end-user’s BVN, name and date of birth to open a dedicated personal account.
This endpoint is idempotent per customer_identifier. Re-requesting for the same customer returns the account already on file (HTTP 200, existing: true) rather than creating a duplicate. Use a new customer_identifier to create a new account for a different user.

customer_identifier

Your own unique id for the end-user (their user id in your system). It is what ties the Rolla account back to a specific user, so the deposit webhook tells you who paid. Pass your own value; if you omit it, one is generated and returned.

Request Body

Example Request

Example Response

The raw BVN is never echoed back — only bvn_last4. In the sandbox, use the test BVN 22222222222; a made-up value returns 400 "invalid BVN". In production, pass the user’s real BVN.
If your API key has an IP allowlist configured, it applies here as it does to every endpoint — requests from other IPs are rejected. An allowlist is not required to use this endpoint.

Authorizations

X-API-Key
string
header
required

Your Rolla API key

Body

application/json
first_name
string
required
Example:

"Tosin"

last_name
string
required
Example:

"Kalejaiye"

email
string<email>
required
Example:

"tosin@example.com"

phone
string
required

Nigerian mobile number.

Example:

"08012345678"

bvn
string
required

End-user's 11-digit Bank Verification Number. Validated by the provider. Never returned in responses.

Example:

"22222222222"

date_of_birth
string
required

End-user's date of birth in mm/dd/yyyy format.

Example:

"01/31/1990"

address
string
required
Example:

"12 Marina Road, Lagos"

gender
enum<string>
required

1 = male, 2 = female.

Available options:
1,
2
Example:

"1"

customer_identifier
string

Your own unique id for this end-user. Pass it so the account maps back to the user and re-requests are idempotent. If omitted, one is generated and returned.

Example:

"user-12345"

Response

An account already existed for this customer_identifier and was returned unchanged

status
integer
Example:

200

success
boolean
Example:

true

message
string
Example:

"Customer virtual account already exists for this customer_identifier"

data
object