Bank Statement Parser är ett Python-bibliotek med öppen källkod som analyserar kontoutdrag från sju format (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 och PDF) till strukturerade pandas DataFrames. All bearbetning körs lokalt — deterministisk utdata, automatisk PII-redaktion och en valfri hybrid-PDF-pipeline som dirigerar via lokala LLM:er vid behov.
Kom igång på några sekunder
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
Ett bibliotek, sju format
Analysera CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 och PDF till strukturerade pandas DataFrames med ett enda, enhetligt API. Du behöver inte installera separata paket för varje format.
| Funktion | Bank Statement Parser | Enkelformat OSS (mt940, ofxparse) | SaaS (Ocrolus, Parseur) |
|---|---|---|---|
| Format som stöds | 7, enhetligt API | 1 st | Många (via OCR) |
| PDF-stöd | Hybrid-pipeline (deterministisk + LLM + vision) | Nej | Ja (moln-OCR) |
| Datasekretess | 100 % lokalt (LLM:er körs lokalt via Ollama) | 100 % lokalt | Data skickas externt |
| Kostnad | Gratis, Apache 2.0 | Gratis | $49–$1 000+/mån |
| Saldoverifiering | Golden Rule (ingående + krediteringar − debiteringar = utgående) | Nej | Varierar |
| PII-redaktion | Inbyggd, på som standard | Nej | Varierar |
| Streaming | Begränsat minne | Nej | N/A |
| REST API | Inbyggd FastAPI-mikrotjänst | Nej | Ja |
| Deduplicering | Idempotenta transaktionshashar | Nej | Delvis |
| Ledger-export | hledger + beancount | Nej | Nej |
Hybrid-PDF-pipeline
Bank Statement Parser v0.0.5+ inkluderar en trevägs hybrid-pipeline för PDF-kontoutdrag:
- Väg A (Deterministisk): Strukturerade PDF-tabeller tolkas direkt — gratis, snabbast, ingen LLM behövs.
- Väg B (Text-LLM): Digitala PDF:er med komplexa layouter extraheras via lokal LLM (LiteLLM/Ollama).
- Väg C (Vision-LLM): Skannade eller fotokopierade utdrag bearbetas med multimodala vision-modeller.
Varje extraktion verifieras med Golden Rule: opening balance + credits − debits == closing balance.
Byggd för ISO 20022-migreringen
SWIFT har satt fasta deadlines: alla finansinstitut måste ta emot CAMT.053 senast november 2027, och MT940/MT942/MT950 kommer att vara helt avvecklade senast november 2028. Bank Statement Parser hanterar både äldre MT940 och moderna ISO 20022-format (CAMT.053, PAIN.001) i ett enda API, så din pipeline fungerar under övergången och därefter.
Prestanda
- 27 000+ transaktioner/sekund för CAMT.053-tolkning
- 52 000+ transaktioner/sekund för PAIN.001-tolkning
- < 2 ms tid till första resultat
- Konstant minne från 1K till 50K+ transaktioner via streaming
- 718 tester med 100 % grenstäckning över Python 3.10 till 3.14
Varför Bank Statement Parser?
- Hybrid-PDF-extraktion:
smart_ingest()hanterar digitala och skannade PDF:er med automatisk dirigering och saldoverifiering. - Automatisk formatdetektering:
detect_statement_format()identifierar filer automatiskt ochcreate_parser()returnerar rätt parser. - Sekretess först: PII-redaktion är på som standard. LLM:er körs lokalt via Ollama — ingen data lämnar din maskin.
- REST API: Driftsätt som en FastAPI-mikrotjänst med
/ingest- och/health-ändpunkter. - Berikande: LLM-driven transaktionskategorisering med pluggbara scheman (Plaid 13-kategori som standard).
- Ledger-export: Exportera till hledger- och beancount-journalformat för plaintext-accounting-arbetsflöden.
- Massbearbetning:
scan_and_ingest()bearbetar mappträd med automatisk korsfilsdeduplicering. - Multivaluta:
verify_balance_multi_currency()kör Golden Rule-verifiering per valutgrupp. - Produktionsklar: Säker ZIP-inmatning, indatavalidering, vägtraverseringsskydd och interaktivt granskningsläge.
- Flexibel utdata: Exportera till CSV, JSON, Excel, Polars, hledger eller beancount.
- Parallell bearbetning: Tolka flera filer samtidigt med
parse_files_parallel().
Byggd för produktion
Bank Statement Parser är designad för treasury-team, fintech-utvecklare och efterlevnadsansvariga som behandlar känslig finansiell data. Biblioteket används i MT940-till-CAMT-migreringspipelines, automatiserade avstämningssystem, PDF-utdragsinmatning och regulatoriska granskningsflöden inom finansinstitut.
- 718 tester med 100 % grenstäckning över Python 3.10 till 3.14
- SHA-256 hash-låsta beroenden med CycloneDX SBOM för varje utgåva
- Deterministisk utdata — identisk indata ger byte-identiska resultat, varje körning
- Apache 2.0-licensierad — använd fritt i kommersiella och interna system
Utvärderar du alternativ? Se hur Bank Statement Parser jämför ❯ | Utforska verkliga användningsfall ❯