Bank Statement Parser เป็นไลบรารี Python แบบโอเพ่นซอร์สที่แยกวิเคราะห์ใบแจ้งยอดธนาคารจากเจ็ดรูปแบบ (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 และ PDF) ลงใน pandas DataFrames ที่มีโครงสร้าง การประมวลผลทั้งหมดทำงานภายในเครื่อง — เอาต์พุตแบบกำหนดได้ การปกปิด PII อัตโนมัติ และไปป์ไลน์ PDF แบบไฮบริดที่ส่งต่อไปยัง 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 ลงใน pandas DataFrames ที่มีโครงสร้างด้วย API แบบรวมเพียงตัวเดียว ไม่จำเป็นต้องติดตั้งแพ็กเกจแยกสำหรับแต่ละรูปแบบ
| คุณสมบัติ | Bank Statement Parser | OSS รูปแบบเดียว (mt940, ofxparse) | SaaS (Ocrolus, Parseur) |
|---|---|---|---|
| รูปแบบที่รองรับ | 7, API แบบรวม | อย่างละ 1 | หลายรูปแบบ (ผ่าน OCR) |
| รองรับ PDF | ไปป์ไลน์ไฮบริด (deterministic + LLM + vision) | ไม่มี | มี (cloud OCR) |
| ความเป็นส่วนตัวของข้อมูล | ประมวลผลในเครื่อง 100% (LLM ทำงานในเครื่องผ่าน Ollama) | ประมวลผลในเครื่อง 100% | ข้อมูลถูกส่งออกภายนอก |
| ค่าใช้จ่าย | ฟรี, Apache 2.0 | ฟรี | $49-$1,000+/เดือน |
| การตรวจสอบยอดคงเหลือ | Golden Rule (ยอดเปิด + เครดิต - เดบิต = ยอดปิด) | ไม่มี | แตกต่างกันไป |
| การปกปิด PII | ในตัว เปิดตามค่าเริ่มต้น | ไม่มี | แตกต่างกันไป |
| สตรีมมิง | หน่วยความจำคงที่ | ไม่มี | N/A |
| REST API | FastAPI microservice ในตัว | ไม่มี | มี |
| การขจัดข้อมูลซ้ำ | Idempotent transaction hashes | ไม่มี | บางส่วน |
| ส่งออก Ledger | hledger + beancount | ไม่มี | ไม่มี |
ไปป์ไลน์ PDF แบบไฮบริด
Bank Statement Parser v0.0.5+ มีไปป์ไลน์ไฮบริดสามเส้นทางสำหรับใบแจ้งยอดธนาคาร PDF:
- เส้นทาง A (Deterministic): ตาราง PDF ที่มีโครงสร้างถูกแยกวิเคราะห์โดยตรง — ฟรี เร็วที่สุด ไม่ต้องใช้ LLM
- เส้นทาง B (Text-LLM): PDF ดิจิทัลที่มีเลย์เอาต์ซับซ้อน ดึงข้อมูลผ่าน LLM ในเครื่อง (LiteLLM/Ollama)
- เส้นทาง C (Vision-LLM): ใบแจ้งยอดที่สแกนหรือถ่ายเอกสาร ประมวลผลด้วยโมเดล vision แบบ multimodal
การดึงข้อมูลทุกครั้งจะถูกตรวจสอบด้วย Golden Rule: 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 เดียว ไปป์ไลน์การแยกวิเคราะห์ของคุณจึงทำงานได้ทั้งในระหว่างการเปลี่ยนผ่านและหลังจากนั้น
ประสิทธิภาพ
- 27,000+ ธุรกรรม/วินาที สำหรับการแยกวิเคราะห์ CAMT.053
- 52,000+ ธุรกรรม/วินาที สำหรับการแยกวิเคราะห์ PAIN.001
- < 2 ms เวลาจนถึงผลลัพธ์แรก
- หน่วยความจำคงที่ ตั้งแต่ 1K ถึง 50K+ ธุรกรรมผ่านการสตรีม
- 718 การทดสอบ พร้อม 100% branch coverage ครอบคลุม Python 3.10 ถึง 3.14
ทำไมต้อง Bank Statement Parser?
- การดึงข้อมูล PDF แบบไฮบริด:
smart_ingest()รองรับ PDF ดิจิทัลและสแกน พร้อมการกำหนดเส้นทางอัตโนมัติและการตรวจสอบยอดคงเหลือ - ตรวจจับรูปแบบอัตโนมัติ:
detect_statement_format()ระบุไฟล์โดยอัตโนมัติ และcreate_parser()ส่งคืน parser ที่ถูกต้อง - ความเป็นส่วนตัวมาก่อน: การปกปิด PII เปิดอยู่ตามค่าเริ่มต้น LLM ทำงานในเครื่องผ่าน Ollama — ไม่มีข้อมูลออกจากเครื่องของคุณ
- REST API: ใช้งานเป็น FastAPI microservice พร้อม endpoint
/ingestและ/health - การเสริมข้อมูล: จัดหมวดหมู่ธุรกรรมด้วย LLM พร้อม schema ที่ปรับแต่งได้ (ค่าเริ่มต้น 13 หมวดหมู่แบบ Plaid)
- ส่งออก Ledger: ส่งออกเป็นรูปแบบ hledger และ beancount สำหรับเวิร์กโฟลว์บัญชีแบบ plaintext
- สแกนจำนวนมาก:
scan_and_ingest()ประมวลผลโฟลเดอร์ทั้งหมดพร้อมการขจัดข้อมูลซ้ำข้ามไฟล์โดยอัตโนมัติ - หลายสกุลเงิน:
verify_balance_multi_currency()ตรวจสอบ Golden Rule ตามกลุ่มสกุลเงิน - พร้อมใช้งานจริง: การนำเข้า ZIP อย่างปลอดภัย การตรวจสอบอินพุต การป้องกัน path traversal และโหมดตรวจสอบแบบโต้ตอบ
- เอาต์พุตยืดหยุ่น: ส่งออกเป็น CSV, JSON, Excel, Polars, hledger หรือ beancount
- การประมวลผลแบบขนาน: แยกวิเคราะห์หลายไฟล์พร้อมกันด้วย
parse_files_parallel()
สร้างขึ้นเพื่อใช้งานจริง
Bank Statement Parser ออกแบบมาสำหรับทีมคลัง นักพัฒนาฟินเทค และเจ้าหน้าที่กำกับดูแลที่ประมวลผลข้อมูลทางการเงินที่ละเอียดอ่อน ไลบรารีนี้ใช้ในไปป์ไลน์การย้ายข้อมูล MT940 สู่ CAMT ระบบกระทบยอดอัตโนมัติ การนำเข้าใบแจ้งยอด PDF และเวิร์กโฟลว์การตรวจสอบตามกฎระเบียบในสถาบันการเงินต่างๆ
- 718 การทดสอบ พร้อม 100% branch coverage ครอบคลุม Python 3.10 ถึง 3.14
- Dependencies ล็อกด้วย SHA-256 hash พร้อม CycloneDX SBOM สำหรับทุกรีลีส
- เอาต์พุตแบบกำหนดได้ — อินพุตเดียวกันจะสร้างผลลัพธ์ที่เหมือนกันทุกไบต์ ทุกครั้งที่รัน
- สัญญาอนุญาต Apache 2.0 — ใช้งานได้อย่างอิสระในระบบเชิงพาณิชย์และระบบภายใน
กำลังประเมินทางเลือกอื่น? ดูว่า Bank Statement Parser เปรียบเทียบอย่างไร ❯ | สำรวจกรณีการใช้งานจริง ❯