Bank Account: Country Requirements
Every country uses the same endpoint (POST /verify/account) and the same response shape; only the inputs differ. This page lists what each country expects: account and bank-code formats, extra required fields, and anything country-specific in the response. For the request/response flow itself, see the Bank Account guide.
| Country | Code | Account number | bankCode | Extra required fields |
|---|---|---|---|---|
| Nigeria | NG | 10-digit NUBAN | 6-digit code | — |
| Ghana | GH | Standard | Sort/routing code (e.g. GH010100) | — |
| Kenya | KE | Not supported: use M-Pesa | — | — |
| Zambia | ZM | Standard | 3-digit code | — |
| Tanzania | TZ | Standard | 3-digit code | — |
| Ethiopia | ET | Standard | 6-digit code | — |
| United Kingdom | GB | 8 digits | 6-digit sort code | accountName |
| China | CN | UnionPay card or corporate account | BIC/SWIFT | accountName, accountHolderType, identifiers (business) |
Note
mode: "async" is supported for NG, GH, and ZM only. Tanzania, Ethiopia, the United Kingdom, and China are synchronous: every request returns the result in the same HTTP response.
Nigeria
10-digit NUBAN account number plus the bank's 6-digit code. The response includes the account holder's name, and may include address.state and address.lga depending on the bank.
{
"accountNumber": "0123456789",
"country": "NG",
"bankCode": "000014"
}Warning
Legacy 3-digit bank codes (e.g. 044) are not accepted. A request with a 3-digit bankCode is rejected with a 422 validation error. Use the 6-digit code.
Nigeria covers 400+ financial institutions. Fetch the current list at runtime:
curl https://api.lira.com/api/v1/client/countries/NG/banks \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Common Nigerian bank codes
bankCode | Bank |
|---|---|
000014 | Access Bank |
000010 | Ecobank Nigeria |
000003 | First City Monument Bank (FCMB) |
000007 | Fidelity Bank |
000016 | First Bank of Nigeria |
000027 | Globus Bank |
000013 | Guaranty Trust Bank (GTBank) |
000006 | Jaiz Bank |
000002 | Keystone Bank |
000029 | Lotus Bank |
000008 | Polaris Bank |
000031 | PremiumTrust Bank |
000023 | Providus Bank |
000012 | Stanbic IBTC Bank |
000021 | Standard Chartered |
000001 | Sterling Bank |
000022 | SunTrust Bank |
000026 | TAJ Bank |
000025 | Titan Trust Bank |
000018 | Union Bank of Nigeria |
000004 | United Bank for Africa (UBA) |
000011 | Unity Bank |
000017 | Wema Bank |
000015 | Zenith Bank |
Sandbox: account 0000000001 with bank code 000014 returns a predictable success.
Ghana
Standard account number plus the bank's sort/routing code (e.g. GH010100).
{
"accountNumber": "1234567890",
"country": "GH",
"bankCode": "GH010100"
}Note
Ghana returns accountName, bankCode, and bankName only, with no address fields (state, lga).
Kenya
Standard bank account verification is not supported for Kenya. Use the M-Pesa endpoints instead:
| Verification | Endpoint |
|---|---|
| Lipa Na M-Pesa (paybill / till) | POST /verify/lipa-na-mpesa |
| M-Pesa Agent | POST /verify/mpesa-agent |
See Mobile Money for the full guide.
Zambia
Standard account number plus the bank's 3-digit code. Returns accountName, bankCode, and bankName, with no address fields.
{
"accountNumber": "1234567890",
"country": "ZM",
"bankCode": "023"
}Supported Zambian banks
bankCode | Bank |
|---|---|
002 | Absa Bank |
003 | Access Bank |
005 | Access Bank (formerly ATMA) |
006 | Bank of China |
007 | Citibank |
008 | Ecobank |
010 | Indo Zambia Bank |
011 | Investrust Bank |
012 | First Alliance Bank |
013 | First Capital |
014 | FNB |
016 | Stanbic Bank |
017 | Standard Chartered Bank |
022 | United Bank for Africa |
023 | Zanaco |
025 | ZICB |
028 | AB Bank |
032 | Natsave |
033 | Access Bank |
036 | Bayport |
037 | Zambia National Building Society |
Tanzania
Standard account number plus the institution's 3-digit code. Tanzania routes through the national interoperability hub covering 16 banks and 5 mobile-money operators.
{
"accountNumber": "2000000001",
"country": "TZ",
"bankCode": "003"
}Note
mode: "async" is not supported for Tanzania; all TZ verifications are synchronous.
The response may include an identity object when the hub has it: typically a TIN for personal accounts, TIN or NIN for business accounts. Some business accounts omit this field.
Supported Tanzanian institutions
bankCode | Institution |
|---|---|
003 | CRDB Bank |
004 | NMB Bank |
013 | Exim Bank |
015 | NBC Bank |
006 | Stanbic Bank |
011 | Diamond Trust Bank |
009 | Bank of Africa |
020 | ABSA Bank |
021 | I&M Bank |
040 | Ecobank Tanzania |
046 | Amana Bank |
031 | Azania Bank |
024 | DCB Commercial Bank |
034 | BancABC |
039 | Mkombozi Bank |
048 | TPB Bank |
Ethiopia
Standard account number plus the institution's 6-digit code. Ethiopia routes through the national interoperability hub covering 43 financial institutions (banks, microfinance institutions, and mobile wallets).
{
"accountNumber": "1000000000001",
"country": "ET",
"bankCode": "231402"
}Note
mode: "async" is not supported for Ethiopia; all ET verifications are synchronous.
Ethiopia uses corridor-specific error codes: INVALID_ACCOUNT (account not found at the bank) and UNKNOWN_BANK (bankCode not in the supported list), in place of the generic ACCOUNT_NOT_FOUND / INVALID_BANK_CODE.
Sandbox:
accountNumber | bankCode | Result |
|---|---|---|
1000000000001 | 231402 | Success: accountName: "Sandbox Bekele" |
1000000000002 | 231402 | error.code: "ACCOUNT_NOT_FOUND" |
1000000000003 | 231402 | error.code: "PROVIDER_ERROR" |
Supported Ethiopian institutions (43)
bankCode | Institution |
|---|---|
231416 | Abay Bank |
231417 | Addis Bank |
231431 | Ahadu Bank |
231448 | Amhara Bank |
231443 | Anbesa Int. Bank |
231404 | Awash Bank |
231415 | Berhan International Bank |
231414 | Bunna Bank |
231439 | CBE BIRR |
231402 | Commercial Bank of Ethiopia |
231410 | Cooperative Bank of Oromia |
231405 | Dashen Bank |
231476 | Dedebit MFI |
231451 | DIRE MFI |
231419 | Enat Bank |
231457 | Gadaa Bank |
231418 | Global Bank Ethiopia s.c |
231444 | Goh Betoch |
231455 | H-Cash Wallet |
231463 | HALAL PAY |
231408 | Hibret Bank |
231427 | Hijra Bank |
231438 | KAAFI Micro Finance |
231442 | Kacha |
231409 | Nib Bank |
231475 | Nisir Microfinance Institution S.C |
231441 | One MFI |
231460 | Oromia Bank |
231467 | Rammis Bank |
231426 | Rays Micro Finance Institution |
231462 | SAHAL MICROFINANCE |
231436 | Shabelle Bank |
231461 | Sidama Bank |
231430 | Siinqee Bank |
231459 | Siket Bank |
231421 | Somali Micro Finanace |
231456 | Tsedey Bank |
231432 | TSEHAY BANK |
231465 | Vision Fund Micro Finance |
231407 | Wegagen Bank |
231466 | YaYa PII |
231428 | ZamZam Bank |
231412 | Zemen Bank |
United Kingdom
The UK is a name-match corridor: you supply the 8-digit account number, the 6-digit sort code (digits only, no dashes), and the name you expect on the account. The bank confirms whether the account exists and whether the name matches. It never discloses the registered name.
{
"country": "GB",
"accountNumber": "12345678",
"bankCode": "200000",
"accountName": "Jane Doe"
}verified: true: the name matched. TheaccountNamein the response is the name you submitted, confirmed against the bank's record.verified: false: the account was not found or the name did not match.accountNameis omitted.
Warning
A failed name-match still returns HTTP 200 with status: success. The check itself ran successfully. Branch on verified, not on status.
China
China is also a name-match corridor and supports two account types via accountHolderType:
INDIVIDUAL: a UnionPay card number (16–19 digits, starting with62)BUSINESS: a corporate account; theidentifiersarray must include aBUSINESS_REGISTRATIONentry carrying the company's 18-character Uniform Credit Code
bankCode is the bank's BIC/SWIFT code (8 or 11 characters).
{
"country": "CN",
"accountHolderType": "INDIVIDUAL",
"accountNumber": "6228480402564890018",
"bankCode": "ABOCCNBJ",
"accountName": "王明"
}{
"country": "CN",
"accountHolderType": "BUSINESS",
"accountNumber": "321872160000",
"bankCode": "ABOCCNBJ",
"accountName": "Beijing Apple and Orange Company",
"identifiers": [
{ "type": "BUSINESS_REGISTRATION", "value": "91111111ABCXYZ123" }
]
}Missing required fields (accountHolderType, or the BUSINESS_REGISTRATION identifier on a business account) return VALIDATION_ERROR.
Warning
As with the UK, a failed name-match returns HTTP 200 with status: success and verified: false. Branch on verified.