Rastgele format uyumlu IBAN'lar oluşturun veya mevcut olanları basit aracımızla doğrulayın. Finansal uygulamaları, bankacılık yazılımlarını ve eğitim amaçlarını test etmek için mükemmel.
Uluslararası Banka Hesap Numarası (IBAN) Üretici ve Doğrulayıcı, finansal uygulamalar, bankacılık yazılımları ve eğitim bağlamlarında test ve doğrulama amaçları için tasarlanmış kapsamlı bir araçtır. Bu kullanıcı dostu uygulama, rastgele ancak format uyumlu IBAN'lar oluşturma ve kullanıcı tarafından girilen IBAN'ların yapısal bütünlüğünü doğrulama gibi iki temel özellik sunar. İster finansal yazılım geliştiren bir geliştirici, ister bankacılık uygulamalarını doğrulayan bir QA uzmanı, ister uluslararası bankacılık standartlarını açıklayan bir eğitimci olun, bu araç karmaşık yapılandırmalar veya üçüncü taraf entegrasyonları gerektirmeden basit bir çözüm sunar.
IBAN'lar (Uluslararası Banka Hesap Numaraları), uluslararası para transferlerinde hata oranını azaltmak ve sınır ötesi işlemleri kolaylaştırmak için dünya genelinde kullanılan standartlaşmış hesap tanımlayıcılarıdır. Her IBAN, bir ülke kodu, kontrol rakamları ve ülkeye özgü formatları takip eden bir temel banka hesap numarasından (BBAN) oluşur. Araç, birden fazla ülke formatını destekler ve üretilen tüm IBAN'ların ISO 13616 standardında belirtilen MOD 97 doğrulama algoritmasından geçtiğinden emin olur.
Bir IBAN, 34 alfanümerik karaktere kadar oluşabilir, ancak tam uzunluk ülkeye göre değişir. Standart yapı şunları içerir:
Örneğin, bir Alman IBAN'ı DE2!n8!n10!n
yapısını takip eder:
DE
ülke kodudur2!n
iki rakamlı kontrol rakamlarını temsil eder8!n
sekiz haneli banka kodunu temsil eder10!n
on haneli hesap numarasını temsil ederFarklı ülkelerin farklı BBAN formatları vardır ve bu da değişken IBAN uzunluklarına yol açar:
Ülke | Uzunluk | Yapı | Örnek |
---|---|---|---|
Almanya (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
Birleşik Krallık (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
Fransa (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
İspanya (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
İtalya (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
IBAN doğrulama süreci, ISO 7064 standardında belirtilen MOD 97 algoritmasını kullanır. İşleyişi şöyledir:
Matematiksel olarak bu, şu şekilde temsil edilir:
Doğrulayıcımız, kullanıcıların girdiği herhangi bir IBAN'ın yapısal bütünlüğünü doğrulamak için bu algoritmayı uygular.
IBAN üretici, test amaçları için rastgele ancak geçerli IBAN'lar oluşturur. Ana özellikler şunlardır:
Üretici, IBAN'ları şu şekilde oluşturur:
IBAN doğrulayıcı, kullanıcı tarafından girilen IBAN'ların yapısal bütünlüğünü kontrol eder. Ana özellikler şunlardır:
Doğrulayıcı, birden fazla kontrol yapar:
IBAN Üretici ve Doğrulayıcı aracı, farklı alanlarda birden fazla amaca hizmet eder:
IBAN Üretici ve Doğrulayıcı aracı, test amaçları için akıcı bir deneyim sunarken, dikkate alınması gereken alternatif yaklaşımlar da vardır:
Araç, karmaşık yapılandırmalar veya ücretli abonelikler gerektirmeden hem üretim hem de doğrulama yeteneklerini sunarak bu alternatifler arasındaki boşluğu doldurur.
IBAN (Uluslararası Banka Hesap Numarası), uluslararası sınırlar arasında banka hesaplarını tanımlamak için geliştirilmiş standartlaşmış bir uluslararası numara sistemidir. Hatalı uluslararası işlemleri kolaylaştırmak için Uluslararası Standartlar Örgütü (ISO) tarafından oluşturulmuştur.
IBAN üreticisi, ISO 13616 standardında belirtilen MOD 97 kontrol algoritmasını geçebilen yapısal olarak geçerli IBAN'lar oluşturur. Üretilen IBAN'lar matematiksel olarak geçerli olsa da, rastgele ve gerçek banka hesaplarıyla bağlantılı değildir, bu nedenle test için mükemmeldir ancak gerçek işlemler için kullanılamaz.
Araç şu anda Almanya, Birleşik Krallık, Fransa, İspanya, İtalya, Hollanda, İsviçre, Avusturya, Belçika ve Polonya için IBAN formatlarını desteklemektedir. Bu ülkeler, Avrupa'da en yaygın kullanılan IBAN formatlarını kapsamaktadır.
Hayır. Bu üretici tarafından oluşturulan IBAN'lar yapısal olarak geçerli ancak rastgele üretilmiştir. Gerçek banka hesaplarıyla bağlantılı değildir ve yalnızca test, eğitim veya gösterim amaçları için kullanılmalıdır.
Doğrulayıcı, bir IBAN'ın birkaç yönünü kontrol eder:
Hayır. IBAN'lar genellikle okunabilirlik için boşluklarla (genellikle dört karakter grubu halinde) görüntülense de, boşluklar doğrulama sırasında göz ardı edilir. Araç, hem formatlı hem de formatlanmamış IBAN'ları işler.
Hayır. Bu araç tamamen tarayıcınızda çalışır. Hiçbir IBAN verisi herhangi bir sunucuya gönderilmez, saklanmaz veya üçüncü taraflarla paylaşılmaz. Verileriniz özel ve güvenli kalır.
Şu anda araç yalnızca açılır listede belirtilen desteklenen ülkelerden IBAN'ları doğrular. Ek ülkeler için doğrulama ihtiyacınız varsa, lütfen geri bildirim formu aracılığıyla bize bildirin.
Bir IBAN birkaç nedenle doğrulamayı geçemeyebilir:
Aracı geliştirmek için geri bildirimlerinizi memnuniyetle karşılıyoruz. Lütfen sayfanın altındaki bağlantı aracılığıyla erişilebilen geri bildirim formunu kullanarak herhangi bir sorun bildirin veya geliştirme önerilerinde bulunun.
Kendi uygulamalarında IBAN doğrulama ve üretim uygulamakla ilgilenen geliştiriciler için, çeşitli programlama dillerinde kod örnekleri:
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ü
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // İlk 4 karakteri sona taşı
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 rakamları)
32
1def validate_iban(iban):
2 # Boşlukları kaldır ve büyük harfe çevir
3 iban = iban.replace(' ', '').upper()
4
5 # Temel format kontrolü
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # İlk 4 karakteri sona taşı
10 rearranged = iban[4:] + iban[:4]
11
12 # Harfleri sayılara dönüştür (A=10, B=11, ..., Z=35)
13 converted = ''
14 for char in rearranged:
15 if char.isalpha():
16 converted += str(ord(char) - 55)
17 else:
18 converted += char
19
20 # mod 97'yi kontrol et
21 return int(converted) % 97 == 1
22
23# Örnek kullanım
24print(validate_iban('DE89 3704 0044 0532 0130 00')) # True
25print(validate_iban('GB29 NWBK 6016 1331 9268 19')) # True
26print(validate_iban('DE89 3704 0044 0532 0130 01')) # False (geçersiz kontrol rakamları)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Boşlukları kaldır ve büyük harfe çevir
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Temel format kontrolü
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // İlk 4 karakteri sona taşı
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Harfleri sayılara dönüştür
15 StringBuilder converted = new StringBuilder();
16 for (char c : rearranged.toCharArray()) {
17 if (Character.isLetter(c)) {
18 converted.append(c - 'A' + 10);
19 } else {
20 converted.append(c);
21 }
22 }
23
24 // mod 97'yi hesapla
25 BigInteger numeric = new BigInteger(converted.toString());
26 return numeric.mod(BigInteger.valueOf(97)).intValue() == 1;
27 }
28
29 public static void main(String[] args) {
30 System.out.println(validateIban("DE89 3704 0044 0532 0130 00")); // true
31 System.out.println(validateIban("GB29 NWBK 6016 1331 9268 19")); // true
32 System.out.println(validateIban("DE89 3704 0044 0532 0130 01")); // false
33 }
34}
35
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 // Gerekirse daha fazla ülke ekleyin
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Ülke kodu ${countryCode} desteklenmiyor`);
11 }
12
13 // Ülke formatına 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 rakamlarını hesapla
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // '00' kontrol rakamları ile başlangıç IBAN'ı oluştur
55 const initialIban = countryCode + '00' + bban;
56
57 // Yeniden düzenle ve harfleri sayılara dönüştür
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
1import random
2import string
3
4def generate_iban(country_code):
5 country_formats = {
6 'DE': {'length': 22, 'bban_format': '8n10n'},
7 'GB': {'length': 22, 'bban_format': '4a6n8n'},
8 'FR': {'length': 27, 'bban_format': '5n5n11c2n'}
9 # Gerekirse daha fazla ülke ekleyin
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Ülke kodu {country_code} desteklenmiyor")
14
15 # Ülke formatına göre rastgele BBAN oluştur
16 bban = ''
17 format_str = country_formats[country_code]['bban_format']
18 i = 0
19
20 while i < len(format_str):
21 count = int(''.join(c for c in format_str[i+1:] if c.isdigit()))
22 type_char = format_str[i]
23
24 if type_char == 'n': # Sayısal
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # Alfabetik
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Alfanümerik
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Kontrol rakamlarını hesapla
34 check_digits = calculate_check_digits(country_code, bban)
35
36 return country_code + check_digits + bban
37
38def calculate_check_digits(country_code, bban):
39 # Kontrol rakamı hesaplama dizesini oluştur
40 check_string = bban + country_code + '00'
41
42 # Harfleri sayılara dönüştür (A=10, B=11, ..., Z=35)
43 numeric = ''
44 for char in check_string:
45 if char.isalpha():
46 numeric += str(ord(char.upper()) - 55)
47 else:
48 numeric += char
49
50 # 98 eksi mod 97'yi hesapla
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Örnek kullanım
57print(generate_iban('DE')) # Geçerli bir Alman IBAN'ı oluşturur
58print(generate_iban('GB')) # Geçerli bir İngiliz IBAN'ı oluşturur
59
IBAN Üretici ve Doğrulayıcı aracı, uluslararası bankacılık tanımlayıcıları ile ilgili test ve eğitim amaçları için basit ama güçlü bir çözüm sunar. Hem üretim hem de doğrulama yeteneklerini kullanıcı dostu bir arayüzde sunarak karmaşık yapılandırmalar veya üçüncü taraf entegrasyonları gerektirmeden çalışır.
Finansal uygulamalar geliştirmek, ödeme sistemlerini test etmek veya uluslararası bankacılık standartlarını öğrenmek istiyorsanız, bu araç IBAN'larla çalışmanın basit bir yolunu sunar. Kapsamlı doğrulama, üretilen tüm IBAN'ların yapısal olarak sağlam ve uluslararası standartlara uygun olduğundan emin olur.
Şimdi bir IBAN üretmeyi veya doğrulamayı deneyin ve aracın yeteneklerini ilk elden deneyimleyin!
İş akışınız için faydalı olabilecek daha fazla aracı keşfedin