Bank Statement Parser to biblioteka Pythona typu open source, która parsuje wyciągi bankowe z siedmiu formatów (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 i PDF) do ustrukturyzowanych pandas DataFrames. Całe przetwarzanie odbywa się lokalnie — deterministyczne wyniki, automatyczna redakcja danych osobowych oraz opcjonalny hybrydowy pipeline PDF, który w razie potrzeby kieruje dane przez lokalne modele LLM.
Rozpocznij w kilka 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 biblioteka, siedem formatów
Parsuj CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 i PDF do ustrukturyzowanych pandas DataFrames za pomocą jednego, ujednoliconego API. Nie trzeba instalować osobnych pakietów dla każdego formatu.
| Funkcja | Bank Statement Parser | Jednoformatowy OSS (mt940, ofxparse) | SaaS (Ocrolus, Parseur) |
|---|---|---|---|
| Obsługiwane formaty | 7, ujednolicone API | 1 każdy | Wiele (przez OCR) |
| Obsługa PDF | Hybrydowy pipeline (deterministyczny + LLM + wizja) | Nie | Tak (chmurowy OCR) |
| Prywatność danych | 100% lokalnie (LLM działają lokalnie przez Ollama) | 100% lokalnie | Dane wysyłane na zewnątrz |
| Koszt | Bezpłatny, Apache 2.0 | Bezpłatny | 49–1000+ USD/mies. |
| Weryfikacja salda | Golden Rule (otwarcie + uznania − obciążenia = zamknięcie) | Nie | Różnie |
| Redakcja PII | Wbudowana, domyślnie włączona | Nie | Różnie |
| Streaming | Ograniczona pamięć | Nie | Nie dotyczy |
| REST API | Wbudowany mikroserwis FastAPI | Nie | Tak |
| Deduplikacja | Idempotentne hash transakcji | Nie | Częściowo |
| Eksport do księgi | hledger + beancount | Nie | Nie |
Hybrydowy pipeline PDF
Bank Statement Parser w wersji 0.0.5+ zawiera trójścieżkowy hybrydowy pipeline do wyciągów bankowych w formacie PDF:
- Ścieżka A (deterministyczna): Ustrukturyzowane tabele PDF parsowane bezpośrednio — bezpłatnie, najszybciej, bez potrzeby LLM.
- Ścieżka B (Text-LLM): Cyfrowe pliki PDF ze złożonymi układami przetwarzane przez lokalny LLM (LiteLLM/Ollama).
- Ścieżka C (Vision-LLM): Zeskanowane lub skserowane wyciągi przetwarzane przez multimodalne modele wizyjne.
Każda ekstrakcja jest weryfikowana za pomocą Golden Rule: opening balance + credits − debits == closing balance.
Stworzony dla migracji ISO 20022
SWIFT wyznaczył twarde terminy: wszystkie instytucje finansowe muszą obsługiwać CAMT.053 do listopada 2027, a MT940/MT942/MT950 zostaną całkowicie wycofane do listopada 2028. Bank Statement Parser obsługuje zarówno starsze formaty MT940, jak i nowoczesne ISO 20022 (CAMT.053, PAIN.001) w jednym API. Pipeline parsowania działa zarówno w okresie przejściowym, jak i po nim.
Wydajność
- 27 000+ transakcji na sekundę przy parsowaniu CAMT.053
- 52 000+ transakcji na sekundę przy parsowaniu PAIN.001
- < 2 ms czas do pierwszego wyniku
- Stała pamięć od 1 tys. do 50 tys.+ transakcji dzięki streaming
- 718 testów ze 100% pokryciem gałęzi w Pythonie od 3.10 do 3.14
Dlaczego Bank Statement Parser?
- Hybrydowa ekstrakcja PDF:
smart_ingest()obsługuje cyfrowe i zeskanowane pliki PDF z automatycznym routingiem i weryfikacją salda. - Automatyczne wykrywanie formatu:
detect_statement_format()identyfikuje pliki automatycznie, acreate_parser()zwraca właściwy parser. - Prywatność przede wszystkim: Redakcja PII jest domyślnie włączona. Modele LLM działają lokalnie przez Ollama — żadne dane nie opuszczają maszyny.
- REST API: Wdrożenie jako mikroserwis FastAPI z endpointami
/ingesti/health. - Wzbogacanie: Kategoryzacja transakcji z użyciem LLM z konfigurowalnymi schematami (domyślny schemat Plaid z 13 kategoriami).
- Eksport do księgi: Eksport do formatów hledger i beancount dla przepływów pracy plaintext-accounting.
- Masowe skanowanie:
scan_and_ingest()przetwarza drzewa folderów z automatyczną deduplikacją między plikami. - Wiele walut:
verify_balance_multi_currency()uruchamia weryfikację Golden Rule dla każdej grupy walutowej. - Gotowy do produkcji: Bezpieczne przetwarzanie ZIP, walidacja danych wejściowych, ochrona przed przechodzeniem ścieżek i tryb interaktywnego przeglądu.
- Elastyczne wyjście: Eksport do CSV, JSON, Excel, Polars, hledger lub beancount.
- Przetwarzanie równoległe: Parsowanie wielu plików jednocześnie za pomocą
parse_files_parallel().
Zbudowany do produkcji
Bank Statement Parser jest przeznaczony dla zespołów skarbowych, programistów fintech i specjalistów ds. zgodności przetwarzających wrażliwe dane finansowe. Biblioteka jest wykorzystywana w pipeline'ach migracji MT940-do-CAMT, systemach automatycznego uzgadniania, przetwarzaniu wyciągów PDF oraz przepływach pracy audytu regulacyjnego w instytucjach finansowych.
- 718 testów ze 100% pokryciem gałęzi w Pythonie od 3.10 do 3.14
- Zależności zablokowane hashem SHA-256 z CycloneDX SBOM dla każdej wersji
- Deterministyczne wyniki — identyczne dane wejściowe dają bajt po bajcie identyczne rezultaty przy każdym uruchomieniu
- Licencja Apache 2.0 — swobodne użycie w systemach komercyjnych i wewnętrznych
Oceniasz alternatywy? Zobacz porównanie Bank Statement Parser ❯ | Poznaj rzeczywiste przypadki użycia ❯