Bank Statement Parser एक ओपन-सोर्स Python लाइब्रेरी है जो सात प्रारूपों (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940, और PDF) से बैंक स्टेटमेंट को संरचित pandas DataFrames में पार्स करती है। सारी प्रोसेसिंग स्थानीय रूप से चलती है — नियतात्मक आउटपुट, स्वचालित PII रिडक्शन, और एक वैकल्पिक hybrid PDF pipeline जो ज़रूरत पड़ने पर स्थानीय LLM के माध्यम से रूट करती है।
सेकंडों में शुरू करें
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
एक लाइब्रेरी, सात प्रारूप
एक ही एकीकृत API से CAMT.053, PAIN.001, CSV, OFX, QFX, MT940, और PDF को संरचित pandas DataFrames में पार्स करें। हर प्रारूप के लिए अलग पैकेज इंस्टॉल करने की ज़रूरत नहीं।
| विशेषता | Bank Statement Parser | एकल-प्रारूप OSS (mt940, ofxparse) | SaaS (Ocrolus, Parseur) |
|---|---|---|---|
| समर्थित प्रारूप | 7, एकीकृत API | 1 प्रत्येक | अनेक (OCR के माध्यम से) |
| PDF सपोर्ट | Hybrid pipeline (deterministic + LLM + vision) | नहीं | हाँ (cloud OCR) |
| डेटा गोपनीयता | 100% स्थानीय (LLM Ollama के माध्यम से स्थानीय रूप से चलते हैं) | 100% स्थानीय | डेटा बाहर भेजा जाता है |
| लागत | मुफ़्त, Apache 2.0 | मुफ़्त | $49-$1,000+/महीना |
| बैलेंस सत्यापन | Golden Rule (opening + credits − debits = closing) | नहीं | भिन्न |
| PII रिडक्शन | अंतर्निर्मित, डिफ़ॉल्ट रूप से चालू | नहीं | भिन्न |
| Streaming | सीमित मेमोरी | नहीं | N/A |
| REST API | अंतर्निर्मित FastAPI माइक्रोसर्विस | नहीं | हाँ |
| डिडुप्लीकेशन | Idempotent transaction hashes | नहीं | कुछ |
| Ledger निर्यात | hledger + beancount | नहीं | नहीं |
Hybrid PDF Pipeline
Bank Statement Parser v0.0.5+ में PDF बैंक स्टेटमेंट के लिए तीन-पथ hybrid pipeline शामिल है:
- Path A (Deterministic): संरचित PDF टेबल सीधे पार्स होती हैं — मुफ़्त, सबसे तेज़, कोई LLM नहीं चाहिए।
- Path B (Text-LLM): जटिल लेआउट वाली डिजिटल PDF स्थानीय LLM (LiteLLM/Ollama) के माध्यम से निकाली जाती हैं।
- Path C (Vision-LLM): स्कैन या फोटोकॉपी किए गए स्टेटमेंट multimodal vision मॉडल से प्रोसेस होते हैं।
हर extraction Golden Rule से सत्यापित होती है: opening balance + credits − debits == closing balance।
ISO 20022 माइग्रेशन के लिए निर्मित
SWIFT ने निश्चित समय सीमा तय की है: सभी वित्तीय संस्थानों को नवंबर 2027 तक CAMT.053 प्राप्त करना होगा, और MT940/MT942/MT950 नवंबर 2028 तक पूरी तरह बंद हो जाएगा। Bank Statement Parser पुराने MT940 और आधुनिक ISO 20022 प्रारूपों (CAMT.053, PAIN.001) दोनों को एक ही API में संभालता है, इसलिए आपकी parsing pipeline संक्रमण के दौरान और उसके बाद भी काम करती है।
प्रदर्शन
- CAMT.053 पार्सिंग के लिए 27,000+ लेनदेन/सेकंड
- PAIN.001 पार्सिंग के लिए 52,000+ लेनदेन/सेकंड
- < 2 ms पहले परिणाम तक का समय
- स्थिर मेमोरी streaming के माध्यम से 1K से 50K+ लेनदेन तक
- 718 टेस्ट Python 3.10 से 3.14 तक 100% branch coverage के साथ
Bank Statement Parser क्यों?
- Hybrid PDF Extraction:
smart_ingest()डिजिटल और स्कैन PDF दोनों को स्वचालित routing और बैलेंस सत्यापन के साथ संभालता है। - प्रारूप ऑटो-डिटेक्शन:
detect_statement_format()फ़ाइलों को अपने आप पहचानता है औरcreate_parser()सही पार्सर लौटाता है। - गोपनीयता पहले: PII रिडक्शन डिफ़ॉल्ट रूप से चालू है। LLM Ollama के माध्यम से स्थानीय रूप से चलते हैं — कोई डेटा आपकी मशीन से बाहर नहीं जाता।
- REST API: FastAPI माइक्रोसर्विस के रूप में
/ingestऔर/healthendpoints के साथ डिप्लॉय करें। - Enrichment: प्लगेबल स्कीमा (Plaid 13-category डिफ़ॉल्ट) के साथ LLM-संचालित लेनदेन वर्गीकरण।
- Ledger निर्यात: plaintext-accounting वर्कफ़्लो के लिए hledger और beancount जर्नल फ़ॉर्मेट में निर्यात करें।
- बल्क स्कैनिंग:
scan_and_ingest()फ़ोल्डर ट्री को स्वचालित cross-file डिडुप्लीकेशन के साथ प्रोसेस करता है। - Multi-Currency:
verify_balance_multi_currency()प्रत्येक currency group पर Golden Rule सत्यापन चलाता है। - प्रोडक्शन रेडी: सुरक्षित ZIP ingestion, इनपुट वैलिडेशन, path traversal रोकथाम, और इंटरैक्टिव रिव्यू मोड।
- लचीला आउटपुट: CSV, JSON, Excel, Polars, hledger, या beancount में निर्यात करें।
- समानांतर प्रोसेसिंग:
parse_files_parallel()से कई फ़ाइलें एक साथ पार्स करें।
प्रोडक्शन के लिए निर्मित
Bank Statement Parser को ट्रेजरी टीमों, फिनटेक डेवलपर्स, और संवेदनशील वित्तीय डेटा प्रोसेस करने वाले कंप्लायंस अधिकारियों के लिए डिज़ाइन किया गया है। लाइब्रेरी का उपयोग MT940-से-CAMT माइग्रेशन pipelines, स्वचालित reconciliation सिस्टम, PDF स्टेटमेंट ingestion, और वित्तीय संस्थानों में regulatory audit वर्कफ़्लो में किया जाता है।
- 718 टेस्ट Python 3.10 से 3.14 तक 100% branch coverage के साथ
- SHA-256 hash-locked dependencies हर रिलीज़ के लिए CycloneDX SBOM के साथ
- नियतात्मक आउटपुट — समान इनपुट हर बार byte-identical परिणाम देता है
- Apache 2.0 लाइसेंस — व्यावसायिक और आंतरिक सिस्टम में स्वतंत्र रूप से उपयोग करें
विकल्पों का मूल्यांकन कर रहे हैं? देखें Bank Statement Parser की तुलना कैसे होती है ❯ | वास्तविक उपयोग के मामले देखें ❯