Verify Bank Account Number

Learn how to use Fincra to verify your customer's identity.

Account Types

Merchants can use our account verification API to verify the authenticity of a customer’s account number before paying money to them. This is to ensure that your payment is routed to the right beneficiary. To learn more about the type of accounts we can verify, please see the table below:

TypeAPI ValueAvailabilityDescription
Bank Accountbank_accountNigeria, Ghana, South AfricaUsed to verify and return the names attached to bank accounts.
Mobile Moneymobile_moneyGhanaUsed to verify and return the names attached to mobile money wallets
IBANibanEuropean Union, Africa, Asia, North and South America, Oceania, and the United KingdomInternational Bank Account Number
NUBANnubanNigeriaNigeria Uniform Bank Account Number

Implementation

To verify an account number, mobile money wallet, or IBAN, you would need to send the required parameters to the verify account endpoint, and the endpoint will return the customer's account information.

Endpoint:

{{base_url}}/core/accounts/resolve
curl --location 'https://api.fincra.com/core/accounts/resolve' \
--header 'accept: application/json' \
--header 'api-key: <Your API secret key>' \
--header 'Content-Type: application/json' \
⚠️

Note

  • Please note that when validating an IBAN (iban) or NUBAN (nuban) there should be no spaces between the values, as this would return an error response.

Below are the payload structures for each account type. It denotes the fields to be sent to the verify account endpoint.

Bank Account Number Verification

{
    "accountNumber":"0000000000",
    "bankCode":"044",
    "currency": "NGN",
    "type": "bank_account"
}
{
    "accountNumber": "1020820171412",
    "bankSwiftCode": "ADNTGHAC",
    "currency": "GHS",
    "type": "bank_account"
}
{
    "accountNumber": "0713058274@nedbank",
    "bankCode": "PAYSHAP_ID",
    "currency": "ZAR",
    "type": "bank_account"
}

If the API call is successful, Fincra returns the following response:

{
    "success": true,
    "message": "Account resolve successful",
    "data": {
        "accountNumber": "0000000000",
        "accountName": "John Doe",
        "bankCode": "044"
    }
}
{
    "success": true,
    "message": "Account resolve successful",
    "data": {
        "accountNumber": "1020820171412",
        "accountName": "John Doe",
        "bankSwiftCode": "ADNTGHAC"
    }
}
{
    "success": true,
    "message": "Account resolve successful",
    "data": {
        "accountNumber": "0713058274@nedbank",
        "accountName": "Khanya Fresh Produce",
        "bankCode": "PAYSHAP_ID"
    }
}

Verifying a PayShap ID (ZAR)

PayShap is a real time payment scheme in South Africa. A PayShap ID is an alias for a bank account, so you can verify a customer without their account number. For ZAR, PayShap is currently the only supported verification method.

You do not need a separate integration. Send the same bank account request with these values:

FieldValue
typebank_account
currencyZAR
bankCodePAYSHAP_ID. Required. It is returned in the South Africa bank list from the get banks endpoint.
accountNumberThe full PayShap ID in the format number@bank, for example 0713058274@nedbank. There is no digit or length rule.

If the part after the @ is missing, the request fails with a 422 and errorType: UNPROCESSABLE_ENTITY.

The same values apply when you pay out to a PayShap ID.

Mobile Money Wallet Verification

{
    "accountNumber": "233246089019",
    "mobileMoneyCode": "MTN",
    "currency": "GHS",
    "type": "mobile_money"
}

If the API call is successful, Fincra returns the following response:

{
    "success": true,
    "message": "Account resolve successful",
    "data": {
        "accountName": "John Doe",
        "accountNumber": "233246089019",
        "bankCode": "MTN"
    }
}

International Bank Account Number (IBAN) Verification

{
   "iban":"GB88CLJU04130734505781",
   "type":"iban"
}

If the API call is successful, Fincra returns the following response:

{
    "success": true,
    "message": "Account resolve successful",
    "data": {
        "iban": "GB88CLJU0413111111111",
        "accountNumber": "11111111",
        "bankName": "BARCLAYS",
        "bankCode": "CLJU",
        "bic": "CLJUFV21XXX",
        "branchName": "BARCLAYS LTD",
        "branchCode": "041311",
        "country": "United Kingdom",
        "countryIso": "GB",
        "address": "16 ... Street ",
        "city": "London",
        "state": null,
        "zip": null
    }
}

Account Verification Error

Account could not be resolved. Please check your selection and try again

This error happens when our system is unable to effectively check the validity of a customer's bank account.


Did this page help you?