Hizmetler Hosting & Sunucu Araçlar Blog Ara Kurumsal EnglishEN
Teklif Alın

Bir banka hesabına para göndermek için kullanılan IBAN numarası, rastgele üretilmiş bir rakam dizisi değildir; belirli bir yapıya ve matematiksel bir kontrol mekanizmasına sahiptir. Bu yazıda IBAN'ın ne olduğunu, yapısını ve kontrol basamağının (checksum) hangi algoritmayla hesaplandığını inceliyoruz.

IBAN nedir ve neden var?

IBAN (International Bank Account Number), ülkeler arası banka hesap numaralarını standart bir biçimde ifade etmek için tasarlanmış bir yapıdır. Bir IBAN; ülke kodu (2 harf), kontrol basamağı (2 rakam) ve ülkeye özgü bir hesap tanımlayıcısından oluşur. Bu standardizasyonun amacı, farklı ülkelerdeki bankaların bir hesap numarasını, parayı fiilen yönlendirmeden önce yapısal olarak doğrulayabilmesini sağlamaktır — yani numaranın biçimsel olarak tutarlı olup olmadığı, transfer gerçekleşmeden önce kontrol edilebilir.

Bu tür bir kontrol mekanizması olmadan, hatalı girilen bir hesap numarası ancak bankalar arasında işlem başladıktan sonra, bazen günler sonra reddedilerek fark edilir. Kontrol basamağı sayesinde açık ve basit bir yazım hatası, işlem daha başlamadan; bir form doldurulurken ya da bir IBAN kaydedilirken anında yakalanabilir.

Bir IBAN'ın yapısı

BölümUzunlukNe işe yarar
Ülke kodu2 harfISO ülke kodu (ör. TR, DE, GB)
Kontrol basamağı2 rakamMOD 97-10 algoritmasıyla hesaplanan checksum
Hesap tanımlayıcısı (BBAN)Ülkeye göre değişirBanka/şube kodu ve hesap numarasını içeren, ülkeye özgü kısım

BBAN kısmının uzunluğu ve iç yapısı ülkeden ülkeye farklılık gösterir; bu yüzden bir IBAN'ın toplam uzunluğu da ülkeye göre değişir. Aşağıda birkaç ülke için toplam IBAN uzunluğu örnek olarak verilmiştir:

  • TR (Türkiye) — 26 karakter
  • DE (Almanya) — 22 karakter
  • GB (Birleşik Krallık) — 22 karakter
  • FR (Fransa) — 27 karakter
  • NL (Hollanda) — 18 karakter
  • BE (Belçika) — 16 karakter

Bu uzunluk sabittir ve ülke koduna bağlıdır; bir IBAN'ın uzunluğu kendi ülkesi için beklenen değerden farklıysa, checksum ayrıca kontrol edilmeden bile numarada bir sorun olduğu anlaşılabilir.

Türkiye'de IBAN formatı

Türkiye'de IBAN her zaman 26 karakter uzunluğundadır ve TR ülke koduyla başlar. İlk iki harften sonra gelen iki rakam kontrol basamağıdır; geri kalan kısım ise bankaya ve hesaba özgü tanımlayıcıyı içerir. Bir IBAN'ın uzunluğu beklenen 26 karakterden farklıysa — kontrol basamağı matematiksel olarak tutsa bile — numarada bir sorun olduğu anlaşılır.

Kontrol basamağı (checksum) nasıl hesaplanır: MOD 97-10

IBAN'daki kontrol basamağı, ISO 7064 MOD 97-10 algoritmasıyla hesaplanır. Adımlar şöyledir:

  • IBAN'ın ilk 4 karakteri (ülke kodu + kontrol basamağı) numaranın sonuna taşınır.
  • Elde edilen dizideki her harf, sayısal karşılığıyla değiştirilir: A=10, B=11, ... Z=35.
  • Sonuçta ortaya çıkan, yalnızca rakamlardan oluşan çok basamaklı büyük sayı 97'ye bölünür.
  • Kalan 1 ise IBAN matematiksel olarak geçerlidir; başka herhangi bir kalan, numarada bir hata olduğu anlamına gelir.

