curl --request POST \
  --url https://api.nomba.com/v1/accounts/virtual \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'accountId: <parent accountId>' \
  --data '{
    "accountRef": "1oWbJQQHLyQ************",
    "accountName": "Daniel Scorsese",
    "currency": "NGN",
    "expiryDate": "2024-06-17 04:55:00",
    "bvn":"12345678901",
    "expectedAmount": 5000.00,
  }'
{
  "code": "00",
  "description": "Success",
  "data": {
    "createdAt": "2024-10-11T14:15:39.376Z",
    "accountRef": "Archie Friesen",
    "accountHolderId": "8d19d421-85b1-4b61-be90-168dc261gf45",
    "accountName": "John Doe",
    "currency": "NGN",
    "bankAccountNumber": "9171424569",
    "bankAccountName": "Ayomide Akinrotoye",
    "bankName": "Amucha MFB",
    "bvn": "22122204392",
    "expiryDate": "2024-10-12T12:30:49",
    "expired": false
  }
}
When creating a virtual account, you can optionally include bvn, expiryDate and expectedAmount in the request.
bvn: If omitted, the virtual account will default to the BVN of the parent account. Only provide this if you want to assign a different BVN to the virtual account.expectedAmount: This is used to restrict the virtual account to only accept a specific amount. If set, the account will reject any payment that is lower or higher than the specified amount. Use this carefully when expecting exact payments (e.g., invoice matching or controlled transfers).expiryDate: You can set this to anytime in the future. However, if omitted the default time will be set to 5 mins.

POST /v1/accounts/virtual

Request body

accountRef
string
required
Account reference
accountName
string
required
Account holder’s name
currency
string
required
Currency code
expectedAmount
number
This is an optional field that is used to set a default value that the account must receive.
bvn
string
Account holder Bank Verification Number (BVN).
expiryDate
string
Expiry Date (This field allows you to customize the expiry period for this account. The default time however is 5 minutes)
Be cautious when setting the expectedAmount. Once set, the account will only accept that exact amount. Payments with any other amount will be rejected.

Response body

code
string
required
Response code
description
string
required
Response description
data
object
curl --request POST \
  --url https://api.nomba.com/v1/accounts/virtual \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'accountId: <parent accountId>' \
  --data '{
    "accountRef": "1oWbJQQHLyQ************",
    "accountName": "Daniel Scorsese",
    "currency": "NGN",
    "expiryDate": "2024-06-17 04:55:00",
    "bvn":"12345678901",
    "expectedAmount": 5000.00,
  }'
{
  "code": "00",
  "description": "Success",
  "data": {
    "createdAt": "2024-10-11T14:15:39.376Z",
    "accountRef": "Archie Friesen",
    "accountHolderId": "8d19d421-85b1-4b61-be90-168dc261gf45",
    "accountName": "John Doe",
    "currency": "NGN",
    "bankAccountNumber": "9171424569",
    "bankAccountName": "Ayomide Akinrotoye",
    "bankName": "Amucha MFB",
    "bvn": "22122204392",
    "expiryDate": "2024-10-12T12:30:49",
    "expired": false
  }
}