IBAN Üretici
IBAN üretici ile ödeme, para çekme ve cari hesap formlarının testi için MOD-97 kontrolünden geçen test IBAN hazırla. Banka seç, kopyala, testine dön.
Ziraat Dinamik Banka · banka kodu 00160
- 26 karakter
- TR ile başlıyor
- MOD-97 tutuyor
- Banka kodu tanınıyor
Geçmiş
26 karakter, beş parça
IBAN üreticisinin yukarıda ürettiği numaranın parçaları. Kontrol haneleri, geri kalan 22 rakamdan MOD-97 ile hesaplanır.
Ülke kodu
Türkiye için her zaman TR.
Kontrol
MOD-97 ile hesaplanır.
Banka kodu
Ziraat Dinamik Banka
Rezerv
Şu an hep 0.
Hesap numarası
Şube ve hesap bilgisi; her banka kendi düzenini kullanır.
Başı sona taşı
İlk dört karakter (TR ve kontrol) sona alınır, kontrol yerine 00 yazılır.
Harfleri sayıya çevir
A = 10, B = 11 … Z = 35. T 29, R 27 olur ve 28 haneli bir sayı çıkar.
97'ye böl
Sayının 97'ye bölümünden kalan 98'den çıkarılır; sonuç kontrol haneleridir.
IBAN üretici ve TR IBAN rehberi
IBAN'ın yapısı, MOD-97 kontrolü, banka kodları listesi ve formlarda IBAN alanını doğru doğrulamak için bilmen gerekenler.
IBAN nedir?
IBAN (International Bank Account Number), bir banka hesabını uluslararası standart bir biçimde tanımlayan numaradır. Türkiye'de IBAN her zaman TR ile başlar ve toplam 26 karakterdir: 2 harfli ülke kodu, 2 haneli kontrol, 5 haneli banka kodu, 1 haneli rezerv alanı ve 16 haneli hesap numarası.
Havale ve EFT formlarından maaş ödemelerine, pazaryeri satıcı hesaplarından iade ekranlarına kadar para hareketi olan her uygulamada bir IBAN alanı bulunur. Bu alanın doğru doğrulanması, hatalı yazılmış bir IBAN yüzünden ödemenin geri dönmesini ya da yanlış hesaba gitmesini önler.
IBAN üretici ne işe yarar?
Bu formları test ederken kendi banka hesabını ya da bir müşterinin IBAN'ını kullanmak hem kişisel veri riski taşır hem de test ortamında gerçek bir hesap bilgisinin dolaşması demektir. IBAN üretici, gerçek bir bankanın koduyla başlayan ama hesap kısmı rastgele seçilen, MOD-97 kontrolünden geçen geçerli IBAN üretir. Böylece doğrulama kodunu, banka adını gösteren alanları ve IBAN'ı 4'erli gruplara bölen görünümü gerçek veriye dokunmadan denersin.
"IBAN oluşturucu" ya da "test IBAN" diye aranan araç da budur. IBAN üreticisiyle ürettiğin numaralar yalnızca test içindir; bu numaralara para gönderilmemelidir.
MOD-97 kontrolü nasıl çalışır?
IBAN'ın 3. ve 4. karakterleri, numaranın geri kalanından ISO 13616 standardındaki MOD-97 yöntemiyle hesaplanır. Doğrulamak için ilk dört karakter sona taşınır, harfler sayıya çevrilir (T = 29, R = 27) ve ortaya çıkan büyük sayının 97'ye bölümünden kalan hesaplanır. Kalan 1 ise IBAN geçerlidir. IBAN üreticisinin ürettiği her numara bu kontrolden geçer.
Bu yöntem tek bir rakamın yanlış yazıldığı hataların ve yan yana iki rakamın yer değiştirdiği hataların hepsini yakalar; 97 asal bir sayı olduğu için bu hatalar kalanı hiçbir zaman değiştirmeden bırakamaz. Sayı 26 haneden uzun olduğu için JavaScript ve PHP'de doğrudan sayıya çevrilemez; aşağıdaki kodlarda olduğu gibi rakam rakam ilerleyerek kalan hesaplanır.
Türkiye banka kodları listesi
IBAN'ın 5. ile 9. karakterleri arasındaki beş haneli kod, hesabın hangi bankada olduğunu gösterir. IBAN üreticisinde seçebildiğin bankalar ve kodları:
00010000120001500032000460006200064000670009900111001340015700160002030020500206002090021000211Yeni bankalar kuruldukça ya da birleşmeler oldukça liste değişir; güncel listenin tamamı TCMB'nin ödeme sistemleri katılımcıları sayfasında yayımlanır. Banka adını gösteren bir arayüz yapıyorsan, listede olmayan bir kod geldiğinde IBAN'ı reddetmek yerine yalnızca banka adını boş bırakmak daha güvenlidir.
Formlarda IBAN alanı
Kullanıcılar IBAN'ı genellikle bankacılık uygulamasından boşluklu ya da küçük harfli olarak kopyalar. Doğrulamadan önce boşlukları sil ve harfleri büyük harfe çevir; saklarken boşluksuz, gösterirken 4'erli gruplar halinde göster. Alanın başına sabit bir "TR" yazıp kullanıcıdan yalnızca 24 rakam istemek de yaygın ve hata riskini azaltan bir yöntemdir.
Test ortamında IBAN üreticisiyle aldığın geçerli numaraların yanında, tek karakterini değiştirdiğin geçersiz IBAN'larla da deneme yap; IBAN doğrulama kodunun ikisini de doğru ayırması gerekir. Ödeme formunun tamamını test ediyorsan sanal POS test kartları, alıcı bilgisi için TC kimlik numarası ve vergi kimlik numarası üreticilerini de kullanabilirsin.
function mod97(s) {
let r = 0;
for (const ch of s) r = (r * 10 + Number(ch)) % 97;
return r;
}
function ibanUret(bankaKodu) {
let hesap = '';
for (let i = 0; i < 16; i++) hesap += Math.floor(Math.random() * 10);
const bban = bankaKodu + '0' + hesap;
const kontrol = String(98 - mod97(bban + '292700')).padStart(2, '0');
return 'TR' + kontrol + bban;
}
function ibanGecerliMi(iban) {
iban = String(iban).replace(/\s/g, '').toUpperCase();
if (!/^TR\d{24}$/.test(iban)) return false;
return mod97(iban.slice(4) + '2927' + iban.slice(2, 4)) === 1;
}
function mod97(string $s): int
{
$r = 0;
foreach (str_split($s) as $ch) $r = ($r * 10 + (int)$ch) % 97;
return $r;
}
function ibanUret(string $bankaKodu): string
{
$hesap = '';
for ($i = 0; $i < 16; $i++) $hesap .= random_int(0, 9);
$bban = $bankaKodu . '0' . $hesap;
$kontrol = str_pad((string)(98 - mod97($bban . '292700')), 2, '0', STR_PAD_LEFT);
return 'TR' . $kontrol . $bban;
}
function ibanGecerliMi(string $iban): bool
{
$iban = strtoupper(str_replace(' ', '', $iban));
if (!preg_match('/^TR[0-9]{24}$/', $iban)) return false;
return mod97(substr($iban, 4) . '2927' . substr($iban, 2, 2)) === 1;
}
import random
def iban_uret(banka_kodu: str) -> str:
bban = banka_kodu + "0" + "".join(str(random.randint(0, 9)) for _ in range(16))
kontrol = 98 - int(bban + "292700") % 97
return f"TR{kontrol:02d}{bban}"
def iban_gecerli_mi(iban: str) -> bool:
iban = iban.replace(" ", "").upper()
rakam = iban[2:]
if len(iban) != 26 or not iban.startswith("TR") or not (rakam.isascii() and rakam.isdigit()):
return False
return int(iban[4:] + "2927" + iban[2:4]) % 97 == 1
Sık sorulan sorular
Banka kodları, MOD-97 kontrolü ve ödeme formu testleri hakkında sorular.
IBAN üreticisinin ürettiği IBAN'lar gerçek bir hesaba mı ait?
Banka kodu gerçek bir bankaya aittir, hesap kısmı ise rastgele üretilir ve MOD-97 kontrolünden geçecek şekilde tamamlanır. Böyle bir hesabın var olup olmadığını bilmeyiz ve sorgulamayız; numara tesadüfen gerçek bir hesapla eşleşebilir.
Bu IBAN'lara para gönderebilir miyim?
Hayır, gönderme. Numaralar yalnızca form, doğrulama ve arayüz testleri içindir. Gerçek bir transfer denemesi, varsa başkasına ait bir hesaba para gönderilmesine yol açabilir.
IBAN doğrulaması neyi kontrol eder?
Numaranın 26 karakter olduğunu, TR ile başladığını, MOD-97 kontrol hanelerinin tuttuğunu ve banka kodunun bilinen bir bankaya ait olduğunu. Hesabın açık olup olmadığını ya da kime ait olduğunu göstermez; bunu yalnızca banka bilir.
IBAN üreticideki banka kodları güncel mi?
Liste TCMB'nin ödeme sistemleri katılımcı listesine dayanır ve yeni kurulan bankalarla birlikte güncellenir. Listede olmayan bir kod gördüğünde doğrulama aracı IBAN'ı yine kontrol eder ama banka adını gösteremez.
IBAN boşluklu mu yazılmalı, bitişik mi?
Kâğıtta ve ekranda okunurluk için 4'erli gruplar halinde yazılır, sistemlerde ise boşluksuz saklanır. Formunda kullanıcı hangi biçimde yapıştırırsa yapıştırsın boşlukları temizleyip büyük harfe çevirmen yeterli.
Ödeme sağlayıcılarının test ortamlarında kullanabilir miyim?
IBAN üreticisinin numaralarını kendi uygulamandaki IBAN alanlarını ve doğrulama kodunu test etmek için kullanabilirsin. Ödeme ve para çekme sağlayıcılarının sandbox ortamları genellikle kendi verdikleri test hesaplarını ister; onların dokümanına bak.
Üretilen IBAN'lar sunucuya gönderiliyor mu?
Hayır. Numaralar tarayıcında üretilir ve doğrulanır. Geçmiş listesi sadece senin tarayıcında saklanır.
Klavye kısayolları neler?
Space yeni IBAN üretir, C kopyalar. IBAN'ın üstüne tıklamak da kopyalar.
Aynı işte lazım olacak diğer araçlar
Vergi numarası, IBAN, test kartı ve sahte kişi verisi: hepsi aynı mantıkla, tarayıcında.