Bank detection
Find the bank behind a Turkish IBAN. No API: the bank is read from the bank code inside the number.
Try it
Type an IBAN; the bank shows up as soon as the last digit of the bank code is in, and its row is highlighted in the table.
Form value: -
Display: -
Bank: Waiting for the bank code
| Code | In the IBAN | Bank |
|---|---|---|
0001 | TR·· 0000 1… | T.C. MERKEZ BANKASI |
0004 | TR·· 0000 4… | İLLER BANKASI A.Ş. |
0010 | TR·· 0001 0… | T.C. ZİRAAT BANKASI A.Ş. |
0012 | TR·· 0001 2… | T. HALK BANKASI A.Ş. |
0014 | TR·· 0001 4… | T. SINAİ KALKINMA BANKASI A.Ş. |
0015 | TR·· 0001 5… | T. VAKIFLAR BANKASI T.A.O. |
0016 | TR·· 0001 6… | T. EXİMBANK |
0017 | TR·· 0001 7… | T. KALKINMA BANKASI A.Ş. |
0029 | TR·· 0002 9… | BİRLEŞİK FON BANKASI A.Ş. |
0032 | TR·· 0003 2… | T. EKONOMİ BANKASI A.Ş. |
0046 | TR·· 0004 6… | AKBANK T.A.Ş. |
0059 | TR·· 0005 9… | ŞEKERBANK T.A.Ş. |
0060 | TR·· 0006 0… | TÜRK TİCARET BANKASI A.Ş. |
0062 | TR·· 0006 2… | T. GARANTİ BANKASI A.Ş. |
0064 | TR·· 0006 4… | T. İŞ BANKASI A.Ş. |
0067 | TR·· 0006 7… | YAPI VE KREDİ BANKASI A.Ş. |
0091 | TR·· 0009 1… | ARAP TÜRK BANKASI |
0092 | TR·· 0009 2… | CITIBANK A.Ş. |
0096 | TR·· 0009 6… | FREEDOM BANK A.Ş. |
0098 | TR·· 0009 8… | JPMORGAN CHASE BANK N.A. |
0099 | TR·· 0009 9… | ING BANK A.Ş. |
0103 | TR·· 0010 3… | FİBABANKA A.Ş. |
0108 | TR·· 0010 8… | TURKLAND BANK A.S. |
0109 | TR·· 0010 9… | ICBC TURKEY BANK A.Ş. |
0111 | TR·· 0011 1… | QNB FİNANSBANK A.Ş. |
0115 | TR·· 0011 5… | DEUTSCHE BANK A.Ş. |
0116 | TR·· 0011 6… | PASHA YATIRIM BANK A.Ş. |
0121 | TR·· 0012 1… | STANDARD CHARTERED YATIRIM BANKASI TÜRK A.Ş. |
0122 | TR·· 0012 2… | SOCIETE GENERALE (SA) |
0123 | TR·· 0012 3… | HSBC BANK A.Ş. |
0124 | TR·· 0012 4… | ALTERNATİFBANK A.Ş. |
0125 | TR·· 0012 5… | BURGAN BANK A.Ş. |
0129 | TR·· 0012 9… | BANK OF AMERICA YATIRIM BANK A.Ş. |
0132 | TR·· 0013 2… | İSTANBUL TAKAS VE SAKLAMA BANK. A.Ş. |
0134 | TR·· 0013 4… | DENİZBANK A.Ş. |
0135 | TR·· 0013 5… | ANADOLUBANK A.Ş. |
0137 | TR·· 0013 7… | HEPSİ BANK A.Ş. |
0138 | TR·· 0013 8… | DİLER YATIRIM BANKASI A.Ş. |
0139 | TR·· 0013 9… | GSD YATIRIM BANKASI A.Ş. |
0141 | TR·· 0014 1… | NUROL YATIRIM BANKASI A.Ş. |
0142 | TR·· 0014 2… | BANKPOZİTİF KREDİ VE KALK.BANK.A.Ş. |
0143 | TR·· 0014 3… | AKTİF YATIRIM BANKASI A.Ş. |
0146 | TR·· 0014 6… | ODEA BANK A.Ş. |
0147 | TR·· 0014 7… | MUFG BANK TURKEY A.Ş. |
0148 | TR·· 0014 8… | INTESA SANPAOLO S.P.A. |
0149 | TR·· 0014 9… | BANK OF CHINA TURKEY A.Ş. |
0151 | TR·· 0015 1… | D YATIRIM BANKASI A.Ş. |
0152 | TR·· 0015 2… | DESTEK YATIRIM BANKASI A.Ş. |
0153 | TR·· 0015 3… | MİSYON YATIRIM BANKASI A.Ş. |
0154 | TR·· 0015 4… | TERA YATIRIM BANKASI A.Ş. |
0155 | TR·· 0015 5… | Q YATIRIM BANKASI A.Ş. |
0156 | TR·· 0015 6… | HEDEF YATIRIM BANKASI A.Ş. |
0157 | TR·· 0015 7… | ENPARA BANK A.Ş. |
0158 | TR·· 0015 8… | COLENDİ BANK A.Ş. |
0159 | TR·· 0015 9… | FUPS BANK A.Ş. |
0160 | TR·· 0016 0… | ZİRAAT DİNAMİK BANKA A.Ş. |
0161 | TR·· 0016 1… | AYTEMİZ YATIRIM BANKASI A.Ş. |
0203 | TR·· 0020 3… | ALBARAKA TÜRK KATILIM BANKASI A.Ş. |
0205 | TR·· 0020 5… | KUVEYT TÜRK KATILIM BANKASI A.Ş. |
0206 | TR·· 0020 6… | TÜRKİYE FİNANS KATILIM BANKASI A.Ş. |
0209 | TR·· 0020 9… | ZİRAAT KATILIM BANKASI A.Ş. |
0210 | TR·· 0021 0… | VAKIF KATILIM BANKASI A.Ş. |
0211 | TR·· 0021 1… | TÜRKİYE EMLAK KATILIM BANKASI A.Ş. |
0212 | TR·· 0021 2… | HAYAT FİNANS KATILIM BANKASI |
0213 | TR·· 0021 3… | T.O.M. KATILIM BANKASI A.Ş. |
0214 | TR·· 0021 4… | DÜNYA KATILIM BANKASI A.Ş. |
0215 | TR·· 0021 5… | ADİL KATILIM BANKASI A.Ş. |
0216 | TR·· 0021 6… | İKTİSAT KATILIM BANKASI A.Ş. |
0806 | TR·· 0080 6… | MERKEZİ KAYIT KURULUŞU A.Ş. |
0807 | TR·· 0080 7… | POSTA VE TELGRAF TEŞKİLATI A.Ş. |
How it works
A Turkish IBAN has 26 characters: TR, 2 check digits, a 5-digit bank code, 1 reserved digit and a 16-digit account number. The bank code is the CBRT (TCMB) participant code with a leading zero: 00062 in TR63 0006 2… is code 0062, Garanti BBVA. So it works without a network call, the same in the browser and on the server.
The branch and the account holder cannot be read from an IBAN; only the banks' own services know them.
Usage
import { getTurkishBank, useViraMask } from "@virastack/mask"
import { useWatch } from "react-hook-form"
const { iban } = useViraMask(form, {
iban: { preset: "iban", country: "TR" },
})
const bank = getTurkishBank(useWatch({ control: form.control, name: "iban" }))
<input {...iban} />
<p>{bank?.name}</p> // "T. GARANTİ BANKASI A.Ş."import { getTurkishBank, turkishBanks } from "@virastack/mask"
getTurkishBank("TR63 0006 2000 0000 0000 1234 56")
// { code: "0062", name: "T. GARANTİ BANKASI A.Ş." }
getTurkishBank("TR63 0006 2") // enough once the bank digits are typed
getTurkishBank("tr630006200000000000123456") // no spaces, lowercase
getTurkishBank("TR63 0006") // null: bank code not complete yet
getTurkishBank("DE89 3704 0044 0532 0130 00") // null: not TR
turkishBanks.length // 70getTurkishBank does not validate the IBAN itself; it names the bank of an IBAN with wrong check digits too. Use the iban preset or isValidIBAN for that. Both are on @virastack/mask/server as well.
The table is a plain array, so it stays out of apps that never use getTurkishBank or turkishBanks. When used, it adds about 2 KB.
Source
The list comes from the payment systems participants table published by the Central Bank of the Republic of Türkiye: 70 participants, last change 18.09.2026. Names are as TCMB writes them. When the list changes, a new package version updates it.
