Permanent Account

Request a permanent virtual account

Changed on

Request a permanent virtual account in a supported currency. The same endpoint handles local-currency and foreign-currency requests; the required KYC and supporting documents vary by currency and account type. Some accounts are approved immediately, while others remain pending until verification and issuance complete.

post/profile/virtual-accounts/requests

Request

Request body

currency'NGN' | 'GHS' | 'KES' | 'TZS' | 'RWF' | 'UGX' | 'XAF' | 'USD' | 'EUR' | 'GBP' | 'CAD' required

Three-letter ISO 4217 currency code for the virtual account.

accountType'individual' | 'corporate' required
merchantReferencestring

A unique, idempotency-friendly reference generated by your system.

phoneNumberstring
reasonstring
purpose'third_party' | 'self'
entityNamestring
paymentFlowDescriptionstring
requestedCurrenciesstring[]
metadataobject
accountOpeningDatestring date-time
isTermsAcceptedboolean

Example request

{
  "KYCInformation": {
    "firstName": "Ada",
    "lastName": "Okafor",
    "email": "ada.okafor@example.com",
    "phone": "+2348012345678",
    "bvn": "10000000001",
    "address": {
      "countryOfResidence": "NG",
      "number": "12",
      "street": "Marina Road",
      "city": "Lagos",
      "state": "Lagos",
      "zip": "101001"
    },
    "document": {
      "number": "A00000000",
      "issuedCountryCode": "NG",
      "issuedBy": "Nigeria Immigration Service",
      "issuedDate": "2023-01-15",
      "expirationDate": "2028-01-14"
    },
    "birthDate": "1992-06-18",
    "nationality": "NG",
    "occupation": "Software engineer",
    "taxCountry": "NG",
    "monthlyTransactionVolume": "5000",
    "monthlyTransactionCount": "10",
    "accountDesignation": "personal",
    "incomeBand": {
      "lower": "50000",
      "upper": "100000"
    },
    "annualIncome": "60000"
  },
  "merchantReference": "va_req_01J9P8J8Y8B4Q6K9R6M5N4P3T2"
}

Response

The virtual-account request was accepted.

successtrue required
messagestring required

Example response

{
  "data": {
    "_id": "65f1c9ef838af8cda0211d9d",
    "accountInformation": {
      "accountNumber": "0123456789",
      "accountName": "Ada Okafor",
      "bankName": "Example Bank",
      "bankCode": "000"
    }
  }
}

Changes

    • breaking

      request body became required

    • breaking

      request property was restricted to a list of enum values

    • breaking

      request property was restricted to a list of enum values

    • breaking

      the request property type changed from object to no type

    • breaking

      the request property format changed from no format to date-time

    • breaking

      the request property type changed from string to object

    • warning

      removed the request property

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the request property

    • warning

      removed the request property

    • warning

      removed the request property

    • info

      api operation id post_profile-virtual-accounts-requests removed and replaced with request-permanent-virtual-account

    • info

      api tag Permanent Account added

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added to the request property anyOf list

    • info

      the request property became optional

    • info

      the request property became optional

    • info

      the request property default value individual was removed

    • info

      the request property default value CAD was removed

    • info

      added the new CAD enum value to the request property

    • info

      added the new EUR enum value to the request property

    • info

      added the new GBP enum value to the request property

    • info

      added the new GHS enum value to the request property

    • info

      added the new KES enum value to the request property

    • info

      added the new NGN enum value to the request property

    • info

      added the new RWF enum value to the request property

    • info

      added the new TZS enum value to the request property

    • info

      added the new UGX enum value to the request property

    • info

      added the new USD enum value to the request property

    • info

      added the new XAF enum value to the request property

    • info

      added the new self enum value to the request property

    • info

      added the new third_party enum value to the request property

    • info

      request property list-of-types was widened by adding types array to media type application/json

    • info

      request property list-of-types was widened by adding types array to media type application/json

    • info

      request property list-of-types was widened by adding types array to media type application/json

    • info

      added the media type application/json for the response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status