What Is a BSB Number, and How Do You Check One?
An Australian BSB — Bank State Branch — is the six-digit code that routes a payment to the right bank and branch, and it trips people up because, unlike most identifiers, it has no check digit. You can't validate a BSB with arithmetic. Here's what the number actually means and how to check one properly.
What the six digits encode
A BSB is written as XXX-XXX and breaks down like this:
- First digit — the bank/institution group.
- First two or three digits — identify the specific financial institution.
06is Commonwealth Bank,03/73is Westpac,01is ANZ,08is NAB, and so on. - Remaining digits — identify the state and the individual branch.
Because the meaning is assigned, not computed, there's no checksum to run. A BSB is valid only if it actually appears in the official register that APCA (now AusPayNet) publishes — the list of every allocated BSB and the branch it belongs to.
Why "BSB validation" is really a lookup
This is the key difference from an ABN, TFN, or ACN. Those have a checksum, so you can tell a well-formed number from a malformed one with math alone. A BSB has none — 999-999 is a perfectly plausible-looking six digits that simply isn't allocated to anyone. So checking a BSB means two things:
- Format — exactly six digits, usually shown as
XXX-XXX. - Allocation — the prefix maps to a real institution, and ideally the full code exists in the register.
A tool can confirm the format and identify the bank from the prefix instantly; confirming the exact branch requires the current register.
Testing payment forms
When you're testing a form that captures a BSB, you want real, well-known prefixes so your institution-lookup logic has something to match (e.g. 062-000 for CBA). Inventing a random six digits will often "pass format" but map to no bank, which is useful for testing your rejection path. Keep both kinds in your fixtures: valid-prefix codes for the happy path, unallocated ones for the error path.
Try it
The Australian BSB Validator checks a BSB's format and identifies the bank from its prefix, entirely in your browser with nothing sent to a server. If you also handle NZ payments, the New Zealand bank account validator covers that format.
Hanuman Singh · built snaptxt.app · hanumansingh.dev