Why check a whole list
Supplier files, payroll exports and customer forms collect bank details typed by hand. One wrong character can bounce a payment days later, with fees on the way out and back. Checking the column before a payment run takes seconds, and the browser does all the work: nothing is uploaded, which matters when the file holds other people's account numbers.
What you can paste
- One code per line. Each line is recognized as an IBAN (longer than 11 characters, or starting with two letters and two digits) or as a BIC.
- An IBAN and a BIC on the same line, separated by a tab, comma, semicolon or vertical bar. That is what you get when you copy two adjacent columns from a spreadsheet. The row is then also checked as a pair.
- A header row such as "IBAN" or "BIC;IBAN" is skipped.
- Up to 2,000 rows.
What each row is checked against
| Code | Checks |
|---|---|
| BIC | 8 or 11 characters; letters in positions 1 to 6, letters or digits after that (the 4!a 2!a 2!c [3!c] format in SWIFT's policy); characters 5 and 6 a real ISO 3166-1 country code; position 8 = 0 flagged as a test and training code |
| IBAN | Country in the Swift IBAN Registry; exact length and pattern for that country; modulo 97 check digits |
| IBAN + BIC on one row | Same country; for countries whose IBAN holds a four-letter bank code, the same letters at the start of the BIC |
| Whole list | Repeated rows, marked "same as row N" |
Sources: Swift IBAN Registry, SWIFT BIC policy, Swift ISO 9362 information paper.
One code, start to finish
The list pre-filled above has ten rows. What the tool says about four of them:
| Row | Pasted | Result |
|---|---|---|
| 4 | GB82WEST12345698765423 | Fails: length and pattern fine for the UK, check digits do not add up; the reason lists the few positions to look at, including 21–22, where two digits are swapped |
| 5 | GB29NWBK60161331926819 (tab) NWBKGB2L | Passes as a pair: both GB, and NWBK appears in both |
| 7 | NWBK GB 2L | Passes: spaces are removed, NWBKGB2L is a valid shape |
| 9 | CHASUS33 | Passes, and flagged as the same as row 8 |
Row 10, AB12, fails with "Length is 4 characters: 4 too few for an 8-character code".
Using the result
- Show only rows with a problem to work through the failures.
- Copy rows with a problem puts row number, code and reason on the clipboard, tab-separated, ready to paste into an email to whoever owns the file.
- Download results (CSV) gives every row with its country and reason. Cells that start with =, +, - or @ are prefixed with an apostrophe so a spreadsheet does not run them as formulas.
What it cannot tell you
A row that passes is well formed. The code may still be unassigned or closed, and the account may belong to someone else. For a large payment run, confirm new or changed details with the payee by phone, and in the euro area use your bank's payee name check. If a row fails, do not "fix" an IBAN yourself by guessing a digit: a corrected-looking IBAN can be another person's real account. Ask for it again.
Single codes are easier in the BIC checker or the IBAN checker, which show each character.