TL;DR: Bank Statement Parser একটি ওপেন-সোর্স পাইথন লাইব্রেরি যা সাতটি ব্যাঙ্ক স্টেটমেন্ট ফর্ম্যাট (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940, এবং PDF) pandas DataFrame-এ পার্স করে। Hybrid PDF pipeline সহ ব্যালেন্স যাচাই, REST API, enrichment, ledger এক্সপোর্ট, 27K+ tx/s থ্রুপুট।
Bank Statement Parser একটি ওপেন-সোর্স পাইথন লাইব্রেরি যা সাতটি ফর্ম্যাট থেকে ব্যাঙ্ক স্টেটমেন্ট স্ট্রাকচার্ড pandas DataFrame-এ পার্স করে। নির্ধারক কোর স্ট্রাকচার্ড ফর্ম্যাট শূন্য নেটওয়ার্ক কলে স্থানীয়ভাবে প্রক্রিয়া করে। ঐচ্ছিক hybrid PDF pipeline ডিজিটাল ও স্ক্যান করা স্টেটমেন্টের জন্য স্থানীয় LLM-এর (Ollama-র মাধ্যমে) দিকে রাউট করে।
এটা কার জন্য?
- ট্রেজারি টিম যারা MT940 থেকে CAMT.053-এ মাইগ্রেট করছে এবং একটি পার্সার প্রয়োজন যা রূপান্তরের সময় পুরানো ও নতুন উভয় ফর্ম্যাট পরিচালনা করে, সেইসাথে সেই ব্যাঙ্কগুলির PDF স্টেটমেন্ট যারা স্ট্রাকচার্ড এক্সপোর্ট দেয় না।
- ফিনটেক ডেভেলপার যারা রিকনসিলিয়েশন, রিপোর্টিং বা অ্যাকাউন্টিং pipeline তৈরি করছে এবং বিল্ট-ইন ব্যালেন্স যাচাই, ক্যাটাগরাইজেশন ও ledger এক্সপোর্ট সহ একক ডিপেন্ডেন্সি চায়।
- কমপ্লায়েন্স টিম যাদের ডিফল্টরূপে PII রিডাকশন, নির্ধারক আউটপুট এবং Golden Rule যাচাই দরকার যা লেজারে পৌঁছানোর আগেই অসঙ্গতি চিহ্নিত করে।
- Plaintext-accounting ব্যবহারকারী যারা PDF ব্যাঙ্ক স্টেটমেন্ট থেকে সরাসরি hledger বা beancount জার্নালে স্বয়ংক্রিয় ইনজেশন চায়।
- যেকেউ যারা একটি স্থানীয়, ওপেন-সোর্স টুল কাজ করতে পারলে তৃতীয় পক্ষের SaaS-এ সংবেদনশীল আর্থিক ডেটা পাঠাতে অস্বীকার করে।
সমর্থিত ফর্ম্যাট
| ফর্ম্যাট | স্ট্যান্ডার্ড | ফাইলের ধরন | পার্সার/মেথড |
|---|---|---|---|
| CAMT.053 | ISO 20022 Bank-to-Customer Statement | .xml |
CamtParser |
| PAIN.001 | ISO 20022 Credit Transfer Initiation | .xml |
Pain001Parser |
| CSV | জেনেরিক ব্যাঙ্ক এক্সপোর্ট | .csv |
CsvStatementParser |
| OFX | Open Financial Exchange | .ofx |
OfxParser |
| QFX | Quicken Financial Exchange | .qfx |
QfxParser |
| MT940 | SWIFT standard | .mt940, .sta |
Mt940Parser |
| ডিজিটাল ও স্ক্যান করা স্টেটমেন্ট | .pdf |
smart_ingest() |
সব ফর্ম্যাটই সামঞ্জস্যপূর্ণ কলাম নাম সহ নরমালাইজড pandas DataFrame তৈরি করে, যা ডাউনস্ট্রিম প্রক্রিয়াকরণ ফর্ম্যাট-অজ্ঞেয় করে তোলে।
মূল ক্ষমতা
- Hybrid PDF Pipeline:
smart_ingest()PDF তিনটি পথে রাউট করে — নির্ধারক টেবিল এক্সট্র্যাকশন, text-LLM, বা vision-LLM — স্বয়ংক্রিয় Golden Rule ব্যালেন্স যাচাই সহ। - ফর্ম্যাট অটো-ডিটেকশন:
detect_statement_format()ফর্ম্যাট শনাক্ত করে;create_parser()সঠিক পার্সার তৈরি করে। - ব্যালেন্স যাচাই: Golden Rule চেক (
opening + credits − debits == closing) VERIFIED/DISCREPANCY/FAILED স্ট্যাটাস সহ। - Multi-Currency যাচাই:
verify_balance_multi_currency()স্বতন্ত্র যাচাইয়ের জন্য মুদ্রা অনুযায়ী লেনদেন গোষ্ঠীবদ্ধ করে। - REST API: প্রোডাকশন ডিপ্লয়মেন্টের জন্য
/ingestও/healthendpoint সহ FastAPI মাইক্রোসার্ভিস। - Enrichment: প্লাগেবল স্কিমা সহ LLM-চালিত লেনদেন ক্যাটাগরাইজেশন (Plaid 13-category ডিফল্ট)।
- Interactive Review:
--type reviewদিয়ে accept/edit/skip/delete অ্যাকশন সহ অসঙ্গতি পর্যালোচনা করুন। - Ledger Export: plaintext-accounting ওয়ার্কফ্লোর জন্য
to_hledger()এবংto_beancount()। - Bulk Scanning:
scan_and_ingest()স্বয়ংক্রিয় ক্রস-ফাইল ডিডুপ্লিকেশন সহ ফোল্ডার ট্রি প্রক্রিয়া করে। - Account Mapping: Ledger এক্সপোর্টের জন্য JSON কনফিগ থেকে regex-ভিত্তিক অ্যাকাউন্ট ম্যাপিং নিয়ম।
- Streaming Parsing:
parse_streaming()ব্যবহার করে সীমাবদ্ধ মেমরিতে বড় ফাইল (50 MB+, 50K+ লেনদেন) প্রক্রিয়া করুন। - Parallel Processing: ProcessPoolExecutor ব্যবহার করে
parse_files_parallel()দিয়ে একাধিক ফাইল একসাথে পার্স করুন। - Deduplication: নিরাপদ ইনক্রিমেন্টাল ইনজেশনের জন্য Idempotent
transaction_hash(MD5 fingerprint)। - In-Memory Parsing: ডিস্ক I/O ছাড়া SFTP ও API ওয়ার্কফ্লোর জন্য
from_string()ওfrom_bytes()। - Secure ZIP Processing: কম্প্রেশন অনুপাত সীমা, এন্ট্রি সাইজ ক্যাপ, এবং এনক্রিপ্টেড এন্ট্রি প্রত্যাখ্যান সহ
iter_secure_xml_entries()। - Export: CSV, JSON, Excel (
.xlsx), Polars DataFrame, hledger, এবং beancount জার্নাল।
নিরাপত্তা এবং গোপনীয়তা
- PII রিডাকশন: CLI আউটপুটে নাম, IBAN এবং ঠিকানা ডিফল্টরূপে মাস্ক করা হয়।
--show-piiদিয়ে অপ্ট-ইন করুন। - XXE সুরক্ষা: XML পার্সিং
resolve_entities=False,no_network=True,load_dtd=Falseব্যবহার করে। - ZIP বোমা সুরক্ষা: কম্প্রেশন অনুপাত সীমা (100:1 ডিফল্ট), এন্ট্রি সাইজ ক্যাপ (10 MB), এনক্রিপ্টেড এন্ট্রি প্রত্যাখ্যান।
- Path Traversal প্রতিরোধ: বিপজ্জনক প্যাটার্ন ব্লকলিস্ট এবং symlink রেজোলিউশন।
- Supply Chain Security: SHA-256 hash-locked ডিপেন্ডেন্সি, CycloneDX SBOM, build provenance attestation।
- শুধুমাত্র স্থানীয় LLM: Hybrid PDF pipeline স্থানীয় inference-এর জন্য Ollama ব্যবহার করে — কোনো ডেটা ক্লাউড API-তে পাঠানো হয় না।
পারফরম্যান্স
| মেট্রিক | মান |
|---|---|
| CAMT.053 থ্রুপুট | 27,000+ tx/s |
| PAIN.001 থ্রুপুট | 52,000+ tx/s |
| প্রতি-লেনদেন লেটেন্সি (CAMT) | 37 মাইক্রোসেকেন্ড |
| প্রতি-লেনদেন লেটেন্সি (PAIN.001) | 19 মাইক্রোসেকেন্ড |
| প্রথম ফলাফলের সময় | < 2 ms |
| মেমরি স্কেলিং (1K-50K tx) | ধ্রুবক (streaming) |
| টেস্ট কভারেজ | 100% branch coverage |
| টেস্ট | 29টি টেস্ট ফাইল জুড়ে 718 |
তৈরি করা শুরু করুন
ইনস্টলেশন ও উদাহরণ দিয়ে শুরু করুন ❯
"GitHub Repository"