Generieren Sie gültige Test-IBANs oder validieren Sie bestehende sofort. Unterstützt 10 europäische Länder mit MOD 97-Validierung. Perfekt für Softwaretests und -entwicklung im Finanzbereich.
Testen von Finanzsoftware ohne echte Bankkonten? Sie benötigen gültige IBAN-Formate, die Validierungsprüfungen bestehen. Dieses Tool generiert zufällige IBANs, die länderspezifischen Formaten folgen, und validiert bestehende unter Verwendung des ISO 13616-Standards.
Hier ist das praktische Problem, das es löst: Beim Aufbau von Zahlungssystemen oder Bankanwendungen benötigen Sie Testdaten, die die Validierung bestehen, aber keine echten Kontonummern offenlegen. Ein häufiger Fehler von Entwicklern ist die Erstellung von "gefälschten" IBANs, die den MOD 97-Prüfalgorithmus nicht bestehen, was dazu führt, dass Tests aus falschen Gründen fehlschlagen.
Das Tool bewältigt zwei Kernaufgaben:
IBANs (International Bank Account Numbers) standardisieren, wie Banken Konten länderübergreifend identifizieren. Jede enthält einen Ländercode, zwei Prüfziffern, die über MOD 97 berechnet werden, und eine Basic Bank Account Number (BBAN), die je nach Land variiert. Was dies knifflig macht, ist, dass Deutschland 22 Zeichen verwendet, während Frankreich 27 benötigt, und die interne Struktur sich völlig unterscheidet.
IBANs können bis zu 34 alphanumerische Zeichen umfassen, wobei die meisten europäischen Länder 22-27 verwenden. Jede IBAN gliedert sich in drei Teile:
Nehmen wir eine deutsche IBAN als Beispiel. Das Muster DE2!n8!n10!n bedeutet:
DE = Ländercode2!n = zwei numerische Prüfziffern8!n = achstellige Bankleitzahl10!n = zehnstellige KontonummerWas die Menschen überrascht, ist, wie sehr sich diese Formate zwischen Ländern unterscheiden:
| Land | Länge | Struktur | Beispiel |
|---|---|---|---|
| Deutschland (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
| Vereinigtes Königreich (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
| Frankreich (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
| Spanien (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
| Italien (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
Die IBAN-Validierung basiert auf dem MOD 97-Algorithmus, der in ISO 7064 definiert ist. Hier geschieht Folgendes bei der IBAN-Validierung:
Mathematisch:
Warum gerade MOD 97? Es fängt fast alle gängigen Fehler ab: Einzelzifferversehen, vertauschte Ziffern, sogar die meisten Tippfehler mit ähnlich aussehenden Zeichen. In der Praxis habe ich festgestellt, dass es etwa 99,9% der versehentlichen Dateneingabefehler abfängt, weshalb es zum internationalen Standard wurde.
Eine Besonderheit, die es zu wissen gilt: Bei der IBAN-Generierung berechnen Sie die Prüfziffern, indem Sie mit „00" beginnen, den Algorithmus durchlaufen und dann 98 minus den Restwert verwenden. Dies stellt sicher, dass die endgültige IBAN korrekt validiert wird.
Generieren Sie Test-IBANs, die die Validierung bestehen, ohne echte Kontonummern zu verwenden:
Der Generierungsprozess:
Pro-Tipp: Generieren Sie beim Seeding von Testdatenbanken IBANs aus mehreren Ländern, um grenzüberschreitende Szenarien zu testen. Reale Zahlungssysteme haben oft Randfälle mit bestimmten Ländern.
Überprüfen Sie die IBAN-Struktur und erkennen Sie Formatprobleme, bevor sie in die Produktion gelangen:
Validierungsprüfungen in der Reihenfolge:
Häufiges Szenario: Ihre API empfängt eine IBAN aus Benutzereingabe mit inkonsistenten Leerzeichen. Verwenden Sie den Validator, um sie vor der Verarbeitung zu normalisieren - er entfernt Leerzeichen automatisch und zeigt Ihnen das richtige Format.
API-Testing: Beim Aufbau von Zahlungsintegrationstests benötigen Sie IBANs, die die Validierung bestehen, aber keine tatsächlichen Transaktionen auslösen. Generieren Sie einen Batch von Test-IBANs für Ihre automatisierte Testsuite und stellen Sie sicher, dass Ihre Fehlerbehandlung für verschiedene Länderformate korrekt funktioniert.
Formularvalidierung: Testen Sie einen Checkout-Prozess? Verwenden Sie den Validator, um zu überprüfen, ob Ihre Frontend-Validierung den Backend-Anforderungen entspricht. Ein häufiges Problem ist die Akzeptanz eines IBAN-Formats, das Ihr Zahlungsanbieter später ablehnen wird—das Erkennen während der Entwicklung spart Kundenfrust.
Edge-Case-Testing: Die meisten Entwickler testen mit ein oder zwei Länderformaten. Was passiert, wenn ein Schweizer Kunde mit einer 21-stelligen IBAN Ihr System verwendet, das auf deutsche 22-stellige IBANs ausgelegt ist? Generieren Sie verschiedene Länderformate, um Ihre Feldlängen und Validierungslogik zu testen.
Regressionstests: Nachdem Sie Ihre IBAN-Validierungsbibliothek aktualisiert haben, führen Sie generierte Test-IBANs durch alte und neue Versionen. Abweichungen deuten auf Breaking Changes hin, die die Produktion beeinträchtigen könnten.
Zahlungssysteme: Beim Aufbau von internationalen Überweisungsfunktionen stoßen Sie auf Szenarien, bei denen die IBAN-Struktur selbst das Routing bestimmt. Test-IBANs aus den Niederlanden (die Buchstaben im BBAN enthalten) decken Fehler auf, die rein numerische deutsche IBANs nicht aufzeigen würden.
Banksoftware: Das Parsen von IBANs zur Extraktion von Bankcodes und Zweigstellenidentifikatoren erfordert länderspezifische Logik. Generieren Sie IBANs für jedes unterstützte Land, um zu überprüfen, ob Ihr Parsing-Algorithmus diese Komponenten korrekt identifiziert.
Compliance-Überprüfung: Finanzvorschriften erfordern oft die Validierung von IBANs vor der Verarbeitung. Verwenden Sie dieses Tool, um Testfälle zu erstellen, die belegen, dass Ihr System ungültige Prüfziffern und falsche Formate ablehnt—wesentlich für Audit-Trails.
Bildung zu Bankstandards: Studenten, die internationale Zahlungssysteme lernen, profitieren davon, reale IBAN-Strukturen zu sehen. Generieren Sie Beispiele aus verschiedenen Ländern, um zu veranschaulichen, wie Standardisierung über verschiedene Bankensysteme hinweg funktioniert.
API-Dokumentation: Verwenden Sie anstelle potenziell echter IBANs saubere Beispiele. Dokumentation mit Sätzen wie "Verwenden Sie IBAN DE89370400440532013000 zum Testen" signalisiert Entwicklern sofort, dass dies sichere Testwerte sind.
Datenbank-Seeding: Entwicklungs- und Staging-Umgebungen benötigen realistische Testdaten. Generieren Sie verschiedene IBANs, um Ihre Datenbank mit repräsentativen internationalen Kundenprofilen zu füllen, ohne Datenschutzbedenken.
Datenanonymisierung: Migration von Produktion zu Staging? Ersetzen Sie echte IBANs durch generierte, die Formatgültigkeit für Tests aufrechterhalten und gleichzeitig sensible Informationen entfernen. Entscheidend für DSGVO-Konformität in Entwicklungsumgebungen.
Verschiedene Tools eignen sich für unterschiedliche Bedürfnisse. Hier ein ehrlicher Vergleich:
Am besten für Produktionsvalidierung gegen echte Bankenregister. Diese Dienste prüfen, ob eine IBAN einem tatsächlich aktiven Konto entspricht, nicht nur ob das Format korrekt ist.
Verwenden, wenn: Sie überprüfen müssen, dass eine IBAN existiert und Zahlungen empfangen kann, nicht nur strukturell gültig ist.
Einschränkungen: Kostenpflichtig (typischerweise Preismodell pro API-Aufruf), erfordert Integrationsaufwand, und Sie benötigen trotzdem Test-IBANs für die Entwicklung - genau dafür ist dieses Tool gedacht.
Am besten für eingebettete Validierung in Ihrem Anwendungscode. Bibliotheken wie ibantools für JavaScript oder python-stdnum für Python bieten sowohl Validierungs- als auch Generierungsfunktionen.
Verwenden, wenn: Sie programmatischen Zugriff als Teil Ihrer Build- oder Laufzeit-Validierung benötigen.
Einschränkungen: Erfordert Entwicklungsaufwand zur Integration, und Sie benötigen trotzdem eine schnelle Möglichkeit, spezifische IBANs während des Debuggens manuell zu testen. Dafür ist ein Webtools schneller als das Schreiben von Testskripten.
Das offizielle IBAN-Register, das von SWIFT gepflegt wird, listet alle Länderformate und Validierungsregeln auf. Es ist die maßgebliche Quelle.
Verwenden, wenn: Sie IBAN-Unterstützung von Grund auf implementieren und die offiziellen Spezifikationen benötigen.
Einschränkungen: Es handelt sich um Dokumentation, nicht um ein Tool. Sie müssten trotzdem etwas entwickeln oder finden, um tatsächlich IBANs basierend auf diesen Spezifikationen zu generieren und zu validieren.
Viele nationale Banken bieten länderspezifische Validatoren (z.B. Bundesbank für deutsche IBANs). Diese sind hochgradig genau für ihr jeweiliges Land.
Verwenden, wenn: Sie nur mit einem Land arbeiten und bankspezifische Validierungsdetails benötigen.
Einschränkungen: Fokus auf ein einzelnes Land. Wenn Sie internationale Zahlungssysteme aufbauen, bräuchten Sie Validatoren für jedes Land.
Verwenden Sie dieses Tool, wenn Sie schnelle Tests ohne API-Integration benötigen. Es ist besonders nützlich während der Entwicklung und beim Debuggen, wenn Sie sofort gültige Testdaten generieren oder überprüfen müssen, warum eine bestimmte IBAN die Validierung nicht besteht. Es ersetzt keine produktionstauglichen Validierungsbibliotheken in Ihrer Codebasis, ist aber schneller als das Schreiben von einmaligen Testskripten.
IBAN steht für International Bank Account Number—ein standardisiertes Format, das von der International Organization for Standardization (ISO) entwickelt wurde, um Fehler bei grenzüberschreitenden Zahlungen zu reduzieren. Vor IBANs verwendete jedes Land sein eigenes Kontonummernformat, was zu häufigen Fehlern und gescheiterten Überweisungen führte. IBANs fügen Ländercodes und Prüfziffern hinzu, um Fehler zu erkennen, bevor Geld transferiert wird.
Generierte IBANs sind mathematisch korrekt und bestehen den MOD 97 Validierungsalgorithmus gemäß ISO 13616. Sie folgen den länderspezifischen Strukturen. Sie sind zufällig erstellt und entsprechen keinen echten Bankkonten - genau das ist der Punkt. Sie sind sicher zum Testen, da sie keine echten Konten versehentlich treffen.
Derzeit 10 europäische Länder: Deutschland, Vereinigtes Königreich, Frankreich, Spanien, Italien, Niederlande, Schweiz, Österreich, Belgien und Polen. Diese decken die häufigsten IBAN-Formate ab, denen Sie in europäischen Zahlungssystemen begegnen werden. Benötigen Sie ein anderes Land? Das Feedbackformular ist der beste Weg, um Ergänzungen zu beantragen.
Auf keinen Fall. Dies sind ausschließlich Test-IBANs. Sie bestehen die Formatvalidierung, sind aber nicht mit echten Bankkonten verbunden. Deren Verwendung für tatsächliche Transaktionen führt zu Zahlungsfehlern oder -ablehnungen. Sie sind nur für Entwicklung, Tests und Bildungszwecke gedacht.
Der Validator führt vier Prüfungen nacheinander durch:
Wenn eine Prüfung fehlschlägt, sehen Sie eine spezifische Fehlermeldung, die erklärt, was falsch ist.
Nicht bei der Validierung. IBANs werden typischerweise mit Leerzeichen (in Vierergruppen) zur besseren Lesbarkeit angezeigt, aber die Leerzeichen sind kosmetisch. DE89 3704 0044 0532 0130 00 und DE89370400440532013000 sind für Validierungszwecke identisch. Das Tool verarbeitet beide Formate automatisch.
Nein. Alles läuft in Ihrem Browser mit JavaScript. Keine IBAN-Daten verlassen Ihre Maschine, berühren einen Server oder werden irgendwo gespeichert. Sie können dies überprüfen, indem Sie die Browser-Entwicklertools öffnen und den Netzwerk-Tab beobachten - Sie werden keine Anfragen sehen, wenn IBANs generiert oder validiert werden.
Das Tool unterstützt derzeit nur die 10 Länder im Dropdown-Menü. Die Erweiterung erfordert die Implementierung der spezifischen Formatregeln jedes Landes. Wenn Sie eine Validierung für Länder wie Norwegen, Schweden oder andere benötigen, lassen Sie es uns über das Feedbackformular wissen - Ergänzungen werden basierend auf Nachfrage priorisiert.
Häufigste Gründe:
Die Fehlermeldung wird Ihnen genau sagen, was falsch ist.
Nutzen Sie das Feedbackformular am unteren Seitenende. Spezifische Fehlerberichte mit Beispiel-IBANs sind am hilfreichsten. Bei Funktionsanfragen hilft die Erklärung Ihres Anwendungsfalls bei der Priorisierung der nächsten Entwicklungen.
IBANs identifizieren spezifische Bankkonten, während SWIFT/BIC-Codes Banken oder Bankniederlassungen identifizieren. Denken Sie daran: Der SWIFT-Code sagt Ihnen, welche Bank, die IBAN sagt Ihnen, welches Konto bei dieser Bank. Für internationale Überweisungen benötigen Sie oft beides - der SWIFT-Code leitet zur richtigen Bank, dann leitet die IBAN zum spezifischen Konto.
Ja, denn die ersten beiden Buchstaben jeder IBAN sind der Ländercode. Der Validator liest diese ersten zwei Zeichen, um zu bestimmen, welches Länderformat anzuwenden ist. Deshalb erfolgt die Ländererkennung automatisch, wenn Sie eine IBAN einfügen - es ist keine manuelle Länderauswahl erforderlich.
Ja, aber weniger. Obwohl IBAN in Europa entstanden ist und dort am weitesten verbreitet ist, haben Länder wie Saudi-Arabien, VAE, Brasilien und andere es übernommen. Dieses Tool konzentriert sich derzeit auf europäische Formate, da diese den Großteil der grenzüberschreitenden Transaktionen ausmachen. Die SWIFT IBAN-Registrierung führt die vollständige Liste.
Haben Sie sich jemals gefragt, was die einzelnen Teile einer IBAN wie DE89370400440532013000 bedeuten? Hier erfahren Sie, wie Sie jede IBAN entschlüsseln können:
Schritt 1: Ländercode (erste 2 Zeichen)
DE = DeutschlandSchritt 2: Prüfziffern (nächste 2 Zeichen)
89 = berechnete PrüfsummeSchritt 3: Bankleitzahl (variiert je nach Land)
37040044 in deutschen IBANs = 8-stellige BankkennungSchritt 4: Kontonummer (verbleibende Zeichen)
0532013000 = die tatsächliche Kontonummer bei dieser BankVerschiedene Länder organisieren den BBAN-Teil unterschiedlich. UK-IBANs enthalten einen 6-stelligen Sort-Code (Zweigstellenkennung) zwischen Bankleitzahl und Kontonummer. Französische IBANs kombinieren Bankleitzahl, Zweigstellencode und Kontonummer mit einem Prüfschlüssel. Das Verständnis dieser Unterschiede ist entscheidend bei der programmatischen Verarbeitung von IBANs.
Bei der Implementierung der IBAN-Validierung stoßen Sie wiederholt auf folgende Probleme:
Ursache: Die MOD-97-Berechnung ergibt nicht 1. Entweder sind die Prüfziffern falsch oder es liegt an anderer Stelle im IBAN ein Fehler.
Lösung: Führen Sie die Validierung erneut durch, nachdem Sie Tippfehler korrigiert haben. Bereits ein falsches Zeichen an einer beliebigen Stelle im IBAN führt zum Fehlschlag der Prüfziffernberechnung. Dies ist beabsichtigt - es fängt Dateneingabefehler ab.
Ursache: Der IBAN hat zu viele oder zu wenige Zeichen für seinen Ländercode.
Lösung: Überprüfen Sie, ob der Ländercode dem beabsichtigten Land entspricht. Deutsche IBANs haben immer 22 Zeichen, UK-IBANs 22, französische 27. Fehlende oder zusätzliche Zeichen deuten auf Kürzung oder falsche Daten hin.
Ursache: Zeichen, die an dieser Stelle nicht vorkommen sollten - wie Buchstaben, wo nur Zahlen erlaubt sind.
Lösung: Überprüfen Sie das länderspezifische Format. Deutsche IBANs sind beispielsweise nach Ländercode und Prüfziffern vollständig numerisch, während UK-IBANs 4 Buchstaben für den Bankcode enthalten.
Ursache: Die ersten zwei Buchstaben sind kein erkannter Ländercode oder werden von Ihrem Validator nicht unterstützt.
Lösung: Überprüfen Sie die Schreibweise des Ländercodes. Häufige Fehler sind die Verwendung von UK statt GB oder EN anstelle von Ländercodes. Dieses Tool unterstützt 10 europäische Länder; Produktions-Validatoren sollten alle SWIFT-Registrierungsländer unterstützen.
Wichtiger Unterschied: Die Validierung bestätigt nur, dass der IBAN strukturell korrekt ist, nicht dass das Konto existiert. Ein IBAN kann alle Validierungsprüfungen bestehen, aber trotzdem keinem realen Bankkonto entsprechen. Für Produktionszahlungssysteme benötigen Sie zusätzlich zur Formatvalidierung weitere Überprüfungen.
Wenn Sie IBAN-Unterstützung in Ihre Anwendung integrieren, finden Sie hier bewährte Codebeispiele in mehreren Sprachen. Diese Implementierungen behandeln die Randfälle, auf die Sie in der Produktion stoßen werden:
1function validateIban(iban) {
2 // Leerzeichen entfernen und in Großbuchstaben umwandeln
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Grundlegendes Format prüfen
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Neu anordnen und Buchstaben in Zahlen umwandeln
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 berechnen
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// Beispielverwendung
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 (ungültige Prüfziffern)
321def validate_iban(iban):
2 # Leerzeichen entfernen und in Großbuchstaben umwandeln
3 iban = iban.replace(' ', '').upper()
4
5 # Grundlegende Formatprüfung
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Erste 4 Zeichen ans Ende verschieben
10 rearranged = iban[4:] + iban[:4]
11
12 # Buchstaben in Zahlen umwandeln (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 # Prüfen, ob mod 97 gleich 1 ist
21 return int(converted) % 97 == 1
22
23# Beispielverwendung
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 (ungültige Prüfziffern)
271public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Leerzeichen entfernen und in Großbuchstaben umwandeln
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Grundlegende Formatprüfung
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Erste 4 Zeichen ans Ende verschieben
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Buchstaben in Zahlen umwandeln
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 berechnen
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}
351function generateIban(countryCode) {
2 const countryFormats = {
3 'DE': { length: 22, bbanPattern: '8n10n' },
4 'GB': { length: 22, bbanPattern: '4a6n8n' },
5 'FR': { length: 27, bbanPattern: '5n5n11c2n' }
6 // Weitere Länder nach Bedarf hinzufügen
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Ländercode ${countryCode} nicht unterstützt`);
11 }
12
13 // BBAN basierend auf Länderformat generieren
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 // Numerische Zeichen generieren
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Alphabetische Zeichen generieren
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 // Alphanumerische Zeichen generieren
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 // Prüfziffern berechnen
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Initiale IBAN mit '00' als Prüfziffern erstellen
55 const initialIban = countryCode + '00' + bban;
56
57 // Neu anordnen und Buchstaben in Zahlen umwandeln
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 minus mod 97 berechnen
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// Beispielverwendung
77console.log(generateIban('DE')); // Generiert eine gültige deutsche IBAN
78console.log(generateIban('GB')); // Generiert eine gültige UK-IBAN
791import 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 # Weitere Länder nach Bedarf hinzufügen
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Ländercode {country_code} nicht unterstützt")
14
15 # Zufällige BBAN basierend auf Länderformat generieren
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': # Numerisch
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # Alphabetisch
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Alphanumerisch
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Prüfziffern berechnen
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 # Zeichenkette für Prüfzifferberechnung erstellen
40 check_string = bban + country_code + '00'
41
42 # Buchstaben in Zahlen umwandeln (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 minus mod 97 berechnen
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Beispielverwendung
57print(generate_iban('DE')) # Generiert eine gültige deutsche IBAN
58print(generate_iban('GB')) # Generiert eine gültige UK-IBAN
59Benötigen Sie Testdaten für Ihr Zahlungssystem? Generieren Sie eine gültige IBAN für ein unterstütztes Land oben oder fügen Sie eine bestehende IBAN ein, um ihre Struktur zu überprüfen. Das Tool läuft vollständig in Ihrem Browser - keine Anmeldungen, keine API-Schlüssel, keine Daten werden an Server gesendet.
Schneller Tipp: Generieren Sie IBANs aus mehreren Ländern, um Grenzfälle zu testen. Reale Zahlungssysteme verarbeiten verschiedene Formate, und das Testen mit nur einem Länderformat ist eine häufige Quelle für Produktionsfehler.
Entdecken Sie weitere Tools, die für Ihren Workflow nützlich sein könnten