Kontoauszug-Parser ist eine Open-Source Python-Bibliothek, die Kontoauszuege aus sechs Formaten in strukturierte pandas DataFrames umwandelt. Die gesamte Verarbeitung erfolgt lokal -- keine Netzwerkaufrufe, deterministisches Ergebnis und automatische PII-Maskierung.
Fuer wen ist diese Bibliothek gedacht?
- Treasury-Teams, die von MT940 auf CAMT.053 migrieren und einen Parser benoetigen, der waehrend der Umstellung sowohl alte als auch neue Formate verarbeitet.
- Fintech-Entwickler, die Abgleichs-, Reporting- oder Buchhaltungspipelines aufbauen und eine einzige Abhaengigkeit statt einer Kombination aus mt940 + ofxparse + individueller CSV-Logik bevorzugen.
- Compliance-Teams, die PII-Maskierung als Standard und prueffaehige, deterministische Ausgaben benoetigen, die niemals Daten an externe Dienste senden.
- Alle, die sensible Finanzdaten nicht an einen SaaS-Drittanbieter senden moechten, wenn ein lokales Open-Source-Tool die Aufgabe ebenso gut erledigt.
Unterstuetzte Formate
| Format | Standard | Dateitypen | Parser-Klasse |
|---|---|---|---|
| CAMT.053 | ISO 20022 Bank-to-Customer Statement | .xml |
CamtParser |
| PAIN.001 | ISO 20022 Credit Transfer Initiation | .xml |
Pain001Parser |
| CSV | Generische Bankexporte | .csv |
CsvStatementParser |
| OFX | Open Financial Exchange | .ofx |
OfxParser |
| QFX | Quicken Financial Exchange | .qfx |
QfxParser |
| MT940 | SWIFT-Standard | .mt940, .sta |
Mt940Parser |
Alle Formate erzeugen normalisierte pandas DataFrames mit einheitlichen Spaltennamen, sodass die Weiterverarbeitung formatunabhaengig erfolgen kann.
Kernfunktionen
- Automatische Formaterkennung:
detect_statement_format()identifiziert das Format;create_parser()instanziiert den passenden Parser. - Streaming-Verarbeitung: Verarbeiten Sie grosse Dateien (50 MB+, 50.000+ Transaktionen) mit konstantem Speicherverbrauch ueber
parse_streaming(). - Parallele Verarbeitung: Parsen Sie mehrere Dateien gleichzeitig mit
parse_files_parallel()unter Verwendung von ProcessPoolExecutor. - Deduplizierung: Erkennung exakter Duplikate und vermuteter Uebereinstimmungen mit nachvollziehbaren Konfidenzwerten.
- In-Memory-Verarbeitung:
from_string()undfrom_bytes()fuer SFTP- und API-Workflows ohne Festplattenzugriff. - Sichere ZIP-Verarbeitung:
iter_secure_xml_entries()mit Kompressionsverhaeltnis-Limits, Groessenbegrenzungen pro Eintrag und Ablehnung verschluesselter Eintraege. - Export: CSV, JSON, Excel (
.xlsx) und optional Polars DataFrames.
Sicherheit und Datenschutz
- PII-Maskierung: Namen, IBANs und Adressen werden in der CLI-Ausgabe standardmaessig unkenntlich gemacht. Vollstaendige Daten erhalten Sie mit
--show-pii. - XXE-Schutz: XML-Parsing verwendet
resolve_entities=False,no_network=True,load_dtd=False. - ZIP-Bomben-Schutz: Kompressionsverhaeltnis-Limits (Standard 100:1), Groessenbegrenzungen pro Eintrag (10 MB), Ablehnung verschluesselter Eintraege.
- Path-Traversal-Schutz: Blockliste fuer gefaehrliche Muster und Symlink-Aufloesung.
- Supply-Chain-Sicherheit: SHA-256-gehashte Abhaengigkeiten, CycloneDX SBOM, Build-Provenance-Attestierung.
Leistung
| Metrik | Wert |
|---|---|
| CAMT.053-Durchsatz | 27.000+ Tx/s |
| PAIN.001-Durchsatz | 52.000+ Tx/s |
| Latenz pro Transaktion (CAMT) | 37 Mikrosekunden |
| Latenz pro Transaktion (PAIN.001) | 19 Mikrosekunden |
| Zeit bis zum ersten Ergebnis | < 2 ms |
| Speicherskalierung (1K-50K Tx) | Konstant (Streaming) |
| Testabdeckung | 100 % Branch Coverage |
| Tests | 467 in 29 Testdateien |
Jetzt loslegen
Installation und Beispiele ansehen ❯
"GitHub Repository"