Create a virtual account

Creates a virtual account (static or dynamic) for the authenticated business. Static accounts require full KYC details (middle name, phone, DOB, BVN, gender, address); dynamic accounts only require first/last name, email, currency, and reference.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Two flavours are available:

  • Static — long-lived, persistent account tied to a specific customer. Requires full KYC (name, DOB, BVN, address, gender, phone). Use this for recurring customer collections (rent, subscriptions, dedicated supplier accounts).
  • Dynamic — short-lived, ephemeral account tied to a single payment. Requires only minimal customer info. Use this for one-shot transactions (checkout sessions, invoices).

Request Body

FieldTypeRequired?Description
typestringYes (always)"static" or "dynamic". Determines which fields below are required.
first_namestringYes (always)Customer's first name.
last_namestringYes (always)Customer's last name.
emailstringYes (always)Customer's email address. Must be a valid email format.
currencystringYes (always)ISO 4217 currency code (e.g. "NGN").
account_typestringNo (default individual)individual or business.
business_namestringRequired when account_type=businessApproved business name on the account.
referencestringYes (always)Your unique reference for this virtual account. Use it later to fetch the account.
addressobjectYes (always)Customer address — see address below.
middle_namestringYes (static only)Customer's middle name.
phone_numberstringYes (static only)Customer's phone number. 1–11 characters.
dobstringYes (static only)Customer's date of birth (YYYY-MM-DD).
bvnstringYes (static only)Customer's Bank Verification Number.
genderstringYes (static only)"male" or "female".

address object

FieldTypeRequiredDescription
address_line1stringYesStreet address line 1.
address_line2stringOptionalStreet address line 2 (apt, suite, etc.).
citystringYesCity.
statestringYesState or region.
postal_codestringYesZIP or postal code.
countrystringYesCountry (e.g. "NGA").

🚧 Business accounts are static-only
When account_type=business, type must be static, and business_name, phone_number (≤ 11 digits) and bvn are required. First/last name, DOB and gender are not used.

Example Requests

Dynamic virtual account (one-shot)

{
  "type": "dynamic",
  "first_name": "Jane",
  "last_name": "Doe",
  "email": "[email protected]",
  "currency": "NGN",
  "reference": "VA-INVOICE-2226",
  "address": {
    "address_line1": "12 Marina Road",
    "city": "Lagos",
    "state": "Lagos",
    "postal_code": "101241",
    "country": "NGA"
  }
}

Static virtual account (persistent, full KYC)

{
  "type": "static",
  "first_name": "Jane",
  "middle_name": "Marie",
  "last_name": "Doe",
  "email": "[email protected]",
  "phone_number": "08012345678",
  "dob": "1990-04-21",
  "bvn": "22198765432",
  "gender": "female",
  "currency": "NGN",
  "reference": "VA-CUST-9381",
  "address": {
    "address_line1": "12 Marina Road",
    "address_line2": "Apt 4B",
    "city": "Lagos",
    "state": "Lagos",
    "postal_code": "101241",
    "country": "NGA"
  }
}

Response Body

FieldTypeDescription
idstring (UUID)The Payline ID for this virtual account.
currencystringCurrency the account accepts.
statusstringCurrent status — "active" or "inactive".
referencestringYour merchant reference (echoed).
customerobjectAccount holder details — see customer below.

customer (virtual account)

FieldTypeDescription
namestringFull name of the account holder.
account_numberstringThe virtual bank account number to share with the payer.
bank_codestringBank code of the issuing bank.
emailstringAccount holder email.
referencestringCustomer reference.

Example Responses

Dynamic virtual account

{
  "id": "ba81f25c-1234-4f6a-9e8b-7c0d1a2b3c4d",
  "currency": "NGN",
  "status": "active",
  "reference": "VA-INVOICE-2226",
  "customer": {
    "name": "Jane Doe",
    "account_number": "",
    "bank_code": "",
    "email": "[email protected]",
    "reference": "VA-INVOICE-2226"
  }
}

Static virtual account

{
  "id": "e2c4d6f8-aabb-ccdd-eeff-001122334455",
  "currency": "NGN",
  "status": "active",
  "reference": "VA-CUST-9381",
  "customer": {
    "name": "Jane Marie Doe",
    "account_number": "9988776655",
    "bank_code": "101",
    "email": "[email protected]",
    "reference": "VA-CUST-9381"
  }
}

Dynamic accounts return an account_number only after a payment session attaches one to them at transaction time. Static accounts return the permanent account number immediately on creation.

Body Params

Virtual Account Creation Details

string

"individual" (default) | "business"

address
object
string
string
string
string
string
string
string
string
string
string
string
string
string
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json