Skip to main content
POST
Create Virtual Account
Create a reserved virtual bank account (STATIC or DYNAMIC). Authentication is covered in Authentication. Supported Banks:
  • PalmPay (999991): Requires BVN/NIN for both STATIC and DYNAMIC accounts
  • 9Payment Service Bank (120001): For STATIC accounts, KYC is optional (30k daily limit); for DYNAMIC accounts, no KYC required
Note on 9PSB Static Accounts: When you create a 9PSB STATIC account without BVN/NIN, the account will have a 30,000 NGN daily receive limit. If your customer needs to receive more, they must upgrade the account by providing their BVN/NIN using the Update Virtual Account endpoint. Example request body (STATIC with 9PSB - KYC Optional): For a 9PSB STATIC account without KYC (30k daily limit):
For a 9PSB or Palmpay STATIC account with KYC:
Example request body (DYNAMIC): Both 9PSB and Palmpay support DYNAMIC accounts without KYC:
or
Example response for PalmPay (DYNAMIC):
Example response for 9Payment Service Bank (DYNAMIC):
cURL:
For concepts and when to use STATIC vs DYNAMIC, see the Customer Reserved Account guide.

Upgrading 9PSB Static Accounts

When a customer’s 9PSB static account (created without BVN/NIN) reaches its 30k daily limit, they must provide their BVN and NIN to remove the restriction. Use the Update Virtual Account endpoint to upgrade the account.

Headers

api-key
string
required

Your Payvessel public API key

api-secret
string
required

Your Payvessel secret

Content-Type
enum<string>
required

Request content type

Available options:
application/json

Body

application/json
email
string<email>
required

Customer email address

name
string
required

Customer full name (first name and last name)

phoneNumber
string
required

Customer phone number in international format

bankcode
enum<string>[]
required

List of partner bank codes to provision the virtual account with

Available options:
999991,
120001
Example:
account_type
enum<string>
required

Type of virtual account to create

Available options:
STATIC,
DYNAMIC
businessid
string
required

Merchant business ID supplied by Payvessel

bvn
string

Customer Bank Verification Number (required for STATIC accounts)

nin
string

Customer National Identification Number (use when BVN is unavailable)

Response

Virtual account created successfully

status
boolean
required

Indicates whether the request succeeded

service
string
required

Operation identifier

Example:

"CREATE_VIRTUAL_ACCOUNT"

business
string
required

Merchant business ID

banks
object[]
required

Generated virtual bank accounts