İçeriğe geç

IBAN Oluşturucu ve Doğrulayıcı Aracı - Banka Verilerini Test Etme

Geçerli test IBAN'larını anında oluşturun veya mevcut IBAN'ları doğrulayın. 10 Avrupa ülkesini MOD 97 doğrulamasıyla destekler. Finansal yazılım testi ve geliştirme için mükemmel.

IBAN Oluşturucu ve Doğrulayıcı

Yükleme hesaplayıcısı...
📚

Belgeler

IBAN Oluşturucu ve Doğrulayıcı Aracı

Bu Aracın Ne İşe Yaradığı

Gerçek banka hesap verileri olmadan finansal yazılım testini mi yapıyorsunuz? Doğrulama kontrollerini geçen geçerli IBAN formatlarına ihtiyacınız olacak. Bu araç, ülkeye özgü formatlara uyan rastgele IBAN'lar oluşturur ve mevcut olanları ISO 13616 standardını kullanarak doğrular.

İşte çözdüğü pratik sorun: ödeme sistemleri veya bankacılık uygulamaları geliştirirken, doğrulamadan geçecek ancak gerçek hesap numaralarını açığa çıkarmayacak test verilerine ihtiyacınız vardır. Geliştiricilerin sık yaptığı yaygın bir hata, MOD 97 kontrol algoritmasını geçemeyen "sahte" IBAN'lar oluşturmak, bu da testlerin yanlış nedenlerden dolayı başarısız olmasına neden olur.

Araç iki temel görevi yerine getirir:

  • Oluşturucu: Desteklenen herhangi bir ülke için yapısal olarak geçerli IBAN'lar oluşturur. Oluşturulan her numara, üretim sisteminizin çalıştıracağı aynı doğrulama kontrollerinden geçer.
  • Doğrulayıcı: IBAN yapısını, kontrol hanelerini ve ülkeye özgü biçimlendirmeyi doğrular. Bir IBAN'ın neden reddedildiğini hata ayıklamak için kullanışlıdır.

IBAN'lar (Uluslararası Banka Hesap Numaraları), bankaların hesapları sınırlar arasında tanımlamasını standartlaştırır. Her biri bir ülke kodu, MOD 97 ile hesaplanan iki kontrol hanesi ve ülkeye göre değişen bir Temel Banka Hesap Numarası (BBAN) içerir. Bunu zorlayan şey, Almanya'nın 22 karakter kullanırken Fransa'nın 27'ye ihtiyaç duyması ve iç yapının tamamen farklı olmasıdır.

IBAN'lar Nasıl Çalışır

IBAN Yapısı ve Formatı

IBAN'lar 34 alfanümerik karaktere kadar olabilir, ancak çoğu Avrupa ülkesi 22-27 karakter kullanır. Her IBAN üç kısımdan oluşur:

  1. Ülke Kodu: ISO 3166-1 alfa-2 standardından iki harf (Almanya için DE, Birleşik Krallık için GB)
  2. Kontrol Haneleri: MOD 97 kullanarak tüm IBAN'ı doğrulayan iki hesaplanmış hane
  3. Temel Banka Hesap Numarası (BBAN): Ülkeye özgü bölüm şunları içerir:
    • Banka tanımlayıcısı (bazen yönlendirme numarası veya banka kodu olarak adlandırılır)
    • Şube tanımlayıcısı (Birleşik Krallık buna sort code diyor)
    • Hesap numarası
    • Bazen ilave ulusal kontrol haneleri

Bir Alman IBAN'ını örnek olarak alalım. DE2!n8!n10!n deseni şunu ifade eder:

  • DE = ülke kodu
  • 2!n = iki sayısal kontrol hanesi
  • 8!n = sekiz haneli banka kodu (Bankleitzahl)
  • 10!n = on haneli hesap numarası (Kontonummer)

İnsanları şaşırtan şey, bu formatların ülkeler arasında ne kadar farklı olduğudur:

