IBAN Checker
Enter an IBAN – with or without spaces, upper or lower case. The tool checks the country, length, structure and check digits according to ISO 13616 and shows the IBAN in readable groups of four. For German IBANs it also names the bank and BIC from the Deutsche Bundesbank sort code file.
Source: ISO 13616-1, ISO 13616-1:2020 – Financial services – International bank account number (IBAN) – Part 1: Structure of the IBAN. Updated: .
How it is calculated
Your IBAN stays on your device. The check runs entirely in your browser; the input is not added to the address bar and not stored. For German IBANs, a public list of bank codes is downloaded once and searched locally.
How an IBAN is structured
The IBAN (International Bank Account Number) is defined in ISO 13616: a two-letter country code, two check digits, then the national account number (BBAN). Each country sets the length and layout of its BBAN; SWIFT, the official registration authority, publishes them in the IBAN Registry. A UK IBAN always has 22 characters: GB + 2 check digits + 4-letter bank code + 6-digit sort code + 8-digit account number. Germany also has 22, Ireland 22, France 27, Malta 31.
How the check digits are calculated (modulo 97)
- Move the first four characters (country + check digits) to the end:
NWBK60161331926819GB29 - Replace letters with numbers (A = 10, B = 11 … Z = 35), so N = 23, W = 32, B = 11, K = 20, G = 16:
2332112060161331926819161129 - Divide that number by 97. If the remainder is 1, the check digits are correct.
This method (ISO/IEC 7064, MOD 97-10) catches every single-character error and almost all swapped digits. The check digits themselves are 98 minus the remainder you get with “00” in their place.
What the result means – and what it doesn’t
- Valid means the IBAN is formally correct. Whether the account exists, is open and who owns it can only be confirmed by the bank when a payment is made (payee verification / Confirmation of Payee).
- Bank and BIC are shown for German IBANs only, from the Deutsche Bundesbank sort code file (head office per bank code). There is no freely usable worldwide list. SEPA transfers no longer require a BIC.
- Some countries add their own check digits inside the account number (e.g. Belgium, Spain, Norway). The tool does not run those national checks.
Example: The sample IBAN DE89 3704 0044 0532 0130 00 is valid: rearranged, 370400440532013000131489 modulo 97 equals exactly 1. Change only the last digit to 1 and the tool reports a wrong check digit – the correct one would then be 62 instead of 89.
More validators: the EU VAT number checker, the Luhn algorithm checker for card and IMEI numbers, and an invoice generator that uses your IBAN and BIC.
Frequently asked questions
Is it safe to enter my IBAN here?
Yes. The check runs only in your browser; the IBAN is not sent, not stored and does not appear in the address bar. An IBAN is not a secret anyway – it is printed on every invoice – but here it never leaves your device.
Does “valid” mean the account exists?
No. Only length, structure and check digits are verified. A formally valid IBAN can belong to an account that does not (or no longer) exist. Banks in the euro area have also been matching the payee name against the IBAN since October 2025, and UK banks use Confirmation of Payee.
How do I find the BIC for an IBAN?
For German IBANs, the tool shows the BIC of the bank code from the Bundesbank sort code file. For other countries there is no freely usable complete list – the BIC is on your bank statement or in online banking.
How many characters does an IBAN have?
It depends on the country: UK and Germany 22, Austria 20, Switzerland 21, France and Italy 27, Norway 15 (the shortest), Russia 33 (the longest). The tool shows the required length from the SWIFT IBAN Registry.
Does the US use IBANs?
No. The United States, Canada and Australia do not use IBANs; payments there use routing or BSB numbers plus an account number. If you enter a code like “US…”, the tool reports an unknown IBAN country.
Sources and legal basis
- ISO 13616-1: ISO 13616-1:2020 – Financial services – International bank account number (IBAN) – Part 1: Structure of the IBAN
- ISO/IEC 7064: ISO/IEC 7064:2003 – Check character systems (MOD 97-10)
- SWIFT – IBAN Registry (ISO 13616 Registration Authority), Release 101: Länder, Längen, BBAN-Struktur, Beispiele
- Source: Deutsche Bundesbank – Bank sort code file (download, valid 07.09.2026–06.12.2026)
As of: · Editorial policy
Related tools
- EU VAT Number Checker (Format and Check Digit)Check the format and check digit of an EU VAT number for all 27 member states and Northern Ireland (XI). Runs locally, with links to VIES for validation.
- Luhn algorithm checker: validate and calculate check digitsValidate numbers with the Luhn algorithm (mod 10, ISO/IEC 7812-1) or calculate the check digit – format check only, runs locally in your browser.
- EAN and ISBN check digit calculator and validator (GTIN)Validate EAN-8, EAN-13, UPC-A, GTIN-14 and ISBN-10/13 check digits, calculate a missing check digit and convert ISBN-10 to ISBN-13 – free, in your browser.
- Regex TesterTest JavaScript regular expressions live: matches highlighted, capture groups in a table, every part of the pattern explained. Free, nothing uploaded.
- What is my IP address?What is my IP? See your public IPv4 or IPv6 address at once, plus approximate location, internet provider and browser details. Free, never stored.
- JSON to TypeScript converterConvert JSON to TypeScript: generate types, interfaces or JSON Schema from sample data, with optional fields. Runs in your browser, no upload.
- CSV to SQL converterConvert CSV to SQL: generate CREATE TABLE and INSERT statements for MySQL, PostgreSQL, SQLite or SQL Server. Types detected, in your browser, no upload.
- Syntax HighlighterSyntax highlighter online: paste code, pick colors for JavaScript, JSON, HTML, CSS, SQL, Python or Bash and copy highlighted HTML for a blog, email or Word.
- JSON Escape / UnescapeJSON escape and unescape online: turn any text into a valid JSON string with escaped quotes, backslashes and line breaks, or decode it back – in your browser.