Bank Statement Parser היא ספריית Python בקוד פתוח שמנתחת דפי חשבון בנק משבעה פורמטים (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 ו-PDF) לתוך DataFrames מובנים של pandas. כל העיבוד רץ מקומית — פלט דטרמיניסטי, עריכת PII אוטומטית, ו-pipeline היברידי אופציונלי ל-PDF שמנתב דרך LLMs מקומיים בעת הצורך.
התחל תוך שניות
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 לתוך DataFrames מובנים של pandas עם API יחיד ומאוחד. אין צורך להתקין חבילות נפרדות לכל פורמט.
| תכונה | Bank Statement Parser | OSS בפורמט יחיד (mt940, ofxparse) | SaaS (Ocrolus, Parseur) |
|---|---|---|---|
| פורמטים נתמכים | 7, API מאוחד | 1 כל אחד | רבים (באמצעות OCR) |
| תמיכה ב-PDF | Pipeline היברידי (דטרמיניסטי + LLM + vision) | לא | כן (OCR בענן) |
| פרטיות נתונים | 100% מקומי (LLMs רצים מקומית דרך Ollama) | 100% מקומי | נתונים נשלחים החוצה |
| עלות | חינם, Apache 2.0 | חינם | $49-$1,000+/חודש |
| אימות יתרה | כלל הזהב (פתיחה + זיכויים − חיובים = סגירה) | לא | משתנה |
| עריכת PII | מובנית, פועלת כברירת מחדל | לא | משתנה |
| streaming | זיכרון מוגבל | לא | לא רלוונטי |
| REST API | שירות FastAPI מובנה | לא | כן |
| מניעת כפילויות | hash עסקאות אידמפוטנטי | לא | חלקי |
| ייצוא ל-Ledger | hledger + beancount | לא | לא |
Pipeline היברידי ל-PDF
Bank Statement Parser v0.0.5+ כולל pipeline היברידי בשלושה נתיבים לדפי חשבון PDF:
- נתיב A (דטרמיניסטי): טבלאות PDF מובנות מנותחות ישירות — חינם, המהיר ביותר, ללא צורך ב-LLM.
- נתיב B (Text-LLM): קבצי PDF דיגיטליים עם פריסות מורכבות נחלצים דרך LLM מקומי (LiteLLM/Ollama).
- נתיב C (Vision-LLM): דפי חשבון סרוקים או מצולמים מעובדים עם מודלים חזותיים רב-ממדיים.
כל חילוץ מאומת באמצעות כלל הזהב: opening balance + credits − debits == closing balance.
נבנה להגירת ISO 20022
SWIFT קבעה מועדים ברורים: כל המוסדות הפיננסיים חייבים לקבל CAMT.053 עד נובמבר 2027, ו-MT940/MT942/MT950 יצאו משימוש לחלוטין עד נובמבר 2028. Bank Statement Parser מטפל גם בפורמט MT940 הישן וגם בפורמטים המודרניים של ISO 20022 (CAMT.053, PAIN.001) ב-API יחיד, כך שה-pipeline שלך עובד במהלך המעבר וגם אחריו.
ביצועים
- 27,000+ עסקאות לשנייה לניתוח CAMT.053
- 52,000+ עסקאות לשנייה לניתוח PAIN.001
- < 2 מילישניות עד לתוצאה הראשונה
- זיכרון קבוע מ-1K עד 50K+ עסקאות באמצעות streaming
- 718 בדיקות עם כיסוי של 100% branches ב-Python 3.10 עד 3.14
למה Bank Statement Parser?
- חילוץ PDF היברידי:
smart_ingest()מטפל ב-PDF דיגיטליים וסרוקים עם ניתוב אוטומטי ואימות יתרה. - זיהוי אוטומטי של פורמט:
detect_statement_format()מזהה קבצים אוטומטית ו-create_parser()מחזיר את המנתח המתאים. - פרטיות בראש סדר העדיפויות: עריכת PII פועלת כברירת מחדל. LLMs רצים מקומית דרך Ollama — שום נתון לא עוזב את המחשב שלך.
- REST API: פריסה כשירות FastAPI עם endpoints של
/ingestו-/health. - העשרה: סיווג עסקאות מונע LLM עם סכמות ניתנות לחיבור (ברירת מחדל: 13 קטגוריות של Plaid).
- ייצוא ל-Ledger: ייצוא ל-hledger ו-beancount לתהליכי חשבונאות בטקסט.
- סריקה בכמות גדולה:
scan_and_ingest()מעבד עצי תיקיות עם מניעת כפילויות אוטומטית בין קבצים. - רב-מטבעי:
verify_balance_multi_currency()מריץ אימות כלל הזהב לכל קבוצת מטבע. - מוכן לייצור: קליטת ZIP מאובטחת, אימות קלט, מניעת חציית נתיבים, ומצב סקירה אינטראקטיבי.
- פלט גמיש: ייצוא ל-CSV, JSON, Excel, Polars, hledger, או beancount.
- עיבוד מקבילי: ניתוח מספר קבצים בו-זמנית עם
parse_files_parallel().
נבנה לייצור
Bank Statement Parser מיועד לצוותי אוצר, מפתחי פינטק וקציני ציות המעבדים נתונים פיננסיים רגישים. הספרייה משמשת ב-pipelines של הגירה מ-MT940 ל-CAMT, מערכות התאמה אוטומטיות, קליטת דפי חשבון PDF, ותהליכי ביקורת רגולטוריים במוסדות פיננסיים.
- 718 בדיקות עם כיסוי של 100% branches ב-Python 3.10 עד 3.14
- תלויות נעולות ב-SHA-256 hash עם CycloneDX SBOM לכל גרסה
- פלט דטרמיניסטי — קלט זהה מייצר תוצאות זהות בתים, בכל הרצה
- רישיון Apache 2.0 — שימוש חופשי במערכות מסחריות ופנימיות
בודקים חלופות? ראו כיצד Bank Statement Parser משתווה ❯ | גלו מקרי שימוש מהעולם האמיתי ❯