Python · CSV · IBAN-Prüfung

IBANs in einer CSV-Datei mit Python prüfen

Prüfen Sie eine exportierte IBAN-Liste und erstellen Sie eine neue CSV-Datei mit Prüfstatus, Bankname und BIC. Das herunterladbare Skript verwendet die Python-Standardbibliothek, erhält die Zeilenreihenfolge und prüft doppelte IBANs nur einmal pro Durchlauf.

Dies ist ein lokaler Kommandozeilenablauf für Python ab Version 3.10. Jede unterschiedliche, nicht leere IBAN wird an die IBAN-Test-API gesendet. Sie benötigen einen eigenen API-Token und ausreichend Anfragekontingent.

Skript zur CSV-Prüfung herunterladen

Die ZIP-Datei enthält iban_csv.py, eine Beispiel-CSV, eine README und automatisierte Tests. Zusätzliche Python-Pakete sind nicht erforderlich.

Starterpaket herunterladen (ZIP)

Python 3.10+ · Standardbibliothek · Beispiel-CSV

Teststand des Beispiels: Neun lokale automatisierte Tests decken Anfrageaufbau, doppelte und leere Zeilen, Prüfergebnisse, Kontingentschutz, Fehlerbehandlung, CSV-Maskierung und den Erhalt vorhandener Dateien ab. Ein authentifizierter Durchlauf gegen die Live-API wurde für dieses Beispiel nicht durchgeführt.

1. Eingabedatei vorbereiten

Exportieren Sie Ihre Quelldaten als UTF-8-CSV. Verwenden Sie die kleingeschriebene Spaltenüberschrift iban und optional eine Spalte reference, um Ergebnisse Ihren Datensätzen zuzuordnen. Das Skript übernimmt nur diese beiden Eingabespalten in die Ausgabe; andere Spalten bleiben unberücksichtigt. Bewahren Sie Ihren Originalexport auf.

reference,iban
example-valid,DE89 3704 0044 0532 0130 00
example-duplicate,de89370400440532013000
example-invalid-checksum,DE00370400440532013000
example-empty,

Dies sind Testbeispiele, keine Zahlungsanweisungen. Die ersten beiden Zeilen ergeben dieselbe normalisierte IBAN. Die leere Zeile erhält MISSING ohne API-Anfrage. Speichern Sie IBANs und Referenzen beim Export aus einer Tabellenkalkulation als Text.

2. Eine erste kleine Prüfung ausführen

Entpacken Sie das Paket, öffnen Sie ein Terminal in dessen Verzeichnis und prüfen Sie, ob Python verfügbar ist:

python3 --version
python3 iban_csv.py sample.csv results.csv

Verwenden Sie unter Windows gegebenenfalls py -3 statt python3, je nach Installation. Das Programm fragt Ihren API-Token ab, ohne die eingegebenen Zeichen anzuzeigen. Sie finden den Token in der API-Übersicht Ihres IBAN-Test-Kontos. Er wird nicht in die CSV-Datei geschrieben.

Das Standardlimit beträgt 10 unterschiedliche, nicht leere IBANs. Das Skript zählt sie vor der ersten Anfrage und stoppt bei Überschreitung. Das obige Beispiel benötigt zwei API-Anfragen, sofern beide regulär abgeschlossen werden.

Bei Erfolg gibt das Programm die Anzahl der Zeilen und Anfragen aus. Es erstellt die Ausgabedatei erst, wenn für jede angefragte IBAN ein verwertbares Prüfergebnis vorliegt. Ein API-Fehler hinterlässt daher keine teilweise geprüfte Ergebnis-CSV.

3. Die Ausgabe lesen

SpalteBedeutung
reference, ibanIhre ursprüngliche Referenz und Eingabe, bei Bedarf mit Schutz gegen Tabellenformeln.
iban_normalizedIBAN in Großbuchstaben ohne Leerraum.
statusVALID, INVALID oder MISSING.
code, messageAPI-Ergebniscode und erläuternde Meldung. Verwenden Sie für automatisierte Entscheidungen den Code, nicht den Meldungstext.
bank, bicVerfügbare Bankdaten; Felder können leer sein.
checked_at_utcNach der Antwort für diese IBAN erfasster UTC-Zeitstempel. Duplikate teilen Ergebnis und Zeitstempel; leere Eingaben haben keinen Zeitstempel.

VALID erfordert Code 2100 und error: false. Die Codes 3100, 3101 und 3102 mit error: true ergeben INVALID. Authentifizierungsfehler, erschöpftes Kontingent, Serverfehler und unerwartete Antworten stoppen das Programm mit einem Exit-Code ungleich null.

4. Andere Exporte und größere Listen verarbeiten

Wählen Sie für einen Export mit Semikolon das Trennzeichen ausdrücklich aus. Es gilt für Ein- und Ausgabe:

python3 iban_csv.py customers.csv checked-customers.csv --delimiter ";"

