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 | 3-letter bank code (e.g. GTB) | — |
| Kenya | KE | Standard | 2-digit bank code (e.g. 01) | — |
| Zambia | ZM | Standard | 3-digit code | — |
| Tanzania | TZ | Standard | 3-digit code | — |
| Ethiopia | ET | Standard | 6-digit code | — |
| Uganda | UG | Standard | BIC | accountName |
| South Africa | ZA | Standard | 6-digit branch code | accountName (account-existence check) |
| United Kingdom | GB | 8 digits | 6-digit sort code | accountName |
| China | CN | UnionPay card or corporate account | BIC/SWIFT | accountName, accountHolderType, identifiers (business) |
| India | IN | Standard | 11-character IFSC | accountName |
| Indonesia | ID | Standard | BIC | accountName |
| Vietnam | VN | Standard | BIC | accountName |
| Nepal | NP | Standard | BIC | accountName |
| Pakistan | PK | Standard | BIC | accountName |
| South Korea | KR | Standard | BIC | accountName |
| Bangladesh | BD | Standard | BIC | accountName |
| Malaysia | MY | Standard | BIC | accountName |
| Thailand | TH | Standard | BIC | accountName (account-existence check) |
| Philippines | PH | Standard | BIC | accountName (format/syntax check) |
| Brazil | BR | Standard | — (IBAN) | accountName, CPF/CNPJ |
| Mexico | MX | Standard | — (CLABE) | accountName |
| Argentina | AR | Standard | — (CBU) | accountName |
| Peru | PE | Standard | — (CCI) | accountName |
| Uruguay | UY | Standard | BIC | accountName |
| Chile | CL | Standard | BIC or local code | accountName, RUT |
| Colombia | CO | Standard | BIC or local code | accountName, CC/NIT |
| Ecuador | EC | Standard | BIC or local code | accountName, CC/RUC |
| Europe (SEPA) | AT BE BG HR CY EE FI FR DE GR IE IT LV LT LU MT NL PT SK SI ES | IBAN | — (IBAN) | accountName |
| United Arab Emirates | AE | IBAN | — (IBAN) | accountName |
| Australia | AU | Standard | 6-digit BSB | accountName |
| United States | US | Standard | 9-digit ABA routing number | accountName |
Note
mode: "async" is supported for NG and ZM only. Every other corridor is synchronous only — each 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
The accountNumber must be exactly 10 digits (NUBAN). A request with a shorter or longer account number is rejected with a 422 validation error.
Legacy 3-digit bank codes (e.g. 044) are not accepted either. 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 full list at runtime with your API key:
curl https://api.uselira.com/api/v1/client/countries/NG/banks \
-H "X-API-Key: YOUR_API_KEY"Common codes are listed below.
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 3-letter bankCode (e.g. GTB).
{
"accountNumber": "1234567890",
"country": "GH",
"bankCode": "GTB"
}Note
Ghana returns accountName, bankCode, and bankName only, with no address fields (state, lga). mode: "async" is not supported for Ghana; all GH verifications are synchronous.
Fetch the full list at runtime with your API key:
curl https://api.uselira.com/api/v1/client/countries/GH/banks \
-H "X-API-Key: YOUR_API_KEY"Supported bank codes are listed below.
Supported Ghanaian bank codes
bankCode | Bank |
|---|---|
ACB | Access Bank |
ADB | Agricultural Development Bank |
BOA | Bank of Africa |
BBG | Absa Bank |
CAL | CAL Bank |
ECB | Ecobank |
ENE | Energy Bank |
FBN | FBN Bank |
FID | Fidelity Bank |
FAB | First Atlantic Bank |
FNB | First National Bank |
GCB | GCB Bank |
GTB | Guaranty Trust Bank |
REP | Republic Bank |
NIB | National Investment Bank |
PRU | Prudential Bank |
SOC | Société Générale |
STA | Stanbic Bank |
STB | Standard Chartered Bank |
UBA | United Bank for Africa |
UMB | Universal Merchant Bank |
ZEN | Zenith Bank |
OMN | OmniBSIC Bank |
BOG | Bank of Ghana |
ARB | ARB Apex Bank |
CBG | Consolidated Bank Ghana |
GHL | GHL Bank |
Sandbox: account 1000000001 with bank code GCB returns a predictable success.
Kenya
Standard account number plus the bank's 2-digit code (e.g. 01 for KCB). Returns accountName, bankCode, and bankName, with no address fields.
{
"accountNumber": "1234567890",
"country": "KE",
"bankCode": "01"
}Note
mode: "async" is not supported for Kenya; all KE verifications are synchronous.
Supported Kenyan banks
bankCode | Bank |
|---|---|
01 | KCB |
02 | Standard Chartered Bank |
03 | Absa Bank |
04 | Bank of India |
05 | Bank of Baroda |
06 | NCBA |
07 | Prime Bank |
08 | Co-operative Bank |
09 | National Bank |
10 | M-Oriental |
11 | Citi Bank |
12 | Habib Bank AG Zurich |
13 | Middle East Bank |
14 | Bank of Africa |
15 | Consolidated Bank |
16 | Credit Bank |
17 | Access Bank |
18 | Stanbic Bank |
19 | ABC Bank |
20 | Eco Bank |
21 | SPIRE Bank |
22 | Paramount Bank |
23 | Kingdom Bank |
24 | Guaranty Trust Bank |
25 | Victoria Bank |
26 | Guardian Bank |
27 | I&M Bank |
28 | Development Bank |
29 | SBM |
30 | Housing Finance |
31 | Diamond Trust Bank |
32 | Mayfair Bank |
33 | Sidian Bank |
34 | Equity Bank |
35 | Family Bank |
36 | Gulf African Bank |
37 | First Community Bank |
38 | DIB Bank |
39 | UBA Bank |
40 | KWFT |
41 | Faulu Bank |
42 | Post Bank |
Sandbox: account 1000000011 with bank code 01 returns a predictable success (accountName: "Sandbox Wambui").
Kenya also supports M-Pesa verification (Lipa Na M-Pesa and M-Pesa Agent) — see Mobile Money.
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 |
Uganda
Uganda is a name-match corridor: supply the account number, the bank BIC as bankCode, and the accountName to match.
{ "country": "UG", "accountNumber": "9030012345678", "bankCode": "EQBLUGKA", "accountName": "Sandbox Nakato" }A successful match returns status: "success" with verified: true. A mismatch or not-found returns status: "success" with verified: false — branch on verified, not on status.
Sandbox: account 1400000001 with bank code EQBLUGKA returns a predictable success.
South Africa
South Africa is an account-existence corridor. It confirms whether the account exists; it does not perform a name match. Supply the account number, the 6-digit branch code as bankCode, and the accountName (sent for a consistent request shape).
{ "country": "ZA", "accountNumber": "9999978653", "bankCode": "198605", "accountName": "Sandbox van der Merwe" }verified: true means the account exists. The response does not include a match_score.
Sandbox: account 2500000001 with bank code 250655 returns a predictable existence confirmation.
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 a name-match corridor. Set accountHolderType to INDIVIDUAL and supply a UnionPay card number (16–19 digits, starting with 62).
{
"country": "CN",
"accountHolderType": "INDIVIDUAL",
"accountNumber": "6228480402564890018",
"bankCode": "CN-INDIV",
"accountName": "王明"
}Warning
Business accounts are not currently supported for China. A request with accountHolderType: "BUSINESS" returns VALIDATION_ERROR. Only INDIVIDUAL accounts are supported.
Missing or unsupported accountHolderType returns VALIDATION_ERROR.
Warning
As with the UK, a failed name-match returns HTTP 200 with status: success and verified: false. Branch on verified.
India
India is a name-match corridor. Supply the account number, the 11-character IFSC code as bankCode, and the accountName.
{ "country": "IN", "accountNumber": "1001000001", "bankCode": "HDFC0000001", "accountName": "Arjun Kumar" }A successful match returns status: "success" with verified: true; branch on verified, not status.
Indonesia
Indonesia is a name-match corridor: supply the account number, the bank BIC as bankCode, and the accountName to match.
{ "country": "ID", "accountNumber": "2002000001", "bankCode": "BMRIIDJA", "accountName": "Budi Santoso" }A successful match returns status: "success" with verified: true. A mismatch or not-found returns status: "success" with verified: false — branch on verified, not on status.
Vietnam
Vietnam is a name-match corridor: supply the account number, the bank BIC as bankCode, and the accountName to match.
{ "country": "VN", "accountNumber": "3003000001", "bankCode": "BFTVVNVX", "accountName": "Nguyen Van A" }A successful match returns status: "success" with verified: true. A mismatch or not-found returns status: "success" with verified: false — branch on verified, not on status.
Nepal
Nepal is a name-match corridor: supply the account number, the bank BIC as bankCode, and the accountName to match.
{ "country": "NP", "accountNumber": "4004000001", "bankCode": "NABLNPKA", "accountName": "Ram Bahadur" }A successful match returns status: "success" with verified: true. A mismatch or not-found returns status: "success" with verified: false — branch on verified, not on status.
Pakistan
Pakistan is a name-match corridor: supply the account number, the bank BIC as bankCode, and the accountName to match.
{ "country": "PK", "accountNumber": "5005000001", "bankCode": "HABBPKKA", "accountName": "Ali Raza" }A successful match returns status: "success" with verified: true. A mismatch or not-found returns status: "success" with verified: false — branch on verified, not on status.
South Korea
South Korea is a name-match corridor: supply the account number, the bank BIC as bankCode, and the accountName to match.
{ "country": "KR", "accountNumber": "6006000001", "bankCode": "CZNBKRSE", "accountName": "Kim Min Jun" }A successful match returns status: "success" with verified: true. A mismatch or not-found returns status: "success" with verified: false — branch on verified, not on status.
Bangladesh
Bangladesh is a name-match corridor: supply the account number, the bank BIC as bankCode, and the accountName to match.
{ "country": "BD", "accountNumber": "7007000001", "bankCode": "MTBLBDDH", "accountName": "Rahim Uddin" }A successful match returns status: "success" with verified: true. A mismatch or not-found returns status: "success" with verified: false — branch on verified, not on status.
Malaysia
Malaysia is a name-match corridor: supply the account number, the bank BIC as bankCode, and the accountName to match.
{ "country": "MY", "accountNumber": "8008000001", "bankCode": "MBBEMYKL", "accountName": "Tan Wei Ming" }A successful match returns status: "success" with verified: true. A mismatch or not-found returns status: "success" with verified: false — branch on verified, not on status.
Thailand
Thailand is an account-existence corridor. It confirms whether the account exists; it does not perform a name match. accountName is still sent for a consistent request shape, but verified: true means the account exists, not that the name matched.
{ "country": "TH", "accountNumber": "9009000001", "bankCode": "BKKBTHBK", "accountName": "Somchai P" }Philippines
Philippines is a format/syntax corridor. It validates the structure of the account; it does not confirm ownership or match a name. verified: true means the account format is valid.
{ "country": "PH", "accountNumber": "1010000001", "bankCode": "BOPIPHMM", "accountName": "Jose Cruz" }Brazil
Brazil is a name-match corridor. Supply the IBAN as accountNumber, the holder's tax ID in identifiers — a CPF (individuals) or CNPJ (companies) — and the accountName. No bankCode is required; the routing is embedded in the IBAN.
{ "country": "BR", "accountNumber": "BR850000000000000000000000001", "accountName": "Maria Silva", "identifiers": [{ "type": "CPF", "value": "00000000000" }] }A successful match returns status: "success" with verified: true. A mismatch or not-found returns status: "success" with verified: false — branch on verified, not on status.
Mexico
Mexico is a name-match corridor. Supply the 18-digit CLABE as accountNumber and the accountName. No bankCode is required; the CLABE encodes the destination bank.
{ "country": "MX", "accountNumber": "000000000000000013", "accountName": "Juan Perez" }A successful match returns status: "success" with verified: true; branch on verified, not on status.
Argentina
Argentina is a name-match corridor. Supply the 22-digit CBU as accountNumber and the accountName. No bankCode is required; the CBU encodes the destination bank.
{ "country": "AR", "accountNumber": "0000000000000000000000", "accountName": "Ana Gomez" }A successful match returns status: "success" with verified: true; branch on verified, not on status.
Peru
Peru is a name-match corridor. Supply the 20-digit CCI (Código de Cuenta Interbancario) as accountNumber and the accountName. No bankCode is required.
{ "country": "PE", "accountNumber": "00000000000000000020", "accountName": "Luis Diaz" }A successful match returns status: "success" with verified: true; branch on verified, not on status.
Uruguay
Uruguay is a name-match corridor. Supply the account number, the bank BIC as bankCode, and the accountName to match.
{ "country": "UY", "accountNumber": "UY0000000001", "bankCode": "BROUUYMM", "accountName": "Sofia Sosa" }A successful match returns status: "success" with verified: true; branch on verified, not on status.
Chile
Chile is a name-match corridor. Supply the account number, the bank's BIC or local clearing code as bankCode, the holder's RUT in identifiers, and the accountName.
{ "country": "CL", "accountNumber": "CL0000000001", "bankCode": "BCHICLRM", "accountName": "Maria Soto", "identifiers": [{ "type": "RUT", "value": "000000000" }] }A successful match returns status: "success" with verified: true; branch on verified, not on status.
Colombia
Colombia is a name-match corridor. Supply the account number, the bank's BIC or local clearing code as bankCode, the holder's CC (individuals) or NIT (companies) in identifiers, and the accountName.
{ "country": "CO", "accountNumber": "CO0000000001", "bankCode": "COLOCOBM", "accountName": "Carlos Ruiz", "identifiers": [{ "type": "NIT", "value": "900000000" }] }A successful match returns status: "success" with verified: true; branch on verified, not on status.
Ecuador
Ecuador is a name-match corridor. Supply the account number, the bank's BIC or local clearing code as bankCode, the holder's CC or RUC in identifiers, and the accountName.
{ "country": "EC", "accountNumber": "EC0000000001", "bankCode": "PICHECEQ", "accountName": "Pedro Mora", "identifiers": [{ "type": "RUC", "value": "0000000000001" }] }A successful match returns status: "success" with verified: true; branch on verified, not on status.
Europe (SEPA)
Europe is a single name-match corridor covering 21 SEPA / Eurozone countries: Austria (AT), Belgium (BE), Bulgaria (BG), Croatia (HR), Cyprus (CY), Estonia (EE), Finland (FI), France (FR), Germany (DE), Greece (GR), Ireland (IE), Italy (IT), Latvia (LV), Lithuania (LT), Luxembourg (LU), Malta (MT), Netherlands (NL), Portugal (PT), Slovakia (SK), Slovenia (SI), and Spain (ES).
Supply the IBAN as accountNumber, the country (the IBAN's country), and the accountName to match. No bankCode is required — the IBAN carries the routing. EUR accounts only.
{ "country": "DE", "accountNumber": "DE89370400440532013000", "accountName": "Erika Mustermann" }A strong name match returns status: "success" with verified: true; a partial/weak match or a not-found account returns status: "success" with verified: false — branch on verified, not on status. On verified: true the response echoes back the accountName you submitted; this corridor does not disclose a separately sourced account name. Every SEPA corridor is synchronous only (mode: "async" is not supported).
United Arab Emirates
The UAE is a name-match corridor. Supply the IBAN as accountNumber, the country (AE), and the accountName to match. No bankCode is required — the IBAN carries the routing. AED accounts only.
{ "country": "AE", "accountNumber": "AE070331234567890123456", "accountName": "Ahmed Al Mansoori" }A successful match returns status: "success" with verified: true; branch on verified, not on status. On verified: true the response echoes back the accountName you submitted — this corridor does not disclose a separately sourced account name. The UAE corridor is synchronous only (mode: "async" is not supported).
Australia
Australia is a name-match corridor. Supply the account number, the 6-digit BSB (Bank State Branch code) as bankCode, and the accountName to match. AUD accounts only.
{ "country": "AU", "accountNumber": "123456789", "bankCode": "062000", "accountName": "Emily Chen" }A successful match returns status: "success" with verified: true; branch on verified, not on status. On verified: true the response echoes back the accountName you submitted — this corridor does not disclose a separately sourced account name. The Australia corridor is synchronous only (mode: "async" is not supported).
United States
The United States is a name-match corridor. Supply the account number, the 9-digit ABA routing number as bankCode, and the accountName to match. USD accounts only.
{ "country": "US", "accountNumber": "123456789012", "bankCode": "021000021", "accountName": "Jane Smith" }A successful match returns status: "success" with verified: true; branch on verified, not on status. On verified: true the response echoes back the accountName you submitted — this corridor does not disclose a separately sourced account name. The United States corridor is synchronous only (mode: "async" is not supported).
Sandbox: account 20000001 with ABA routing number 123456789 returns a predictable success.