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.
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.
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:
GB82WEST12345698765432. Check the country length: GB IBANs are 22 characters, and this is 22. ✓WEST12345698765432GB82.3214282912345698765432161182.| Step | Remainder so far + next chunk | mod 97 |
|---|---|---|
| 1 | 3214282 | 90 |
| 2 | 90 · 9123456 → 909123456 | 74 |
| 3 | 74 · 9876543 → 749876543 | 1 |
| 4 | 1 · 2161182 → 12161182 | 1 |
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.
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:
| Country | Length | Country | Length |
|---|---|---|---|
| Norway (NO) | 15 | Austria (AT) | 20 |
| Belgium (BE) | 16 | Switzerland (CH) | 21 |
| Netherlands (NL) | 18 | Germany (DE) | 22 |
| Denmark (DK) | 18 | United Kingdom (GB) | 22 |
| Finland (FI) | 18 | Ireland (IE) | 22 |
| Czechia (CZ) | 24 | United Arab Emirates (AE) | 23 |
| Spain (ES) | 24 | Saudi Arabia (SA) | 24 |
| Sweden (SE) | 24 | Romania (RO) | 24 |
| Portugal (PT) | 25 | Turkey (TR) | 26 |
| France (FR) | 27 | Italy (IT) | 27 |
| Greece (GR) | 27 | Poland (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.
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.
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.
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.
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.
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.
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.
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.
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.
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.