The Turkey IBAN Validator performs a rigorous structural check on any 26-character Turkish IBAN, going beyond a simple length test to decode each field, verify the reserved digit rule, and compute the full ISO 7064 MOD-97-10 checksum that underpins every IBAN worldwide. It also identifies the issuing bank by name where the 5-digit Banka Kodu is in the known registry.
The tool is aimed at developers building Turkish payment integrations, finance teams reconciling SEPA or SWIFT transfers to Turkish beneficiaries, and anyone who wants to understand why a Turkish IBAN passes or fails — not just that it does.
How a Turkish IBAN is structured
Turkey adopted the IBAN standard with a fixed total length of 26 characters. Every character has a defined role:
| Position | Length | Field |
|---|---|---|
| 1-2 | 2 | Country code: always TR |
| 3-4 | 2 | IBAN check digits (ISO 7064 MOD-97-10) |
| 5-9 | 5 | Banka Kodu (bank code, assigned by TBB) |
| 10 | 1 | Reserved digit (always 0) |
| 11-26 | 16 | Hesap No (account number) |
Characters 5 through 26 form the BBAN (Basic Bank Account Number) — all 22 of these characters must be decimal digits. Unlike the IBANs of France, Germany, or the UK, a Turkish IBAN contains no alphabetic characters in the BBAN.
Validation layers this tool applies
Layer 1 — Character and length check
After stripping spaces and uppercasing, the input must start with TR, contain only
letters A-Z and digits 0-9, and be exactly 26 characters. These checks catch the
most common transcription errors before the more expensive checksum computation runs.
Layer 2 — BBAN digit-only check
Positions 5 through 26 (the full BBAN) must consist entirely of decimal digits. A
Turkish IBAN never contains letters after the leading TR, so any alphabetic
character in the BBAN signals a transcription error or a foreign IBAN entered by
mistake.
Layer 3 — Reserved digit check
The 6th digit of the BBAN (9th character of the full IBAN) is a structural reserved
placeholder defined to be 0 by Turkish banking standards. This digit was set aside
to allow future format extensions without altering the 26-character total length. Any
value other than 0 here indicates the IBAN is not a genuine Turkish one.
Layer 4 — ISO 7064 MOD-97-10 checksum
This algorithm, defined in ISO 13616 and used by every IBAN-adopting country:
- Move the first four characters (
TR+ two check digits) to the end of the string. - Replace each letter with its two-digit numeric equivalent:
Tbecomes29,Rbecomes27. - The result is a long numeric string. Compute its value modulo 97, folding
progressively —
(remainder * 10 + digit) mod 97— to avoid overflow. - The IBAN is valid under this layer only if the remainder equals exactly 1.
Worked example
Take the publicly documented test IBAN TR33 0006 1005 1978 6457 8413 26
(all spaces removed: TR330006100519786457841326):
- Country code:
TR - IBAN check digits:
33 - Bank code:
00061— not in the short registry used by this tool, but still checksum-valid - Reserved digit:
0(correct) - Account number:
0519786457841326
For the MOD-97 check, rearrange by moving the first four characters to the end:
0006100519786457841326TR33. Expand T = 29, R = 27, and keep the digits
as-is: 0006100519786457841326292733. Fold that string through (r * 10 + d) mod 97
digit by digit — the final remainder is 1, so the checksum passes.
All four layers pass: the IBAN is structurally valid.
Privacy and offline use
All validation logic — character scanning, MOD-97 folding, bank code lookup — runs entirely inside your browser tab. No IBAN text, partial input, or timing signal is ever transmitted to any server. The page contains no analytics hooks that capture form input. You can open it once, disconnect from the internet, and it will continue to work identically, making it suitable for validating sensitive financial data subject to the Turkish Personal Data Protection Law (KVKK) or the EU General Data Protection Regulation (GDPR).