TL;DR: Kontoutdragsparser är ett Python-bibliotek med öppen källkod som analyserar sex kontoutdragsformat (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940) till pandas DataFrames. 100 % lokal bearbetning, PII-redigering som standard, 27K+ tx/s genomströmning.
Kontoutdragsparser är ett Python-bibliotek med öppen källkod som analyserar kontoutdrag från sex format till strukturerade pandas DataFrames. All bearbetning sker lokalt -- noll nätverksanrop, deterministisk utdata och automatisk PII-redaktion.
Vem är detta till för?
- Treasury-team som migrerar från MT940 till CAMT.053 som behöver en parser som hanterar både gamla och nya format under övergången.
- Fintech-utvecklare bygger avstämnings-, rapporterings- eller redovisningspipelines som vill ha ett enda beroende istället för att sammanfoga mt940 + ofxparse + anpassad CSV-logik.
- Compliance-team som behöver PII-redigering som standard och revisionsklar, deterministisk utdata som aldrig skickar data till externa tjänster.
- Alla som vägrar att skicka känslig ekonomisk data till en tredjeparts SaaS när ett lokalt verktyg med öppen källkod kan göra jobbet.
Format som stöds
| Formatera | Standard | Filtyper | Parser klass |
|---|---|---|---|
| CAMT.053 | ISO 20022 bank-till-kund-uttalande | .xml |
CamtParser |
| PAIN.001 | Initiering av tillgodoräknande enligt ISO 20022 | .xml |
Pain001Parser |
| CSV | Generisk bankexport | .csv |
CsvStatementParser |
| OFX | Öppna finansiell börs | .ofx |
OfxParser |
| QFX | Quicken Financial Exchange | .qfx |
QfxParser |
| MT940 | SWIFT standard | .mt940, .sta |
Mt940Parser |
Alla format producerar normaliserade pandor DataFrames med konsekventa kolumnnamn, vilket gör nedströms bearbetning formatagnostisk.
Nyckelfunktioner
- Format automatisk identifiering:
detect_statement_format()identifierar formatet;create_parser()instansierar den högra parsern. - Streaming Parsing: Behandla stora filer (50 MB+, 50K+ transaktioner) med begränsat minne med
parse_streaming(). - Parallell bearbetning: Analysera flera filer samtidigt med
parse_files_parallel()med ProcessPoolExecutor. - Deduplicering: Upptäck exakta dubbletter och misstänkta matchningar med förklarliga konfidenspoäng.
- In-Memory Parsing:
from_string()ochfrom_bytes()för SFTP- och API-arbetsflöden utan disk I/O. - Säker ZIP-bearbetning:
iter_secure_xml_entries()med gränser för kompressionsförhållande, gränser för inträdesstorlekar och krypterad inträdesavvisning. - Export: CSV, JSON, Excel (
.xlsx), och valfria Polars DataFrames.
Säkerhet och integritet
- PII-redaktion: Namn, IBAN och adresser är maskerade som standard i CLI-utdata. Välj med
--show-pii. - XXE-skydd: XML-tolkning används
resolve_entities=False,no_network=True,load_dtd=False. - ZIP Bomb Protection: Kompressionsförhållandegränser (100:1 standard), inträdesstorlekstak (10 MB), krypterad ingångsavvisning.
- Path Traversal Prevention: Spärrlista för farliga mönster och symlinkupplösning.
- Supply Chain Security: SHA-256 hash-låsta beroenden, CycloneDX SBOM, bygg härkomstintyg.
Prestanda
| Metrisk | Värde |
|---|---|
| CAMT.053 genomströmning | 27 000+ tx/s |
| PAIN.001 genomströmning | 52 000+ tx/s |
| Latens per transaktion (CAMT) | 37 mikrosekunder |
| Latens per transaktion (PAIN.001) | 19 mikrosekunder |
| Dags för första resultat | < 2 ms |
| Minnesskalning (1K-50K tx) | Konstant (streaming) |
| Testtäckning | 100 % filialtäckning |
| Tester | 467 över 29 testfiler |
Börja bygga
Kom igång med installation och exempel ❯
"GitHub Repository"