NetLabToolsNetLabTools

IBAN-Testdaten für Entwickler: Gültige Fake-IBANs generieren

Formal gültige IBAN-Testdaten für Entwicklung und Testing – korrekte Prüfziffer, ohne reale Kontobezüge, für DE, AT, CH und weitere Länder.

6 Min. Lesezeit

Für Zahlungs-Features, Rechnungs-Workflows oder einfach eine Formular-Validierung brauchst du beim Entwickeln immer wieder IBAN-Testdaten. Deine eigene zu verwenden ist eine schlechte Idee, Dummy-Strings wieDE000000000000000000 bestehen keinen Prüfziffer-Check. Gefragt sind formal gültige, aber fiktive IBANs.

Was eine IBAN formal gültig macht

Die IBAN ist in ISO 13616 standardisiert und besteht aus:

  • Länderkennung (2 Buchstaben, z.B. DE, AT, CH)
  • Prüfziffer (2 Ziffern, nach Modulo-97-Verfahren berechnet)
  • BBAN (länderspezifische Kontoangaben, bei DE: 8 Stellen BLZ + 10 Stellen Kontonummer)

Beispiel aus Deutschland:

DE89 3704 0044 0532 0130 00
└┬┘ └┬┘ └──┬──────────────┘
│  │     │
│  │     └ BBAN (BLZ + Kontonummer)
│  └ Prüfziffer
└ Länderkennung

Modulo-97-Prüfung – so funktioniert's

  1. Die ersten vier Zeichen (Länderkennung + Prüfziffer) ans Ende verschieben.
  2. Buchstaben in Zahlen umwandeln: A = 10, B = 11, … Z = 35.
  3. Die resultierende Riesenzahl modulo 97 nehmen.
  4. Ergebnis muss 1 sein – sonst ist die IBAN ungültig.

Pseudocode (verkürzt):

function isValidIban(iban) {
  const rearranged = iban.slice(4) + iban.slice(0, 4);
  const numeric = rearranged.replace(/[A-Z]/g, c => c.charCodeAt(0) - 55);
  // BigInt-Division wegen Länge
  return BigInt(numeric) % 97n === 1n;
}

Fake-IBANs – was legal und sinnvoll ist

Es gibt keine „offiziellen" Testbereiche für IBANs wie bei Kreditkarten (dort gibt es 4242 4242 4242 4242). Für Tests gelten diese Regeln:

  • IBANs so generieren, dass sie formal gültig sind (Prüfziffer stimmt).
  • BBAN mit Werten füllen, die keiner real existierenden Bankverbindung entsprechen.
  • Keine SEPA-Testüberweisungen auf diese IBANs ausführen – sie zeigen auf nichts.

Unser Testdaten-Generator erzeugt genau solche IBANs: mit korrekter Prüfziffer, aber zufälligen BBANs, die keiner echten Verbindung entsprechen.

Beispiel-IBANs für Entwicklung

Diese sind formal gültig (Prüfziffer stimmt), zeigen aber auf nichts:

DE89 3704 0044 0532 0130 00   (DE, 22 Stellen)
AT61 1904 3002 3457 3201        (AT, 20 Stellen)
CH93 0076 2011 6238 5295 7       (CH, 21 Stellen)
FR14 2004 1010 0505 0001 3M02 606 (FR, 27 Stellen)
GB82 WEST 1234 5698 7654 32      (GB, 22 Stellen)

Längen pro Land

LandCodeIBAN-Länge
DeutschlandDE22
ÖsterreichAT20
SchweizCH21
FrankreichFR27
NiederlandeNL18
ItalienIT27
GroßbritannienGB22

Typische Fehlerquellen in der Validierung

  • Leerzeichen und Bindestriche: vor der Prüfung immer entfernen.
  • Case: Buchstaben vor der Umwandlung uppercase machen.
  • Länge nicht geprüft: ein Modulo-97-Check sagt noch nichts über die Landes-Länge aus. Beides prüfen.
  • Integer-Overflow: die numerische Darstellung wird 20+ Ziffern lang – nutze BigInt oder eine Modulo-Variante Stück für Stück.

Workflow für dein Projekt

  1. Im Testdaten-Generator IBAN als Feld aktivieren.
  2. Länder-Mix wählen (z.B. nur DE oder DACH).
  3. Als JSON, CSV oder SQL exportieren.
  4. In Fixtures oder Seed-Dateien ablegen, aber nie in VCS-Dateien, die als „production-ready" durchgehen.

So hast du jederzeit saubere, formal gültige IBANs für Tests – ohne versehentlich eine echte Bankverbindung in deinen Testdaten zu haben.