ÜlkeUzunlukYapıÖrnek
Almanya (DE)22DE2!n8!n10!nDE89370400440532013000
Birleşik Krallık (GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
Fransa (FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
İspanya (ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
İtalya (IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456

IBAN Doğrulama Algoritması

IBAN doğrulaması, ISO 7064'te tanımlanan MOD 97 algoritmasına dayanır. Bir IBAN doğrulandığında gerçekte şunlar olur:

  1. İlk dört karakteri (ülke kodu ve kontrol haneleri) sona taşıyın
  2. Her harfi sayıyla değiştirin: A=10, B=11, Z=35'e kadar
  3. Elde edilen sayı dizesinin modulo 97'sini hesaplayın
  4. Geçerli IBAN'lar her zaman tam olarak 1 kalıntı üretir

Matematiksel olarak: IBAN numarasımod97=1\text{IBAN numarası} \bmod 97 = 1

Neden özellikle MOD 97? Neredeyse tüm yaygın hataları yakalar: tek basamak hataları, yer değiştiren basamaklar, hatta çoğu yazım hatası. Pratikte, yaklaşık %99,9 oranında yanlışlıkla girilen verilerdeki hataları yakaladığını buldum, bu yüzden uluslararası standart haline geldi.

Bilinmesi gereken bir incelik: IBAN'lar oluştururken, kontrol hanelerini "00" ile başlayarak hesaplayın, algoritmayı çalıştırın, sonra 98 eksi kalıntıyı kullanın. Bu, nihai IBAN'ın doğru şekilde doğrulanmasını sağlar.

Araç Özellikleri

IBAN Oluşturucu

Gerçek hesap numaralarını kullanmadan doğrulamadan geçen test IBANları oluşturun:

  • Ülke Seçimi: 10 büyük Avrupa ülkesini destekler (Almanya, İngiltere, Fransa, İspanya, İtalya, Hollanda, İsviçre, Avusturya, Belçika, Polonya)
  • Format Uyumluluğu: Oluşturulan her IBAN resmi ülke yapısıyla eşleşir ve MOD 97 doğrulamasından geçer
  • Tek Tıkla Oluşturma: Hiçbir yapılandırma gerekmez—sadece bir ülke seçin ve oluşturun
  • Panoya Kopyalama: Tek tıkla tam IBAN'ı testlerinize yapıştırmak için kopyalayın
  • Görsel Dökümü: Renk kodlu görüntü, ülke kodunu, kontrol hanelerini ve banka ayrıntılarını ayrı ayrı gösterir

Oluşturma süreci:

  1. Ülkeye özgü format şablonunu seçer
  2. BBAN bölümüne rastgele rakamları/harfleri doldurur
  3. MOD 97 kullanarak kontrol hanelerini hesaplar
  4. Tam IBAN'ı derler ve doğrular

Pro ipucu: Test veritabanlarını doldururken, sınır ötesi senaryoları test etmek için birden fazla ülkeden IBAN'lar oluşturun. Gerçek ödeme sistemlerinde genellikle belirli ülkelerle ilgili kenar durumlar vardır.

IBAN Doğrulayıcı

IBAN yapısını doğrulayın ve biçimlendirme sorunlarını üretime girmeden yakalayın:

  • Format Doğrulaması: Ülkeye özgü uzunluk ve yapı gereksinimlerini kontrol eder
  • MOD 97 Doğrulaması: Tam kontrol hanesi algoritmasını çalıştırır
  • Bileşen Dökümü: IBAN'ın ülke kodu, kontrol haneleri, banka kodu ve hesap numarası olarak nasıl bölündüğünü tam olarak gösterir
  • Spesifik Hata Mesajları: Genel "geçersiz" mesajları yerine, tam olarak neyin yanlış olduğunu görürsünüz
  • Otomatik Biçimlendirme: Boşluklu veya boşluksuz IBAN'ları işler—biçimlendirme otomatik olarak gerçekleşir

Doğrulama kontrolleri sırayla çalışır:

  1. Ülke kodu tanıma (destekleniyor mu?)
  2. Uzunluk doğrulaması (o ülke için doğru karakter sayısı mı?)
  3. Karakter türü doğrulaması (beklenilen yerde rakamlar, izin verilen yerde harfler)
  4. MOD 97 kontrol hanesi hesaplaması (matematiksel olarak doğru mu?)

Yaygın senaryo: API'niz, tutarsız boşluklarla kullanıcı girişinden bir IBAN alır. İşlemeden önce normalleştirmek için doğrulayıcıyı kullanın—otomatik olarak boşlukları çıkarır ve size doğru formatı gösterir.

Adım Adım Kılavuz

IBAN Oluşturma

  1. Oluşturucu Sekmesine Erişim: "Oluşturucu" sekmesini tıklayın (varsayılan olarak seçili)
  2. Ülke Seçimi: Açılır menüden istediğiniz ülkeyi seçin
  3. IBAN Oluşturma: "IBAN Oluştur" düğmesini tıklayın
  4. Sonucu Görüntüleme: Oluşturulan IBAN, bileşenlerinin görsel bir açıklamasıyla birlikte aşağıda görünecektir
  5. Panoya Kopyalama: IBAN'ı başka yerde kullanmak için "Panoya kopyala" düğmesini tıklayın

IBAN Doğrulama

  1. Doğrulayıcı Sekmesine Erişim: "Doğrulayıcı" sekmesini tıklayın
  2. IBAN Girişi: Giriş alanına bir IBAN yazın veya yapıştırın
    • Boşluklar ve biçimlendirme otomatik olarak işlenecektir
    • Araç, hem biçimlendirilmiş (boşluklarla) hem de biçimlendirilmemiş IBAN'ları kabul eder
  3. Doğrulama Sonuçlarını Görüntüleme: Araç, yazarken IBAN'ı otomatik olarak doğrulayacaktır
  4. Ayrıntıları Kontrol Etme: Geçerli IBAN'lar için bileşenlerin bir açıklaması görüntülenecektir
  5. Hataları İnceleme: Geçersiz IBAN'lar için, sorunu tanımlamaya yardımcı olacak spesifik hata mesajları görüntülenecektir

Kullanım Alanları ve Gerçek Dünya Uygulamaları

Yazılım Geliştirme ve Test Etme

API Testi: Ödeme entegrasyon testleri yaparken, doğrulamadan geçen ancak gerçek işlemleri tetiklemeyen IBAN'lara ihtiyacınız vardır. Otomatik test setiniz için bir toplu test IBAN'ları oluşturun ve farklı ülke formatları için hata işlemenizin doğru çalıştığından emin olun.

Form Doğrulaması: Ödeme akışını test mi ediyorsunuz? Ön yüz doğrulamanızın arka uç gereksinimlerini karşıladığını doğrulamak için doğrulayıcıyı kullanın. Sık karşılaşılan bir sorun, ödeme sağlayıcınızın daha sonra reddedebileceği bir IBAN formatını kabul etmektir—geliştirme sırasında bunu yakalamak müşteri hayal kırıklığını önler.

Sınır Durum Testi: Çoğu geliştirici bir veya iki ülke formatıyla test eder. İsviçreli bir müşteri 21 karakterlik bir IBAN ile Alman 22 karakterlik IBAN'lar için tasarlanmış sisteminizi kullandığında ne olur? Alan uzunluğunuzu ve doğrulama mantığınızı zorlamak için çeşitli ülke formatları oluşturun.

Gerileme Testi: IBAN doğrulama kitaplığınızı güncelledikten sonra, oluşturulan test IBAN'larını hem eski hem de yeni sürümlerden geçirin. Herhangi bir farklılık, üretimi etkileyebilecek bozucu değişiklikleri gösterir.

Finans Uygulaması Geliştirme

Ödeme Sistemleri: Uluslararası havale işlevselliği oluştururken, IBAN yapısının kendisinin yönlendirme davranışını belirlediği senaryolarla karşılaşırsınız. Hollanda'dan (BBAN'de harfler içeren) test IBAN'ları, tüm sayısal Alman IBAN'larının yakalayamayacağı hataları ortaya çıkarır.

Bankacılık Yazılımı: IBAN'ları ayrıştırarak banka kodlarını ve şube tanımlayıcılarını çıkarmak, ülkeye özgü mantık gerektirir. Desteklenen her ülke için IBAN'lar oluşturun ve ayrıştırma algoritmanızın bu bileşenleri doğru şekilde tanımladığını doğrulayın.

Uyumluluk Doğrulaması: Finans düzenlemeleri genellikle işleme almadan önce IBAN'ları doğrulamayı gerektirir. Sistemin geçersiz kontrol hanelerini ve yanlış formatları reddettiğini kanıtlayan test örnekleri oluşturmak için bu aracı kullanın—denetim izleri için gereklidir.

Eğitim ve Dokümantasyon

Bankacılık Standartları Eğitimi: Uluslararası ödeme sistemleri hakkında öğrenen öğrenciler, gerçek IBAN yapılarını görerek faydalanır. Farklı bankacılık sistemlerinde standartlaşmanın nasıl çalıştığını göstermek için birden fazla ülkeden örnekler oluşturun.

API Dokümantasyonu: Muhtemelen gerçek IBAN'ları teknik dokümantasyonunuzda kullanmak yerine, temiz örnekler oluşturun. "Test için DE89370400440532013000 IBAN'ını kullanın" ifadeli dokümantasyon, geliştiricilere bunların güvenli test değerleri olduğunu hemen söyler.

Veri İşlemleri

Veritabanı Tohumu: Geliştirme ve hazırlık ortamları gerçekçi test verilerine ihtiyaç duyar. Gizlilik endişesi olmadan temsili uluslararası müşteri profilleriyle veritabanınızı doldurmak için çeşitli IBAN'lar oluşturun.

Veri Anonimleştirme: Üretimden hazırlık ortamına mı geçiyorsunuz? Gerçek IBAN'ları, format geçerliliğini korurken test için oluşturulan IBAN'larla değiştirin ve hassas bilgileri kaldırın. Geliştirme ortamlarında GDPR uyumluluğu için kritiktir.

Alternatifler ve Ne Zaman Kullanılır

Farklı araçlar farklı ihtiyaçlara uyar. İşte dürüst bir karşılaştırma:

Ticari Bankacılık API'leri (örn. Stripe, Adyen)

Gerçek banka kayıtlarına karşı üretim doğrulaması için en iyi. Bu hizmetler, bir IBAN'ın yalnızca formatının doğru olup olmadığını değil, aynı zamanda gerçek bir aktif hesaba karşılık gelip gelmediğini kontrol eder.

Kullanılması gereken durumlar: Bir IBAN'ın yalnızca yapısal olarak geçerli değil, aynı zamanda var olduğunu ve ödeme alabildiğini doğrulamanız gerektiğinde.

Sınırlamalar: Para harcar (genellikle API çağrısı başına fiyatlandırma), entegrasyon çalışması gerektirir ve geliştirme için hala test IBAN'larına ihtiyaç duyarsınız - bu da bu aracın devreye girdiği yerdir.

Programlama Dili Kütüphaneleri (ibantools, iban.js, python-stdnum)

Uygulama kodunuzda gömülü doğrulama için en iyi. JavaScript için ibantools veya Python için python-stdnum gibi kütüphaneler hem doğrulama hem de oluşturma işlevleri sağlar.

Kullanılması gereken durumlar: Derleme veya çalışma zamanı doğrulamasının bir parçası olarak programatik erişime ihtiyaç duyduğunuzda.

Sınırlamalar: Entegre etmek için geliştirme çabası gerektirir ve hata ayıklama sırasında belirli IBAN'ları manuel olarak test etmek için hala hızlı bir yola ihtiyaç duyarsınız. İşte burada web aracı, test komut dosyaları yazmaktan daha hızlıdır.

SWIFT IBAN Kayıt Defteri

SWIFT tarafından tutulan resmi IBAN kayıt defteri tüm ülke formatlarını ve doğrulama kurallarını listeler. Bu, yetkili kaynaktır.

Kullanılması gereken durumlar: IBAN desteğini sıfırdan uygularken resmi özelliklere ihtiyaç duyduğunuzda.

Sınırlamalar: Bu bir dokümantasyondur, bir araç değil. Yine de bu özelliklere göre IBAN'ları oluşturacak ve doğrulayacak bir şey inşa etmeniz veya bulmanız gerekecektir.

Resmi Banka Doğrulayıcıları

Birçok ulusal banka, ülkeye özgü doğrulayıcılar sağlar (örn. Alman IBAN'ları için Bundesbank). Bunlar kendi ülkeleri için son derece doğrudur.

Kullanılması gereken durumlar: Yalnızca bir ülkeyle çalışırken ve banka düzeyinde doğrulama ayrıntılarına ihtiyaç duyduğunuzda.

Sınırlamalar: Tek ülke odağı. Uluslararası ödeme sistemleri oluşturuyorsanız, her ülke için doğrulayıcılara ihtiyaç duyacaksınız.

Bu Aracın Mantıklı Olduğu Durumlar

API entegrasyonu olmadan hızlı, kurulum gerektirmeyen test için bu aracı kullanın. Özellikle geliştirme ve hata ayıklama sırasında hemen geçerli test verileri oluşturmanız veya belirli bir IBAN'ın neden doğrulamadan geçemediğini anlamanız gerektiğinde kullanışlıdır. Kod tabanınızdaki üretim düzeyindeki doğrulama kütüphanelerinin yerini almaz, ancak atılabilir test komut dosyaları yazmaktan daha hızlıdır.

Sık Sorulan Sorular

IBAN Nedir ve Neden Önemlidir?

IBAN (Uluslararası Banka Hesap Numarası), Uluslararası Standardizasyon Örgütü (ISO) tarafından sınır ötesi ödemelerdeki hataları azaltmak için oluşturulmuş standartlaştırılmış bir formattır. IBAN'lardan önce, her ülke kendi hesap numarası formatını kullanıyordu, bu da sık sık hatalara ve başarısız transferlere yol açıyordu. IBAN'lar, para transfer edilmeden önce hataları yakalamak için ülke kodları ve kontrol rakamları ekler.

Oluşturulan IBAN'lar Ne Kadar Doğrudur?

Oluşturulan IBAN'lar matematiksel olarak doğrudur ve ISO 13616'da tanımlanan MOD 97 doğrulama algoritmasını geçer. Ülkeye özgü yapılara uyarlar. Ancak, bunlar rastgele oluşturulmuştur ve gerçek banka hesaplarına karşılık gelmezler - zaten amaç bu. Gerçek bir hesaba yanlışlıkla denk gelmeyecekleri için test için güvenlidirler.

Bu Araç Hangi Ülkeleri Destekliyor?

Şu anda 10 Avrupa ülkesi: Almanya, Birleşik Krallık, Fransa, İspanya, İtalya, Hollanda, İsviçre, Avusturya, Belçika ve Polonya. Bunlar Avrupa ödeme sistemlerinde karşılaşacağınız en yaygın IBAN formatlarını kapsar. Başka bir ülkeye mi ihtiyacınız var? Geri bildirim formu eklemeler için en iyi yoldur.

Oluşturulan IBAN'ları Gerçek Para Transferlerinde Kullanabilir miyim?

Kesinlikle hayır. Bunlar yalnızca test IBAN'larıdır. Format doğrulamasını geçerler ancak gerçek banka hesaplarına bağlı değildirler. Bunları gerçek işlemlerde kullanmak ödeme hatalarına veya reddedilmelere neden olacaktır. Bunlar yalnızca geliştirme, test ve eğitim amaçlıdır.

IBAN Doğrulaması Nasıl Çalışır?

Doğrulayıcı sırayla dört kontrol yapar:

  1. Ülke kodu: Tanınmış iki harfli bir kod mu?
  2. Uzunluk: O ülke için gerekli uzunluğa uyuyor mu? (Almanya = 22, İngiltere = 22, Fransa = 27, vb.)
  3. Karakter türleri: Harfler ve sayılar ülke formatına göre doğru konumlarda mı?
  4. MOD 97 kontrolü: Matematiksel kontrol toplamı ISO 7064'e göre 1'e eşit mi?

Herhangi bir kontrol başarısız olursa, neyin yanlış olduğunu açıklayan özel bir hata mesajı görürsünüz.

Boşluklar IBAN'larda Önemli mi?

Doğrulama için değil. IBAN'lar genellikle okunabilirlik için boşluklarla (dört gruplu) görüntülenir, ancak boşluklar kozmetiktir. DE89 3704 0044 0532 0130 00 ve DE89370400440532013000 doğrulama amaçları için özdeştir. Araç her iki formatı da otomatik olarak işler.

Verilerim bir sunucuya gönderilir veya herhangi bir yerde saklanır mı?

Hayır. Her şey tarayıcınızda JavaScript kullanılarak çalışır. Hiçbir IBAN verisi makinenizden ayrılmaz, bir sunucuya dokunmaz veya herhangi bir yerde saklanmaz. Bunu, tarayıcı geliştirici araçlarını açarak ve IBAN oluşturma veya doğrulamada ağ sekmesini izleyerek doğrulayabilirsiniz.

Listede Olmayan Bir Ülkeden IBAN Doğrulamam Gerekirse Ne Yapmalıyım?

Araç şu anda açılır menüdeki 10 ülkeyi destekliyor. Daha fazlasını eklemek, her ülkenin özel format kurallarını uygulamayı gerektirir. Norveç, İsveç veya diğer ülkeler için doğrulama gerekiyorsa, geri bildirim formu aracılığıyla bize bildirin - eklemeleri talebe göre önceliklendiriyoruz.

Doğru Biçimlendirilmiş Bir IBAN Neden Doğrulamayı Geçemez?

En yaygın nedenler:

  • Yanlış kontrol rakamları: Bir yanlış rakam bile MOD 97 testini başarısız kılar
  • Yazım hataları: Yer değiştirmiş karakterler veya IBAN'ın herhangi bir yerinde yanlış rakamlar
  • Yanlış uzunluk: O ülke için eksik veya fazla karakterler
  • Geçersiz karakterler: Yalnızca sayılara izin verilen yerde harfler, veya tersi
  • Desteklenmeyen ülke: Ülke kodu var ama desteklenen listede değil

Hata mesajı size özgül olarak neyin yanlış olduğunu söyleyecektir.

Hataları Nasıl Bildirebilir veya Özellik Taleplerinde Bulunabilirim?

Sayfanın altındaki geri bildirim formunu kullanın. Örnek IBAN'ları içeren spesifik hata raporları en yararlı olanlardır. Özellik talepleri için, kullanım senaryonuzu açıklamak sonra ne inşa edileceğini önceliklendirmede yardımcı olur.

IBAN ile SWIFT/BIC Kodları Arasındaki Fark Nedir?

IBAN'lar belirli banka hesaplarını tanımlarken, SWIFT/BIC kodları bankaları veya banka şubelerini tanımlar. Şöyle düşünün: SWIFT kodu hangi bankayı söyler, IBAN o bankadaki hangi hesabı. Uluslararası transferler için genellikle her ikisine de ihtiyaç duyulur - SWIFT kodu doğru bankaya yönlendirir, sonra IBAN belirli hesaba yönlendirir.

Ülkeyi Bilmeden Bir IBAN Doğrulayabilir miyim?

Evet, çünkü her IBAN'ın ilk iki harfi ülke kodudur. Doğrulayıcı bu ilk iki karakteri okuyarak hangi ülke formatını uygulayacağını belirler. Bu yüzden IBAN'ı yapıştırdığınızda ülke tespiti otomatik olarak gerçekleşir - ülkeyi manuel olarak seçmenize gerek yoktur.

Avrupa Dışındaki Ülkelerde de IBAN Formatları Var mı?

Evet, ama daha az. IBAN Avrupa'da ortaya çıkmış ve en yüksek benimsemeye sahip olsa da, Suudi Arabistan, BAE, Brezilya ve diğer bazı ülkeler de bunu benimsemiştir. Bu araç şu anda Avrupa formatlarına odaklanmıştır çünkü bunlar sınır ötesi işlemlerin büyük çoğunluğunu temsil eder. SWIFT IBAN Kayıt Defteri tam listeyi tutar.

IBAN'ı Okuma ve Çözme Rehberi

DE89370400440532013000 gibi bir IBAN'a baktığınızda her bir bölümün ne anlama geldiğini merak ettiniz mi? İşte herhangi bir IBAN'ı çözme yöntemi:

Adım 1: Ülke Kodu (İlk 2 karakter)

  • DE = Almanya
  • Hangi ülkenin format kurallarının geçerli olduğunu gösterir

Adım 2: Kontrol Haneleri (Sonraki 2 karakter)

  • 89 = hesaplanan kontrol toplamı
  • Bu haneler, tüm IBAN'ın geçerli olup olmadığını MOD 97 kullanarak doğrular

Adım 3: Banka Kodu (Ülkeye göre değişir)

  • Alman IBAN'larında 37040044 = 8 haneli banka tanımlayıcısı
  • Farklı ülkeler farklı uzunluklar kullanır (Birleşik Krallık 4 karakter kullanır)

Adım 4: Hesap Numarası (Kalan karakterler)

  • 0532013000 = o bankadaki asıl hesap numarası
  • Uzunluk ve format ülkeye bağlıdır

Farklı ülkeler BBAN bölümünü farklı şekillerde düzenler. Birleşik Krallık IBAN'ları, banka kodu ve hesap numarası arasında 6 haneli bir şube tanımlayıcısı içerir. Fransız IBAN'ları banka kodunu, şube kodunu ve hesap numarasını bir kontrol anahtarıyla birleştirir. Bu farklılıkları anlamak, IBAN'ları programlı olarak ayrıştırırken çok önemlidir.

Yaygın IBAN Doğrulama Hataları ve Nasıl Düzeltilir

IBAN doğrulaması uygularken, bu sorunlarla sık sık karşılaşacaksınız:

"Geçersiz Kontrol Haneleri" Hatası

Neden: MOD 97 hesaplaması 1'e eşit değil. Kontrol haneleri yanlış ya da IBAN'ın başka bir yerinde hata var.

Düzeltme: Herhangi bir yazım hatası düzeltildikten sonra doğrulamayı tekrar çalıştırın. IBAN'daki tek bir yanlış karakter bile kontrol hanesi başarısızlığına neden olur. Bu kasıtlıdır—veri girişi hatalarını yakalar.

"Ülke İçin Yanlış Uzunluk" Hatası

Neden: IBAN, ülke kodu için çok fazla veya çok az karaktere sahip.

Düzeltme: Ülke kodunun amaçlanan ülkeyle eşleştiğini doğrulayın. Alman IBAN'ları her zaman 22 karakterdir, İngiliz IBAN'ları 22, Fransız IBAN'ları 27. Eksik veya fazla karakterler kesinti veya yanlış veri gösterir.

"Geçersiz Karakterler" Hatası

Neden: O konumda bulunmaması gereken karakterler—örneğin, yalnızca sayılara izin verilen yerde harfler.

Düzeltme: Ülkeye özgü formatı kontrol edin. Örneğin, Alman IBAN'ları ülke kodu ve kontrol hanelerinden sonra tamamen sayısaldır, İngiliz IBAN'ları banka kodu için 4 harf içerir.

"Desteklenmeyen Ülke Kodu" Hatası

Neden: İlk iki harf tanınmayan bir ülke kodu veya doğrulayıcınız tarafından desteklenmiyor.

Düzeltme: Ülke kodu yazımını doğrulayın. Yaygın hatalar arasında UK yerine GB kullanmak veya EN yerine ülke kodları gelmesi sayılabilir. Bu araç 10 Avrupa ülkesini destekler; üretim doğrulayıcıları tüm SWIFT kayıt ülkelerini desteklemelidir.

Format vs. Hesap Varlığı

Önemli bir ayrım: doğrulama, bir IBAN'ın yapısal olarak doğru olduğunu onaylar, gerçek bir banka hesabı olduğunu değil. Bir IBAN tüm doğrulama kontrollerini geçebilir ancak yine de gerçek bir banka hesabına karşılık gelmeyebilir. Üretim ödeme sistemleri için, format doğrulamasının ötesinde ek doğrulama gereklidir.

Geliştiriciler için Teknik Uygulama

Uygulamanıza IBAN desteği eklerken, işte birden fazla dilde test edilmiş kod örnekleri. Bu uygulamalar, üretim ortamında karşılaşacağınız kenar durumları ele alır:

IBAN Doğrulama

1function validateIban(iban) {
2  // Boşlukları kaldır ve büyük harfe çevir
3  const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4  
5  // Temel formatı kontrol et
6  if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7    return false;
8  }
9  
10  // Yeniden düzenle ve harfleri sayılara çevir
11  const rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
12  const converted = rearranged.split('').map(char => {
13    if (/[A-Z]/.test(char)) {
14      return (char.charCodeAt(0) - 55).toString();
15    }
16    return char;
17  }).join('');
18  
19  // Mod 97'yi hesapla
20  let remainder = 0;
21  for (let i = 0; i < converted.length; i++) {
22    remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
23  }
24  
25  return remainder === 1;
26}
27
28// Örnek kullanım
29console.log(validateIban('DE89 3704 0044 0532 0130 00')); // true
30console.log(validateIban('GB29 NWBK 6016 1331 9268 19')); // true
31console.log(validateIban('DE89 3704 0044 0532 0130 01')); // false (geçersiz kontrol haneleri)
32

IBAN Oluşturma

1function generateIban(countryCode) {
2  const countryFormats = {
3    'DE': { length: 22, bbanPattern: '8n10n' },
4    'GB': { length: 22, bbanPattern: '4a6n8n' },
5    'FR': { length: 27, bbanPattern: '5n5n11c2n' }
6    // Gerektiğinde daha fazla ülke ekleyin
7  };
8  
9  if (!countryFormats[countryCode]) {
10    throw new Error(`Ülke kodu ${countryCode} desteklenmiyor`);
11  }
12  
13  // Ülke desenine göre rastgele BBAN oluştur
14  let bban = '';
15  const pattern = countryFormats[countryCode].bbanPattern;
16  let i = 0;
17  
18  while (i < pattern.length) {
19    const count = parseInt(pattern.substring(i + 1), 10);
20    const type = pattern[i];
21    
22    if (type === 'n') {
23      // Sayısal karakterler oluştur
24      for (let j = 0; j < count; j++) {
25        bban += Math.floor(Math.random() * 10);
26      }
27    } else if (type === 'a') {
28      // Alfabetik karakterler oluştur
29      for (let j = 0; j < count; j++) {
30        bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
31      }
32    } else if (type === 'c') {
33      // Alfanümerik karakterler oluştur
34      for (let j = 0; j < count; j++) {
35        const isLetter = Math.random() > 0.5;
36        if (isLetter) {
37          bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
38        } else {
39          bban += Math.floor(Math.random() * 10);
40        }
41      }
42    }
43    
44    i += 2;
45  }
46  
47  // Kontrol hanelerini hesapla
48  const checkDigits = calculateCheckDigits(countryCode, bban);
49  
50  return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54  // Kontrol haneleri olarak '00' ile başlangıç IBAN'ı oluştur
55  const initialIban = countryCode + '00' + bban;
56  
57  // Yeniden düzenle ve harfleri sayılara çevir
58  const rearranged = bban + countryCode + '00';
59  const converted = rearranged.split('').map(char => {
60    if (/[A-Z]/.test(char)) {
61      return (char.charCodeAt(0) - 55).toString();
62    }
63    return char;
64  }).join('');
65  
66  // 98 eksi mod 97'yi hesapla
67  let remainder = 0;
68  for (let i = 0; i < converted.length; i++) {
69    remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
70  }
71  
72  const checkDigits = (98 - remainder).toString().padStart(2, '0');
73  return checkDigits;
74}
75
76// Örnek kullanım
77console.log(generateIban('DE')); // Geçerli bir Alman IBAN'ı oluşturur
78console.log(generateIban('GB')); // Geçerli bir İngiliz IBAN'ı oluşturur
79

Referanslar ve Daha Fazla Okuma

  1. ISO 13616-1:2007 - Resmi IBAN yapısı spesifikasyonu
  2. SWIFT IBAN Kayıt Defteri - Ülkeye özgü IBAN formatları için yetkili kaynak
  3. ISO 7064:2003 - MOD 97 kontrol hanesi algoritması spesifikasyonu
  4. Avrupa Ödemeler Konseyi - SEPA - Tek Euro Ödeme Alanı dokümantasyonu
  5. Avrupa Merkez Bankası - Ödeme Sistemleri - Avrupa bankacılık entegrasyon standartları
  6. Uluslararası Ödemeler Bankası - Ödeme Sistemleri - Uluslararası ödeme sistemi standartları

IBAN'ları Test Etmeye Başlayın

Ödeme sisteminiz için test verilerine mi ihtiyacınız var? Desteklenen herhangi bir ülke için geçerli bir IBAN oluşturun veya mevcut bir IBAN'ı yapısını doğrulamak için yapıştırın. Araç tamamen tarayıcınızda çalışır—kayıt gerektirmez, API anahtarı gerekmez, hiçbir veri sunuculara gönderilmez.

Hızlı ipucu: Kenar durumları test etmek için birden fazla ülkeden IBAN'lar oluşturun. Gerçek dünya ödeme sistemleri çeşitli formatları işler ve yalnızca bir ülkenin formatıyla test yapmak yaygın bir üretim hatası kaynağıdır.