Prüfen Sie Ihr verbleibendes API-Kontingent und erhöhen Sie anschließend bei Bedarf die Anfragegrenze pro Durchlauf:

python3 iban_csv.py customers.csv checked-customers.csv --max-requests 100

Dabei werden einzelne Anfragen nacheinander gesendet; es handelt sich nicht um einen REST-Sammelendpunkt. Ein fehlgeschlagener Durchlauf kann bereits Anfragen verbraucht haben. Ein erneuter Start prüft die Liste erneut: Die Duplikatbereinigung gilt innerhalb eines Durchlaufs, nicht über mehrere Durchläufe hinweg. Diese Vorlage hat weder automatische Wiederholungen noch fortsetzbare Zwischenstände.

Stellen Sie für unbeaufsichtigte Ausführungen IBAN_TEST_API_TOKEN über die Geheimniskonfiguration Ihres Job-Systems bereit. Speichern Sie echte Tokens nicht in der Versionsverwaltung und übergeben Sie sie nicht als Kommandozeilenargument. Für manuelle Durchläufe ist die verdeckte interaktive Eingabe am einfachsten.

Häufige Probleme

  • „CSV must have an iban header“: Prüfen Sie die genaue Schreibweise der Spaltenüberschrift, die Kodierung und das Trennzeichen. XLSX ist kein CSV.
  • „Choose a new output filename“: Das Skript überschreibt weder vorhandene Dateien noch seine Eingabe. Verwenden Sie für jeden Durchlauf einen neuen Dateinamen.
  • HTTP 401 oder API-Code 4002: Prüfen Sie Ihren Token. Wiederholen Sie fehlgeschlagene Authentifizierungen nicht fortlaufend.
  • API-Code 4003: Das Kontingent ist aufgebraucht. Stoppen Sie den Job und prüfen Sie Ihr Kontingent vor einem erneuten Start.
  • Netzwerkfehler oder ungültiges JSON: Der Durchlauf stoppt. Prüfen Sie Verbindung und API-Verfügbarkeit; ein Übertragungsfehler sagt nichts über die Gültigkeit der IBAN aus.

Exportierte Daten schützen

Nur die IBAN wird an die API gesendet; die Referenz bleibt in Ihrem lokalen Ablauf. Bewahren Sie Ein- und Ausgabedateien an einem geeigneten privaten Ort auf. Das Skript stellt potenziell ausführbaren Tabellenwerten ein Apostroph voran, um das Risiko eingeschleuster Formeln zu verringern. Dadurch kann sich die wörtliche Darstellung einer Referenz wie =1+1 ändern. Behalten Sie den Originalexport für einen exakten Abgleich.

Eine gültige IBAN belegt weder Kontoexistenz, Inhaberschaft, Kontostand noch Zahlungserfolg. Informationen zu einzelnen SEPA-Verfahren finden Sie in der Anleitung zur SEPA-Teilnahme einer Bank. Für einen visuellen Ablauf eignet sich die n8n-Anleitung.

Enthaltene Offline-Tests ausführen

python3 -m unittest -v

Die Tests verwenden kontrollierte Antworten und verbrauchen keine API-Anfragen. Sie prüfen die Programmentscheidungen, nicht Ihren Token oder aktuelle Bankdaten.

Referenzen: IBAN-Test-API-Dokumentation, Python-CSV-Referenz, Python-Referenz zu HTTP-Anfragen.

API-Konto anlegen API-Kontingente vergleichen

Bankdaten-Validierung

Validierung mit Bankverzeichnissen für 40 Länder

Für diese Länder prüfen wir IBANs gegen verfügbare Bankverzeichnisse und liefern, sofern vorhanden, Bankdaten wie Institut, Ort und BIC zurück.

ALAlbanien ADAndorra BEBelgien BGBulgarien DKDänemark DEDeutschland EEEstland FIFinnland FRFrankreich GIGibraltar GRGriechenland IEIrland ISIsland ITItalien HRKroatien LVLettland LILiechtenstein LTLitauen LULuxemburg MTMalta MDMoldau MEMontenegro NLNiederlande MKNordmazedonien NONorwegen ATÖsterreich PLPolen PTPortugal RORumänien SMSan Marino SESchweden CHSchweiz RSSerbien SKSlowakei SISlowenien ESSpanien CZTschechien HUUngarn VAVatikanstadt CYZypern

IBAN-Syntaxprüfung

Format-Check für 115 IBAN-Formate

Prüfen Sie IBANs auf gültigen Aufbau, passende Länge und korrekte Prüfziffer. So erkennen Sie Tippfehler und Zahlendreher, bevor eine Zahlung fehlschlägt. Die zusätzliche Bankvalidierung mit echten Bankverzeichnissen ist für die Länder im Bereich darüber verfügbar.

MCP Server für AI Agenten - Verbinde KI-Clients mit IBAN-Validierungstools - https://www.iban-test.eu/mcp - API-Dokumentation