The name disagrees with the routing
A record read CITIBANK N.A; the employee banked at CITY BANK PLC. Two banks, four characters apart. The first three digits settle it — nobody else would have.
Bangladesh · BEFTN
Look up any BD routing number — or check that the one you already store is real, payable, and actually belongs to the bank whose name sits next to it. Every row here is traceable to the page it was read from and the date it was read.
Lookup
Have the number? Type it and watch it come apart into bank, district and branch. Don’t have it? Pick your bank, district and branch instead — a BD routing number is those three things, so it works in either direction.
All 63 institutions, including those no salary can be paid to.
Only the districts this bank actually has a branch in.
Pick a branch and its routing number appears below.
Why a lookup is the boring part
Each of these reached a live payroll product before it was found. Every example below runs in the box above.
A record read CITIBANK N.A; the employee banked at CITY BANK PLC. Two banks, four characters apart. The first three digits settle it — nobody else would have.
TRUNCATION POINT, RTGS-*, CLEARING HOUSE, AGENT BANKING sit in the official table and look exactly like branches in a dropdown. A salary cannot be paid into any of them. 96 were selectable.
Bangladesh Bank's clearing points and the Controller General of Accounts' ministry units are real routing numbers nobody holds an account at. Carried here, flagged, so a lookup answers instead of shrugging.
UCB's own locator prints 215761333 for its Kashinathpur branch. 215 is Standard Chartered. The district digits are right, so the branch is real and only the prefix is wrong — and the obvious repair appears in no source, so it is not here.
Coverage
Select a row to list its branches. Two banks are carried but flagged unpayable — they are real routing numbers that no salary can reach.
| Status |
|---|
Provenance
Two kinds of source, recorded per bank rather than blurred into one number.
The BACH table — the consolidated routing list dated 26.06.2025, published by Dhaka Bank PLC — is used additively, for banks that publish no routing numbers themselves. It is a snapshot, so it is never treated as authority for a branch being absent.
Cross-checking the whole set against that table: 99.4% corroborated, zero contradictions — no routing is filed here under a different bank than the table files it under.
The 0.6% are branches opened since June 2025, or published by a bank and not yet in the consolidated list. Absence from a snapshot is not evidence.
An invented routing number does not fail. It is well-formed, passes every structural check, and pays a real account belonging to someone else. So where the evidence runs out, the row is left out:
Questions
The things people actually need to know before they trust a nine-digit number.
A Bangladeshi routing number is a nine-digit code that identifies one specific bank branch for BEFTN and EFT transfers. It is issued by Bangladesh Bank and is not the same as a SWIFT or BIC code, which identifies a bank internationally rather than a branch.
Nine. The structure is bank (3 digits) + district (2 digits) + branch (3 digits) + a check digit. For example 225150135 is City Bank PLC (225), Chattogram district (15), branch 013, check digit 5.
It is printed on the bottom of a cheque leaf, and most banks publish a branch list with routing numbers on their own website. You can also search this site by bank or branch name, or open the page for your bank to see every branch it has.
Yes — the first three digits are the bank itself, and digits 4 and 5 are the district. That makes a routing number checkable: if a record stores CITIBANK N.A next to a routing number starting 225, the record is wrong, because 225 is City Bank PLC.
No. A routing number is a nine-digit domestic code used for BEFTN and RTGS inside Bangladesh. A SWIFT/BIC code is 8 or 11 characters and is used for international transfers. Some banks also use their own internal branch codes, which are different again.
No. Some entries in the official routing table are settlement endpoints such as TRUNCATION POINT, CLEARING HOUSE, RTGS and CARD DIVISION, and Bangladesh Bank's own clearing points and the Controller General of Accounts' ministry units are real routing numbers nobody holds an account at. This site flags all of them.
Use it
Python and JavaScript are thin wrappers over the same canonical JSON, so they cannot drift on behaviour and the data cannot drift at all.
# Python
pip install bd-bank-routing
import bdbanks
bdbanks.lookup("225150135")
# Branch(routing='225150135', name='Agrabad Branch',
# district='CHATTOGRAM', bank_code='225',
# bank_name='CITY BANK PLC', payable=True)
bdbanks.check("225150135", bank_name="Citibank N.A").ok
# False
// JavaScript / TypeScript
npm install bd-bank-routing
import { lookup, check } from "bd-bank-routing";
lookup("225150135")?.bankName;
// "CITY BANK PLC"
check("225150135", "Citibank N.A").ok;
// false
data/banks.json and use it however you like — it is the same
file both packages ship, it has no dependencies, and the data is
CC0. Code is MIT.