Harflerin sayıya çevrilmesinin nedeni basittir: kontrol basamağı hesaplaması saf bir bölme işlemidir ve yalnızca rakamlarla çalışabilir. Ülke kodu iki harften oluştuğu için, bu harflerin de hesaplamaya bir şekilde dahil edilmesi gerekir; A=10, B=11, ... Z=35 eşlemesi bu harfleri işleme sokulabilir sayılara dönüştürmenin standart yoludur.

Örneğin bu aracın varsayılan olarak gösterdiği TR33 0006 1005 1978 6457 8413 26 numarasını ele alalım. İlk 4 karakter (TR33) sona taşındığında dizi 0006100519786457841326TR33 hâline gelir. Harfler sayıya çevrildiğinde (T=29, R=27) elde edilen sayı 0006100519786457841326292733 olur. Bu sayı 97'ye bölündüğünde kalan 1 çıkar; dolayısıyla bu IBAN kontrol basamağı açısından geçerlidir.

Neyi doğrular, neyi doğrulamaz?

Bu kontrol yalnızca numaranın biçimsel olarak tutarlı olduğunu gösterir; kontrol basamağı tutan bir IBAN'ın gerçekten var olan bir hesaba ait olduğu ya da doğru kişiye ait olduğu anlamına gelmez. Checksum kontrolü, bir hesabın bankada fiilen bulunup bulunmadığını sorgulamaz — bunu yalnızca ilgili banka, gerçek bir transfer denemesi ya da hesap sorgulama sistemi üzerinden teyit edilebilir.

Bu kontrolün asıl işlevi, kullanıcıların bir IBAN'ı elle girerken yaptığı yazım hatalarını yakalamaktır: rakamların yer değiştirmesi ya da bir karakterin eksik veya fazla girilmesi gibi hatalar kontrol basamağını bozar ve checksum testinden geçmez. Bu yüzden fatura, maaş bordrosu veya ödeme formlarında IBAN alanına canlı doğrulama eklemek, kullanıcı hatalarının büyük bir kısmını form gönderilmeden önce yakalar.

Bunun bir istisnası vardır: bazı yazım hataları, tesadüfen yine geçerli bir checksum üretebilir. Bu durumda numara matematiksel olarak “geçerli” görünür ama aslında yanlış bir hesabı işaret ediyor olabilir. Bu yüzden checksum kontrolü, alıcı bilgilerinin doğruluğunu teyit etmenin yerine değil, yalnızca ilk ve en yaygın hata türünü elemenin bir yolu olarak düşünülmelidir.

Sık yapılan hatalar

  • Rakam ters yazma: iki komşu karakterin yer değiştirmesi (transposition), checksum'ı neredeyse her zaman bozar ve bu tür bir kontrolle kolayca yakalanır.
  • Eksik veya fazla karakter: kopyala-yapıştır sırasında bir karakterin atlanması ya da tekrarlanması hem uzunluğu hem kontrol basamağını geçersiz kılar.
  • Checksum geçerliliğini hesap doğruluğuyla karıştırmak: bir IBAN'ın matematiksel olarak geçerli olması, o hesabın var olduğu ya da alıcının doğru kişi olduğu anlamına gelmez.
  • Ülkeye özgü uzunluğu göz ardı etmek: her ülkenin IBAN uzunluğu sabittir; bu uzunluktan sapma, checksum tutsa bile numaranın hatalı olduğunu gösterebilir.
Uyarı
Bir IBAN'ın kontrol basamağının doğru çıkması, alıcı adını veya hesabın gerçekten mevcut olduğunu garanti etmez. Önemli transferlerden önce alıcı bilgilerini bankanız üzerinden ayrıca teyit edin.

Elinizdeki bir IBAN'ın kontrol basamağının tutup tutmadığını ve uzunluğunun ülkesine uygun olup olmadığını kontrol etmek için aşağıdaki aracı kullanabilirsiniz. Doğrulama tamamen tarayıcınızda çalışır; hiçbir hesap verisi kaydedilmez ya da bir sunucuya gönderilmez.

WhatsApp