IBAN Checker & Validator

Paste an IBAN and get a verdict with the exact reason — wrong length for the country, failed MOD-97 checksum, bad characters, or unknown country code — plus a decode of its structure. One point matters more than any feature: validation happens in this tab; your account number is never sent anywhere — verify it yourself by going offline. Most IBAN checkers send the number to a server and then promise not to store it. This page never transmits it at all: there is no request to promise anything about.

An IBAN is validated by checking the country-specific length and running the MOD-97 checksum: move the first four characters to the end, convert letters to numbers (A=10…Z=35), and the number must leave remainder 1 when divided by 97. GB82 WEST 1234 5698 7654 32 → WEST…32 + GB82 → 3214282912345698765432161182 → mod 97 = 1 ✓
[ Ad slot — replace with AdSense / Ezoic code ]

Batch IBAN validation

Paste a list — one IBAN per line — or drop a .csv/.txt file (first column is used). Every line is validated locally; nothing in the list leaves this tab.

Cleaning a messy export first? The CSV splitter breaks a large file into manageable parts, and the CSV to JSON converter turns the results CSV from this page into JSON for whatever comes next.

How IBAN validation works — worked example

The check that makes an IBAN self-verifying is the MOD-97 algorithm from ISO 7064, run over a rearranged copy of the number. Take GB82 WEST 1234 5698 7654 32:

  1. Normalize: strip spaces, uppercase → GB82WEST12345698765432. Check the country length: GB IBANs are 22 characters, and this is 22. ✓
  2. Rearrange: move the first four characters (country code + check digits) to the end → WEST12345698765432GB82.
  3. Convert letters to numbers (A=10, B=11 … Z=35): W=32, E=14, S=28, T=29, G=16, B=11 → 3214282912345698765432161182.
  4. Divide by 97. The number is far too large for ordinary calculator or floating-point arithmetic, so it's processed in chunks, carrying the remainder forward:
StepRemainder so far + next chunkmod 97
1321428290
290 · 9123456 → 90912345674
374 · 9876543 → 7498765431
41 · 2161182 → 121611821

The final remainder is 1, so the IBAN is structurally valid. Any single-character typo — a swapped digit, a mistyped letter — changes the remainder and the check fails, which is the entire point: the two check digits after the country code were chosen when the IBAN was issued precisely so that correct IBANs leave remainder 1. This chunked method is also how this page computes it internally, because a 34-character IBAN converts to a number of 40+ digits — beyond what floating-point arithmetic can hold exactly, and a validator that divides it naively will pass and fail the wrong IBANs.

Country formats and lengths

Each country registers a fixed IBAN length and structure in the public ISO 13616 registry. Length is the first thing checked, and a wrong-length IBAN is reported as exactly that — before the checksum even runs. A representative sample:

CountryLengthCountryLength
Norway (NO)15Austria (AT)20
Belgium (BE)16Switzerland (CH)21
Netherlands (NL)18Germany (DE)22
Denmark (DK)18United Kingdom (GB)22
Finland (FI)18Ireland (IE)22
Czechia (CZ)24United Arab Emirates (AE)23
Spain (ES)24Saudi Arabia (SA)24
Sweden (SE)24Romania (RO)24
Portugal (PT)25Turkey (TR)26
France (FR)27Italy (IT)27
Greece (GR)27Poland (PL)28

Those are registry facts, not editorial choices — and the tool itself supports every country in the registry, not just this sample. For countries where the registry defines named positions inside the BBAN (bank code, branch code, account number), the decoder labels those segments by position. Labels only: this page contains no bank directory and never claims to know which institution a code belongs to.

[ Ad slot — replace with AdSense / Ezoic code ]

Swift code validation — BIC format check

A BIC (also called a SWIFT code) identifies an institution for international transfers, and its structure is defined by ISO 9362: 8 or 11 characters — a 4-letter institution code, a 2-letter country code, a 2-character location code, and an optional 3-character branch code. This section checks that structure:

Format check only — a structurally valid BIC is not proof the code is assigned to a real institution. Existence requires the licensed directory, which no free tool legitimately has; a site claiming to "verify" a BIC for free is either checking the same structure this page checks or reselling directory access it may not have. Structure is what can be checked honestly, so structure is what's checked here.

Valid ≠ exists — what an IBAN checker can and cannot tell you

Everything on this page is format validation. A remainder of 1 proves the IBAN is well-formed — the kind of number a bank could have issued — and catches essentially all typos. It does not prove the account exists, is open, or belongs to the person you think it does. When you verify an IBAN before a payment, format is step one; step two is always confirming the number and the account holder's name with the recipient through a channel you trust, because a fraudster's IBAN validates exactly as well as your supplier's. Banks in some regions run name-matching services at payment time for the same reason; a web page — this one or any other — cannot do that, and it's worth being suspicious of any that claims to.

Privacy: verified offline, not promised

Validation happens in this tab; your account number is never sent anywhere — verify it yourself by going offline. Load this page, disconnect from the internet, and paste the IBAN: everything still works, because the length rules, the registry data, and the MOD-97 arithmetic are all JavaScript already in your browser. Your browser's network inspector will show no request carrying your input.

This is not a small distinction. An IBAN is real financial data, and the standard design for online validators is to POST it to a server, validate it there, and display the result — with a privacy policy assuring you the number wasn't logged. That assurance is unverifiable from your side of the connection. "We never receive it" is verifiable, in about ten seconds, with airplane mode. That is the standard this site holds every tool to, and for a page that handles bank account numbers it is the headline feature, not a footnote.

Related tools

Frequently asked questions

Is my IBAN uploaded to a server?

No. There is no upload endpoint on this page — the length rules and the MOD-97 arithmetic run as JavaScript in this tab. You can verify it rather than take it on trust: load the page, go offline, and validate. It keeps working.

The tool says my IBAN is valid. Does the account exist?

Not necessarily. Valid means the length matches the country's registered format and the MOD-97 checksum passes — the number is well-formed. Whether that account exists, is open, or belongs to the right person can only be confirmed by the recipient or a bank. Always confirm before sending money.

Why does the checker say "wrong length" instead of just "invalid"?

Because the reason is the useful part. A wrong-length IBAN usually means a missing or extra character from copy-paste; a right-length IBAN that fails MOD-97 usually means a single mistyped character. Knowing which mistake you're hunting for saves time.

Can this tool tell me which bank an IBAN belongs to?

No, deliberately. For some countries it labels the position of the bank-code segment inside the IBAN, because those positions are public registry facts — but mapping that code to an institution's name requires directory data this page doesn't contain. A tool that names banks is querying a directory, which means your IBAN went to a server.

Does batch mode have a size limit?

No fixed limit — validation is fast enough that tens of thousands of lines process in well under a second, since each check is a length lookup and one pass of chunked arithmetic. Everything stays in the tab regardless of size.

Is the BIC/SWIFT check the same kind of validation?

It's a structure check against ISO 9362 — 8 or 11 characters in the defined pattern. Unlike an IBAN, a BIC has no checksum, so structure is all any tool can mathematically verify. Existence checks require the licensed directory.