Skip to main content
POST
Create a virtual account
POST /v1/virtual-accounts Requests a single provider via the provider field (defaults to paga). To provision on both networks in one call, see Multi-Provider Requests instead.
string
required
Full name of the customer
string
Customer’s phone number, e.g. +2348012345678. Required if provider is paga.
string
Customer’s email address. Required if provider is paga.
string
Customer’s 11-digit BVN (optional — financial_identification_number is accepted as a deprecated alias for the same field)
number
Max single transaction in Naira, between 100 and 1,000,000. Defaults to 50,000
string
default:"paga"
paga or palmpay
Response
Calling this again for the same customer doesn’t create a duplicate — it returns the existing account with "message": "Virtual account already exists for this customer."

Authorizations

Authorization
string
header
required

sk_live_... or sk_test_... — can call every endpoint. Server-side only.

Body

application/json
customer_name
string
required
Example:

"Jane Doe"

customer_phone
string

Required if provider/banks includes paga

Example:

"+2348012345678"

customer_email
string

Required if provider/banks includes paga

Example:

"jane@example.com"

bvn
string
Example:

"12345678901"

funding_limit
number
Example:

100000

provider
enum<string>
default:paga
Available options:
paga,
palmpay
banks
enum<string>[]
Available options:
paga,
palmpay
Example:

Response

Created

message
string
customer_name
string
accounts
object[]
errors
object[]