Bank Statement Parser একটি ওপেন-সোর্স পাইথন লাইব্রেরি যা সাতটি ফর্ম্যাট (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940, এবং PDF) থেকে ব্যাঙ্ক স্টেটমেন্ট স্ট্রাকচার্ড pandas DataFrame-এ পার্স করে। সমস্ত প্রক্রিয়াকরণ স্থানীয়ভাবে চলে — নির্ধারক আউটপুট, স্বয়ংক্রিয় 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
একটি লাইব্রেরি, সাতটি ফরম্যাট
CAMT.053, PAIN.001, CSV, OFX, QFX, MT940, এবং PDF একটি একক, ইউনিফাইড API দিয়ে স্ট্রাকচার্ড pandas DataFrame-এ পার্স করুন। প্রতিটি ফর্ম্যাটের জন্য আলাদা প্যাকেজ ইনস্টল করার দরকার নেই।
| বৈশিষ্ট্য | 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 hash | না | কিছু |
| 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): স্ক্যান করা বা ফটোকপি করা স্টেটমেন্ট মাল্টিমোডাল ভিশন মডেল দিয়ে প্রক্রিয়া করা হয়।
প্রতিটি এক্সট্র্যাকশন Golden Rule দিয়ে যাচাই করা হয়: opening balance + credits − debits == closing balance।
ISO 20022 মাইগ্রেশনের জন্য তৈরি
SWIFT দৃঢ় সময়সীমা নির্ধারণ করেছে: সমস্ত আর্থিক প্রতিষ্ঠানকে নভেম্বর 2027 এর মধ্যে CAMT.053 গ্রহণ করতে হবে এবং নভেম্বর 2028 এর মধ্যে MT940/MT942/MT950 সম্পূর্ণরূপে বাতিল হবে। 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+ লেনদেনে কনস্ট্যান্ট মেমরি
- Python 3.10 থেকে 3.14 জুড়ে 100% branch coverage সহ 718 টেস্ট
কেন Bank Statement Parser?
- Hybrid PDF Extraction:
smart_ingest()ডিজিটাল ও স্ক্যান করা PDF স্বয়ংক্রিয় রাউটিং ও ব্যালেন্স যাচাই সহ পরিচালনা করে। - ফর্ম্যাট অটো-ডিটেকশন:
detect_statement_format()স্বয়ংক্রিয়ভাবে ফাইল শনাক্ত করে এবংcreate_parser()সঠিক পার্সার ফেরত দেয়। - গোপনীয়তা প্রথম: PII রিডাকশন ডিফল্টরূপে চালু। LLM স্থানীয়ভাবে Ollama-র মাধ্যমে চলে — কোনো ডেটা আপনার মেশিন ছাড়ে না।
- REST API:
/ingestএবং/healthendpoint সহ FastAPI মাইক্রোসার্ভিস হিসেবে ডিপ্লয় করুন। - Enrichment: প্লাগেবল স্কিমা সহ LLM-চালিত লেনদেন ক্যাটাগরাইজেশন (Plaid 13-category ডিফল্ট)।
- Ledger Export: plaintext-accounting ওয়ার্কফ্লোর জন্য hledger এবং beancount জার্নাল ফর্ম্যাটে এক্সপোর্ট করুন।
- Bulk Scanning:
scan_and_ingest()ফোল্ডার ট্রি স্বয়ংক্রিয় ক্রস-ফাইল ডিডুপ্লিকেশন সহ প্রক্রিয়া করে। - Multi-Currency:
verify_balance_multi_currency()প্রতিটি মুদ্রা গোষ্ঠীর জন্য Golden Rule যাচাই চালায়। - প্রোডাকশন-রেডি: নিরাপদ ZIP ইনজেশন, ইনপুট ভ্যালিডেশন, path traversal প্রতিরোধ, এবং ইন্টারেক্টিভ রিভিউ মোড।
- নমনীয় আউটপুট: CSV, JSON, Excel, Polars, hledger, বা beancount-এ এক্সপোর্ট করুন।
- Parallel Processing:
parse_files_parallel()দিয়ে একাধিক ফাইল একসাথে পার্স করুন।
প্রোডাকশনের জন্য তৈরি
Bank Statement Parser ট্রেজারি দল, ফিনটেক ডেভেলপার এবং সংবেদনশীল আর্থিক ডেটা প্রক্রিয়াকারী কমপ্লায়েন্স অফিসারদের জন্য ডিজাইন করা হয়েছে। লাইব্রেরিটি MT940-থেকে-CAMT মাইগ্রেশন pipeline, স্বয়ংক্রিয় রিকনসিলিয়েশন সিস্টেম, PDF স্টেটমেন্ট ইনজেশন, এবং আর্থিক প্রতিষ্ঠান জুড়ে নিয়ন্ত্রক অডিট ওয়ার্কফ্লোতে ব্যবহৃত হয়।
- Python 3.10 থেকে 3.14 জুড়ে 100% branch coverage সহ 718 টেস্ট
- প্রতিটি রিলিজের জন্য CycloneDX SBOM সহ SHA-256 hash-locked ডিপেন্ডেন্সি
- নির্ধারক আউটপুট — অভিন্ন ইনপুট প্রতিবার বাইট-অভিন্ন ফলাফল তৈরি করে
- Apache 2.0 লাইসেন্সপ্রাপ্ত — বাণিজ্যিক ও অভ্যন্তরীণ সিস্টেমে অবাধে ব্যবহার করুন
বিকল্প মূল্যায়ন করছেন? দেখুন Bank Statement Parser কীভাবে তুলনা করে ❯ | বাস্তব ব্যবহারের ক্ষেত্র অন্বেষণ করুন ❯