USD Account

This section describes the requirements for creating a virtual account in USD. In this section, the payloads have been separated into the requirements for individual and corporate accounts. Please take time to go through each request properly.

With a USD Virtual Account, merchants can receive payments in USD.


Hey ๐Ÿ‘‹ , we recommend reading the sections below because they are critical to understanding each virtual account request.

How to create a virtual account
Currencies we support for virtual account creations
Virtual Account Webhook Structure

USD Account Settlement Time

The settlement time is the amount of time it takes for funds to be deposited into your Fincra account/IBAN, which is determined by the payment scheme the sender uses.

Payment SchemeTime
CHAPSWithin 24 hours
FPS10 seconds to one day
SWIFT1-5 days
WireLess than 10 hours

Endpoint Parameters

These parameters can be tested on an API explorer by calling the various endpoints supported for our virtual account requests :



  • After a Virtual Account creation request is made, a response with a data object containing a unique identifier _id of the virtual account will be returned, which would also be included in the webhook sent as id if the virtual account is declined or approved.

  • The meansOfId can be sent as a string, file, or array of URLs when making use of the create virtual account endpoint

Individual Request

These are the fields required to process an individual Virtual Account request in USD

currencyYesStringThe virtual account currency.e.g USD
accountTypeYesStringThe virtual account type. Please see the API documentation for more details
meansOfIdYesString/ArrayThe customer's means of identification which should be a valid government ID e.g voters card, driving license. Please see the API documentation
utilityBillNoStringElectricity bills, water bills or any detailed invoice showing the usage of a service. This can be a File Upload or a URL link to the document.
KYCInformation.firstNameYesStringThe customer's first name. This is required to create an individual account
KYCInformation.lastNameYesStringThe customer's last name. This is required to create an individual account
KYCInformation.phoneYesStringThe customer's phone number.
KYCInformation.birthDateYesStringThe birthdate of the customer(YYYY-MM-DD ).
KYCInformation.nationalityYesStringThe customer's place of birth
KYCInformation.emailYesStringThe customer's email.
KYCInformation.addressYesObjectThe address of the customer
KYCInformation.address.countryOfResidenceyesStringThe address of the country
KYCInformation.address.stateyesStringThe address of the state
KYCInformation.address.zipyesStringThe zip code
KYCInformation.address.streetyesStringThe street name
KYCInformation.address.numberyesstringThe house number
KYCInformation.address.cityyesStringThe city name
KYCInformation.sourceOfIncomeyesStringCustomer's source of income
KYCInformation.accountDesignationyesStringSpecific use of the account e.g for personal use, corporate use, school fee payments etc
KYCInformation.employmentStatusyesStringCustomer's employment status
KYCInformation.incomeBandyesStringCustomer's income band. IncomeBand can be described as earning range or salary range of the customer.
KYCInformation.documentYesObjectThe document
KYCInformation.document.typeYesStringThe type of ID document e.g passport, driverLicense, idCard.

Please see the required values here
YesStringThe number on the document
YesStringThe country that issued the document.Should be in ISO 3166-1 alpha-2 โ€“ two-letter country codes format(NG)
YesStringThe government agency in charge of issuing the document.
YesStringThe date the document was issued("YYYY-mm-dd")
YesStringThe expiration date on the document("YYYY-mm-dd")
YesStringThe occupation of the customer.

The payload should look like this :

            "bankStatement": "",
 "KYCInformation": {
            "firstName": "John",
            "lastName": "Doe",
            "email": "[email protected]",
            "birthDate": "1984-07-24",
            "nationality": "NG",
            "incomeBand": "0-100000",
            "phone": "09031234321",
            "address": {
                "countryOfResidence": "NG",
                "zip": "23401",
                "street": "Obada",
                "state": "Lagos",
                "city": "Alimosho"
            "document": {
                "type": "passport",
                "number": "B00530002",
                "issuedCountryCode": "NG",
                "issuedBy": "government",
                "issuedDate": "2000-09-14",
                "expirationDate": "2000-09-13"
            "occupation": "Software-Developer",
            "sourceOfIncome": "Software-Development",
            "accountDesignation": "personal",
            "employmentStatus": "Employed"

Corporate Request

These are the fields required to process a corporate Virtual Account request in EUR/GBP.

currencyYesStringThe virtual account currency.e.g USD
accountTypeYesStringThe virtual account type e.h corporate
reasonYesStringThe reason for requesting a virtual account.
paymentFlowDescriptionYesStringThe countries payments are coming from and going to, The general purpose of these payments, Customer categories of the business etc.
monthlyVolumeYesStringThis is the committed transaction volume multiplied by the number of days in the relevant month.
entityNameYesStringThis is the legal name of the business or company.
KYCInformation.address.stateYesStringThe address of the state
KYCInformation.address.zipYesStringThe zip code
KYCInformation.address.cityYesStringThe business City
KYCInformation.address.houseIdYesStringThe house number (This is only required for UK residents)

The payload should look like this :

  "currency": "USD",
  "accountType": "corporate",
  "KYCInformation": {
        "city": "Lekki",
      	"state": "lagos",
        "zip": "234",
    "houseId": "12345" //for UK residents
   "reason": "The reason for requesting a corporate account",
  "monthlyVolume": 10000,
  "entityName": "john doe legal enterprise",
  "paymentFlowDescription": "we pay in pounds every month",

Please Note That we will get the other information from the KYC that was submitted during onboarding