Bank Statement Parser este o bibliotecă Python open-source care analizează extrase bancare din șapte formate (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 și PDF) în DataFrames pandas structurate. Toată procesarea rulează local — ieșire deterministă, redactare automată a PII și un pipeline hibrid opțional pentru PDF care apelează LLM-uri locale atunci când este necesar.
Începeți în câteva secunde
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
O bibliotecă, șapte formate
Analizați CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 și PDF în DataFrames pandas structurate cu un singur API unificat. Nu trebuie să instalați pachete separate pentru fiecare format.
| Funcționalitate | Bank Statement Parser | OSS cu format unic (mt940, ofxparse) | SaaS (Ocrolus, Parseur) |
|---|---|---|---|
| Formate suportate | 7, API unificat | 1 fiecare | Multe (prin OCR) |
| Suport PDF | Pipeline hibrid (deterministic + LLM + vision) | Nu | Da (OCR cloud) |
| Confidențialitatea datelor | 100% local (LLM-urile rulează local prin Ollama) | 100% local | Date trimise extern |
| Cost | Gratuit, Apache 2.0 | Gratuit | 49–1.000+ $/lună |
| Verificarea soldului | Regula de Aur (sold inițial + credite − debite = sold final) | Nu | Variază |
| Redactare PII | Încorporată, activată implicit | Nu | Variază |
| Streaming | Memorie limitată | Nu | N/A |
| REST API | Microserviciu FastAPI încorporat | Nu | Da |
| Deduplicare | Hash-uri idempotente ale tranzacțiilor | Nu | Parțial |
| Export registru | hledger + beancount | Nu | Nu |
Pipeline hibrid pentru PDF
Bank Statement Parser v0.0.5+ include un pipeline hibrid cu trei căi pentru extrasele bancare în format PDF:
- Calea A (Deterministă): Tabele PDF structurate analizate direct — gratuit, cel mai rapid, fără LLM.
- Calea B (Text-LLM): PDF-uri digitale cu layout complex extrase prin LLM local (LiteLLM/Ollama).
- Calea C (Vision-LLM): Extrase scanate sau fotocopiate procesate cu modele vizuale multimodale.
Fiecare extracție este verificată cu Regula de Aur: opening balance + credits − debits == closing balance.
Creat pentru migrarea ISO 20022
SWIFT a stabilit termene ferme: toate instituțiile financiare trebuie să primească CAMT.053 până în noiembrie 2027, iar MT940/MT942/MT950 va fi retras complet până în noiembrie 2028. Bank Statement Parser gestionează atât formatele vechi MT940, cât și formatele moderne ISO 20022 (CAMT.053, PAIN.001) într-un singur API, astfel încât pipeline-ul de analiză funcționează în timpul tranziției și după aceea.
Performanță
- 27.000+ tranzacții/secundă pentru analizarea CAMT.053
- 52.000+ tranzacții/secundă pentru analizarea PAIN.001
- < 2 ms timp până la primul rezultat
- Memorie constantă de la 1K la 50K+ tranzacții prin streaming
- 718 teste cu acoperire de 100% a ramurilor, pe Python 3.10 până la 3.14
De ce Bank Statement Parser?
- Extracție hibridă PDF:
smart_ingest()gestionează PDF-uri digitale și scanate cu rutare automată și verificarea soldului. - Detectare automată a formatului:
detect_statement_format()identifică fișierele automat, iarcreate_parser()returnează analizatorul corect. - Confidențialitate mai întâi: Redactarea PII este activată implicit. LLM-urile rulează local prin Ollama — nicio dată nu părăsește mașina.
- REST API: Implementați ca microserviciu FastAPI cu endpoint-urile
/ingestși/health. - Îmbogățire: Categorizarea tranzacțiilor prin LLM cu scheme conectabile (Plaid cu 13 categorii implicit).
- Export registru: Export în formate hledger și beancount pentru fluxuri de contabilitate în text simplu.
- Scanare în masă:
scan_and_ingest()procesează arbori de foldere cu deduplicare automată între fișiere. - Multi-valută:
verify_balance_multi_currency()execută verificarea Regulii de Aur pe fiecare grup de valută. - Pregătit pentru producție: Ingestie securizată ZIP, validare a intrărilor, prevenirea traversării căilor și mod de revizuire interactiv.
- Ieșire flexibilă: Export în CSV, JSON, Excel, Polars, hledger sau beancount.
- Procesare paralelă: Analizați mai multe fișiere simultan cu
parse_files_parallel().
Construit pentru producție
Bank Statement Parser este conceput pentru echipe de trezorerie, dezvoltatori fintech și ofițeri de conformitate care procesează date financiare sensibile. Biblioteca este utilizată în pipeline-uri de migrare MT940-la-CAMT, sisteme automate de reconciliere, ingestie de extrase PDF și fluxuri de audit de reglementare în cadrul instituțiilor financiare.
- 718 teste cu acoperire de 100% a ramurilor, pe Python 3.10 până la 3.14
- Dependențe blocate cu hash SHA-256 cu CycloneDX SBOM pentru fiecare versiune
- Ieșire deterministă — aceleași date de intrare produc rezultate identice la nivel de octet, la fiecare rulare
- Licență Apache 2.0 — utilizați liber în sisteme comerciale și interne
Evaluați alternative? Vedeți cum se compară Bank Statement Parser ❯ | Explorați cazuri reale de utilizare ❯
Începeți ❯ | Vizualizați pe GitHub ❯ | Vizualizați pe PyPI ❯