Du entwickelst ein Zahlungsformular oder schreibst Unit-Tests? Dann brauchst du vielleicht IBAN-ähnliche Werte mit gültiger Prüfsumme, um Formatierung und Validierung zu testen. Ein Wert, der MOD-97 besteht, ist dadurch aber weder automatisch ein Testwert für einen Zahlungsanbieter noch für ein echtes Zahlungssystem geeignet.
Die Verwendung von Kunden-IBANs in der Entwicklung ist riskant:
- Eine falsch konfigurierte Staging-Umgebung könnte echte Überweisungen auslösen.
- Eine IBAN, die einer identifizierbaren Person zugeordnet ist, kann nach dem geltenden Datenschutzrecht ein personenbezogenes Datum sein.
- Das Kopieren von Bankdaten aus der Produktion in die Entwicklung kann gegen Zugriffs-, Aufbewahrungs- und Testdatenrichtlinien deiner Organisation verstoßen.
Beispielhafte Test-IBANs nach Land
Die folgenden öffentlichen Formatbeispiele bestehen Längen- und MOD-97-Prüfungen. Es ist nicht garantiert, dass sie keinem Konto zugewiesen sind oder von einer Sandbox akzeptiert werden. Verwende sie nur für isolierte Validator-Tests, niemals in einem Zahlungsverkehrssystem.
Westeuropa
| Land | IBAN | Länge |
|---|---|---|
| Deutschland | DE89 3704 0044 0532 0130 00 |
22 |
| Frankreich | FR76 3000 6000 0112 3456 7890 189 |
27 |
| Spanien | ES91 2100 0418 4502 0005 1332 |
24 |
| Italien | IT60 X054 2811 1010 0000 0123 456 |
27 |
| Niederlande | NL91 ABNA 0417 1643 00 |
18 |
| Belgien | BE68 5390 0754 7034 |
16 |
| Österreich | AT61 1904 3002 3457 3201 |
20 |
| Irland | IE29 AIBK 9311 5212 3456 78 |
22 |
Nordeuropa
| Land | IBAN | Länge |
|---|---|---|
| Vereinigtes Königreich | GB29 NWBK 6016 1331 9268 19 |
22 |
| Schweden | SE45 5000 0000 0583 9825 7466 |
24 |
| Dänemark | DK50 0040 0440 1162 43 |
18 |
| Norwegen | NO93 8601 1117 947 |
15 |
| Finnland | FI21 1234 5600 0007 85 |
18 |
Osteuropa
| Land | IBAN | Länge |
|---|---|---|
| Polen | PL61 1090 1014 0000 0712 1981 2874 |
28 |
| Tschechien | CZ65 0800 0000 1920 0014 5399 |
24 |
| Ungarn | HU42 1177 3016 1111 1018 0000 0000 |
28 |
| Rumänien | RO49 AAAA 1B31 0075 9384 0000 |
24 |
Du brauchst Format-Fixtures für nicht aufgeführte Länder? Der Random-IBAN-Generator unterstützt derzeit 42 Länder, erzeugt in der Weboberfläche bis zu 100 Werte pro Batch und exportiert sie als CSV, JSON oder TXT. Er prüft nicht, ob eine Bankkennung aktuell ist, ob ein Konto existiert oder ob eine Sandbox eines Zahlungsanbieters den Wert akzeptiert.
So werden Test-IBANs erzeugt
Der Ablauf umfasst vier Schritte. Die internationale IBAN-Struktur ist in ISO 13616-1 definiert; die Prüfziffern verwenden ISO/IEC 7064 MOD97-10:
- Land auswählen – dadurch werden IBAN-Länge und Format festgelegt.
- Position der Bankkennung ausfüllen – sie muss dem Zeichenmuster des Landes entsprechen; für einen Integrationstest solltest du einen vom Zahlungsanbieter bereitgestellten Wert verwenden.
- Kontonummer erzeugen – mit zufälligen Ziffern in der für das Land vorgesehenen Länge.
- Prüfziffern berechnen – mit dem ISO/IEC 7064 MOD97-10-Algorithmus.
Eine ausführliche Erklärung findest du in unserem Leitfaden zur IBAN-Validierung.
IBANs in Unit-Tests
Deine Testsuite sollte Folgendes abdecken:
Fälle mit gültiger Prüfsumme:
DE89370400440532013000✓GB29NWBK60161331926819✓FR7630006000011234567890189✓
Ungültige Fälle:
- Falsche Prüfziffern:
DE00370400440532013000✗ - Ungültiger Ländercode:
XX89370400440532013000✗ - Falsche Länge ✗
- Leerer String ✗
Grenzfälle:
- IBANs mit Leerzeichen
- Kleinbuchstaben
- Gemischte Formatierung
Test-IBANs von Zahlungsanbietern
Sandboxes von Zahlungsanbietern reservieren oft bestimmte Kontowerte für erfolgreiche, abgelehnte, zu prüfende oder ausstehende Szenarien. Diese Werte und ihr Verhalten sind anbieterspezifisch und können sich ändern. Übernimm sie für die konkrete API, das Land, die Zahlungsmethode und die Testumgebung aus der jeweils aktuellen offiziellen Dokumentation. Ein Wert von RandomIBAN oder ein öffentliches SWIFT-Formatbeispiel darf nicht als Sandbox-Zugangsdaten von Stripe, Adyen, Mangopay oder einem anderen Anbieter dargestellt werden, sofern der Anbieter ihn nicht aktuell als solchen dokumentiert.
Checkliste für Formulartests
| Szenario | Erwartung |
|---|---|
| IBAN mit gültiger Standardprüfsumme | Die Prüfsummenebene akzeptieren |
| IBAN mit gültiger Prüfsumme und Leerzeichen | Nach der Bereinigung akzeptieren |
| IBAN mit gültiger Prüfsumme in Kleinbuchstaben | Nach der Normalisierung akzeptieren |
| Falsche Prüfziffern | Mit einer verständlichen Fehlermeldung ablehnen |
| Falsche Länge für das Land | Ablehnen |
| Ungültiger Ländercode | Ablehnen |
| Leeres Feld | Pflichtfeldfehler |
| Zufälliger Text | Formatfehler |
Bewährte Vorgehensweisen
Das solltest du tun:
- Synthetische IBAN-Fixtures verwenden, die hinsichtlich Format und Prüfsumme gültig sind.
- Mehrere Länder testen, nicht nur deutsche IBANs.
- Grenzfälle testen: das kürzeste unterstützte Format (Norwegen, 15 Zeichen) und das längste (Malta, 31 Zeichen).
- Test- und Produktionsumgebungen trennen.
- Test-IBANs in einem gemeinsamen Testdatenverzeichnis dokumentieren.
Das solltest du nicht tun:
- Echte IBANs in Tests verwenden, auch nicht deine eigene.
- Test-IBANs im Produktionscode fest codieren.
- Annehmen, dass alle IBANs gleich lang sind (ISO 13616-1 erlaubt bis zu 34 Zeichen; dieser Generator unterstützt derzeit Formate von 15 bis 31 Zeichen).
- Länderspezifische Tests überspringen.
- Test-IBANs eines Zahlungsanbieters bei einem anderen verwenden.
Tests mit mehreren Währungen
| Währung | Land | Öffentliches Formatbeispiel |
|---|---|---|
| EUR | Deutschland | DE89 3704 0044 0532 0130 00 |
| GBP | Vereinigtes Königreich | GB29 NWBK 6016 1331 9268 19 |
| CHF | Schweiz | CH93 0076 2011 6238 5295 7 |
| SEK | Schweden | SE45 5000 0000 0583 9825 7466 |
| NOK | Norwegen | NO93 8601 1117 947 |
| PLN | Polen | PL61 1090 1014 0000 0712 1981 2874 |
| CZK | Tschechien | CZ65 0800 0000 1920 0014 5399 |
Die Währung ist eine Testdimension; die IBAN selbst beweist oder bestimmt nicht die Transaktionswährung.
Die praktische Regel lautet: Verwende für lokale Formatprüfungen synthetische Fixtures mit beschränktem Zugriff und für Sandbox-Integrationstests die aktuell vorgesehenen Werte des Zahlungsanbieters. Halte beide Kategorien von der Produktion fern. Mit dem Random-IBAN-Generator kannst du neue strukturelle Fixtures erzeugen – im Rahmen seiner dokumentierten Grenzen von 42 unterstützten Ländern sowie bis zu 100 über die Weboberfläche erzeugten Werten pro Stapel mit CSV-, JSON- und TXT-Export.