Bank Statement Parser ist eine Open-Source-Python-Bibliothek, die Kontoauszüge in sieben Formaten (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 und PDF) in strukturierte pandas DataFrames überführt. Die gesamte Verarbeitung läuft lokal — deterministische Ausgabe, automatische PII-Schwärzung und eine optionale hybride PDF-Pipeline, die bei Bedarf lokale LLMs nutzt.
In Sekunden starten
pip install bankstatementparser
from bankstatementparser import create_parser, detect_statement_format
fmt = detect_statement_format("statement.xml")
parser = create_parser("statement.xml", fmt)
df = parser.parse() # pandas DataFrame, ready to use
# Parse PDFs with the hybrid pipeline (v0.0.5+)
from bankstatementparser.hybrid import smart_ingest
result = smart_ingest("statement.pdf")
print(result.source_method) # "deterministic" | "llm" | "vision"
print(result.verification.status) # VERIFIED | DISCREPANCY | FAILED
Eine Bibliothek, sieben Formate
Parsen Sie CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 und PDF in strukturierte pandas DataFrames mit einer einzigen, einheitlichen API. Sie müssen keine separaten Pakete für jedes Format installieren.
| Merkmal | Bank Statement Parser | Einzelformat-OSS (mt940, ofxparse) | SaaS (Ocrolus, Parseur) |
|---|---|---|---|
| Unterstützte Formate | 7, einheitliche API | Jeweils 1 | Viele (via OCR) |
| PDF-Unterstützung | Hybride Pipeline (deterministisch + LLM + Vision) | Nein | Ja (Cloud-OCR) |
| Datenschutz | 100 % lokal (LLMs laufen lokal via Ollama) | 100 % lokal | Daten werden extern gesendet |
| Kosten | Kostenlos, Apache 2.0 | Kostenlos | 49–1.000+ $/Monat |
| Saldoprüfung | Golden Rule (Anfangssaldo + Gutschriften − Belastungen = Endsaldo) | Nein | Unterschiedlich |
| PII-Schwärzung | Integriert, standardmäßig aktiv | Nein | Unterschiedlich |
| Streaming | Begrenzter Speicher | Nein | N/A |
| REST API | Integrierter FastAPI-Microservice | Nein | Ja |
| Deduplizierung | Idempotente Transaktions-Hashes | Nein | Teilweise |
| Ledger-Export | hledger + beancount | Nein | Nein |
Hybride PDF-Pipeline
Bank Statement Parser v0.0.5+ enthält eine dreistufige hybride Pipeline für PDF-Kontoauszüge:
- Pfad A (Deterministisch): Strukturierte PDF-Tabellen werden direkt geparst — kostenlos, am schnellsten, kein LLM nötig.
- Pfad B (Text-LLM): Digitale PDFs mit komplexem Layout werden per lokalem LLM (LiteLLM/Ollama) extrahiert.
- Pfad C (Vision-LLM): Gescannte oder fotokopierte Auszüge werden mit multimodalen Vision-Modellen verarbeitet.
Jede Extraktion wird mit der Golden Rule geprüft: opening balance + credits − debits == closing balance.
Entwickelt für die ISO 20022-Migration
SWIFT hat feste Fristen gesetzt: Alle Finanzinstitute müssen CAMT.053 bis November 2027 empfangen können, und MT940/MT942/MT950 wird bis November 2028 vollständig eingestellt. Bank Statement Parser verarbeitet sowohl das alte MT940 als auch moderne ISO 20022-Formate (CAMT.053, PAIN.001) in einer einzigen API. So funktioniert Ihre Parsing-Pipeline während der Umstellung und darüber hinaus.
Leistung
- 27.000+ Transaktionen/Sekunde beim CAMT.053-Parsing
- 52.000+ Transaktionen/Sekunde beim PAIN.001-Parsing
- < 2 ms bis zum ersten Ergebnis
- Konstanter Speicher von 1K bis 50K+ Transaktionen dank Streaming
- 718 Tests mit 100 % Branch-Coverage für Python 3.10 bis 3.14
Warum Bank Statement Parser?
- Hybride PDF-Extraktion:
smart_ingest()verarbeitet digitale und gescannte PDFs mit automatischem Routing und Saldoprüfung. - Automatische Formaterkennung:
detect_statement_format()identifiziert Dateien automatisch undcreate_parser()liefert den passenden Parser. - Datenschutz zuerst: PII-Schwärzung ist standardmäßig aktiv. LLMs laufen lokal via Ollama — keine Daten verlassen Ihren Rechner.
- REST API: Bereitstellung als FastAPI-Microservice mit
/ingest- und/health-Endpunkten. - Anreicherung: LLM-gestützte Transaktionskategorisierung mit konfigurierbaren Schemata (Standard: Plaid 13-Kategorien).
- Ledger-Export: Export in hledger- und beancount-Journalformate für Plaintext-Accounting-Workflows.
- Massenverarbeitung:
scan_and_ingest()verarbeitet Ordnerstrukturen mit automatischer dateiübergreifender Deduplizierung. - Multi-Währung:
verify_balance_multi_currency()führt die Golden-Rule-Prüfung pro Währungsgruppe durch. - Produktionsbereit: Sichere ZIP-Aufnahme, Eingabevalidierung, Schutz vor Pfad-Traversal und interaktiver Prüfmodus.
- Flexible Ausgabe: Export nach CSV, JSON, Excel, Polars, hledger oder beancount.
- Parallelverarbeitung: Mehrere Dateien gleichzeitig parsen mit
parse_files_parallel().
Gebaut für die Produktion
Bank Statement Parser ist für Treasury-Teams, Fintech-Entwickler und Compliance-Beauftragte konzipiert, die sensible Finanzdaten verarbeiten. Die Bibliothek wird in MT940-zu-CAMT-Migrationspipelines, automatisierten Abstimmungssystemen, PDF-Auszugsverarbeitung und regulatorischen Prüfabläufen in Finanzinstituten eingesetzt.
- 718 Tests mit 100 % Branch-Coverage für Python 3.10 bis 3.14
- SHA-256-Hash-gesperrte Abhängigkeiten mit CycloneDX SBOM für jede Version
- Deterministische Ausgabe — identische Eingaben erzeugen bei jedem Lauf byteidentische Ergebnisse
- Apache 2.0 lizenziert — freie Nutzung in kommerziellen und internen Systemen
Alternativen prüfen? Sehen Sie, wie Bank Statement Parser im Vergleich abschneidet ❯ | Entdecken Sie reale Anwendungsfälle ❯
Erste Schritte ❯ | Auf GitHub ansehen ❯ | Auf PyPI ansehen ❯