Skip to main content
Use this endpoint to provision a permanent, static virtual account for one of your sub-customers. Unlike temporary virtual accounts, these accounts persist indefinitely and are tied to a verified identity — either a Bank Verification Number (BVN) or National Identification Number (NIN). Your customer can receive recurring payments into this account without you generating a new number each time.

Endpoint

POST /api/v1/account/web/create_customer_account

Authentication

Include your JWT access token in the Authorization header.
Authorization: Bearer <access_token>
Obtain a token via POST /auth/web/login.

Request body

bvn
string
The sub-customer’s Bank Verification Number. Must be exactly 11 digits. At least one of bvn or nin is required.
nin
string
The sub-customer’s National Identification Number. Must be exactly 11 digits. At least one of bvn or nin is required.
phone_number
string
The sub-customer’s phone number. Maximum 11 characters.
account_name
string
A display name for the sub-customer’s account (e.g., "John Doe"). Maximum 255 characters.
metadata
object
An optional free-form JSON object for storing your internal reference data, such as your own customer ID or order reference. This data is stored alongside the account and returned in lookups.

Example request

curl --request POST \
  --url https://baasapi.payrepmfb.com/api/v1/account/web/create_customer_account \
  --header "Authorization: Bearer <access_token>" \
  --header "Content-Type: application/json" \
  --data '{
    "bvn": "12345678901",
    "phone_number": "08012345678",
    "account_name": "John Doe",
    "metadata": {
      "internal_customer_id": "CUST-001"
    }
  }'

Response

A successful request returns the provisioned customer account.
{
  "status": true,
  "response_code": "00",
  "message": "Customer account created successfully",
  "data": {
    "account_number": "8801234567",
    "account_name": "John Doe",
    "account_type": "virtual",
    "status": "active",
    "balance": "0.000000000",
    "last_balance_update": null
  }
}

Error codes

Response codeMeaning
02Missing identity — neither bvn nor nin was provided.
41Customer not found — your session credentials are invalid.
80Service unavailable — the core banking provider is temporarily down.
83Provider error — identity verification failed or account creation was rejected.