Bank Statement Parser je open-source Python knihovna, která analyzuje bankovní výpisy ze sedmi formátů (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 a PDF) do strukturovaných pandas DataFrames. Veškeré zpracování probíhá lokálně — deterministický výstup, automatická redakce PII a volitelný hybridní PDF pipeline, který v případě potřeby směruje přes lokální LLM.
Začněte během sekund
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
Jedna knihovna, sedm formátů
Analyzujte CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 a PDF do strukturovaných pandas DataFrames pomocí jediného API. Není třeba instalovat samostatné balíčky pro každý formát.
| Funkce | Bank Statement Parser | Jednoformátový OSS (mt940, ofxparse) | SaaS (Ocrolus, Parseur) |
|---|---|---|---|
| Podporované formáty | 7, jednotné API | 1 každý | Mnoho (přes OCR) |
| Podpora PDF | Hybridní pipeline (deterministický + LLM + vision) | Ne | Ano (cloud OCR) |
| Ochrana dat | 100% lokální (LLM běží lokálně přes Ollama) | 100% lokální | Data odesílána externě |
| Náklady | Zdarma, Apache 2.0 | Zdarma | 49–1 000+ $/měs. |
| Ověření zůstatku | Golden Rule (počáteční + kredity − debety = konečný) | Ne | Různé |
| Redakce PII | Vestavěná, ve výchozím nastavení zapnutá | Ne | Různé |
| Streaming | Omezená paměť | Ne | N/A |
| REST API | Vestavěný FastAPI mikroservis | Ne | Ano |
| Deduplikace | Idempotentní transakční hashe | Ne | Částečně |
| Export do účetnictví | hledger + beancount | Ne | Ne |
Hybridní PDF pipeline
Bank Statement Parser v0.0.5+ obsahuje tříúrovňový hybridní pipeline pro PDF bankovní výpisy:
- Cesta A (Deterministická): Strukturované PDF tabulky analyzovány přímo — zdarma, nejrychlejší, bez LLM.
- Cesta B (Text-LLM): Digitální PDF se složitým rozložením extrahována přes lokální LLM (LiteLLM/Ollama).
- Cesta C (Vision-LLM): Naskenované nebo fotokopírované výpisy zpracovány multimodálními vision modely.
Každá extrakce je ověřena pomocí Golden Rule: opening balance + credits − debits == closing balance.
Vytvořeno pro migraci ISO 20022
SWIFT stanovil pevné termíny: všechny finanční instituce musí přijímat CAMT.053 do listopadu 2027 a MT940/MT942/MT950 budou plně vyřazeny do listopadu 2028. Bank Statement Parser zpracovává jak starší MT940, tak moderní ISO 20022 formáty (CAMT.053, PAIN.001) v jednom API. Váš pipeline tak funguje během přechodu i po něm.
Výkon
- 27 000+ transakcí za sekundu pro analýzu CAMT.053
- 52 000+ transakcí za sekundu pro analýzu PAIN.001
- < 2 ms čas do prvního výsledku
- Konstantní paměť od 1K do 50K+ transakcí díky streamingu
- 718 testů se 100% pokrytím větví v Pythonu 3.10 až 3.14
Proč Bank Statement Parser?
- Hybridní extrakce PDF:
smart_ingest()zpracovává digitální i naskenované PDF s automatickým směrováním a ověřením zůstatku. - Automatická detekce formátu:
detect_statement_format()identifikuje soubory automaticky acreate_parser()vrátí správný parser. - Ochrana soukromí: Redakce PII je ve výchozím nastavení zapnutá. LLM běží lokálně přes Ollama — žádná data neopustí váš počítač.
- REST API: Nasaďte jako FastAPI mikroservis s endpointy
/ingesta/health. - Obohacení: LLM kategorizace transakcí s připojitelnými schématy (výchozí 13 kategorií Plaid).
- Export do účetnictví: Export do formátů hledger a beancount pro plaintext-accounting workflows.
- Hromadné skenování:
scan_and_ingest()zpracovává adresářové stromy s automatickou deduplikací napříč soubory. - Multi-měna:
verify_balance_multi_currency()provádí ověření Golden Rule pro každou měnovou skupinu. - Připraveno pro produkci: Bezpečné zpracování ZIP, validace vstupů, ochrana proti path traversal a interaktivní režim kontroly.
- Flexibilní výstup: Export do CSV, JSON, Excel, Polars, hledger nebo beancount.
- Paralelní zpracování: Analyzujte více souborů současně pomocí
parse_files_parallel().
Postaveno pro produkci
Bank Statement Parser je navržen pro treasury týmy, fintech vývojáře a compliance pracovníky zpracovávající citlivá finanční data. Knihovna se používá v migračních pipeline MT940-na-CAMT, automatizovaných systémech odsouhlasení, při zpracování PDF výpisů a ve workflow regulačních auditů napříč finančními institucemi.
- 718 testů se 100% pokrytím větví v Pythonu 3.10 až 3.14
- SHA-256 hash-locked závislosti s CycloneDX SBOM pro každé vydání
- Deterministický výstup — identický vstup produkuje bajtově identické výsledky při každém spuštění
- Licence Apache 2.0 — volně k použití v komerčních a interních systémech
Porovnáváte alternativy? Podívejte se, jak si Bank Statement Parser stojí ❯ | Prozkoumejte reálné případy použití ❯