Bank Statement Parser là thư viện Python mã nguồn mở giúp phân tích sao kê ngân hàng từ bảy định dạng (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 và PDF) thành các pandas DataFrames có cấu trúc. Toàn bộ quá trình xử lý chạy cục bộ — đầu ra xác định, tự động ẩn danh PII, và có pipeline PDF hybrid tùy chọn tự động chuyển qua LLM cục bộ khi cần.
Bắt đầu trong vài giây
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
Một thư viện, bảy định dạng
Phân tích CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 và PDF thành các pandas DataFrames có cấu trúc với một API thống nhất duy nhất. Không cần cài đặt các gói riêng biệt cho từng định dạng.
| Tính năng | Bank Statement Parser | OSS đơn định dạng (mt940, ofxparse) | SaaS (Ocrolus, Parseur) |
|---|---|---|---|
| Định dạng hỗ trợ | 7, API thống nhất | Mỗi gói 1 định dạng | Nhiều (qua OCR) |
| Hỗ trợ PDF | Pipeline hybrid (deterministic + LLM + vision) | Không | Có (cloud OCR) |
| Bảo mật dữ liệu | 100% cục bộ (LLM chạy cục bộ qua Ollama) | 100% cục bộ | Dữ liệu gửi ra ngoài |
| Chi phí | Miễn phí, Apache 2.0 | Miễn phí | $49-$1,000+/tháng |
| Xác minh số dư | Golden Rule (số dư đầu kỳ + có − nợ = số dư cuối kỳ) | Không | Tùy thuộc |
| Ẩn danh PII | Tích hợp sẵn, bật mặc định | Không | Tùy thuộc |
| Streaming | Bộ nhớ giới hạn | Không | N/A |
| REST API | Tích hợp microservice FastAPI | Không | Có |
| Chống trùng lặp | Hash giao dịch idempotent | Không | Một phần |
| Xuất sổ cái | hledger + beancount | Không | Không |
Pipeline PDF Hybrid
Bank Statement Parser v0.0.5+ bao gồm pipeline hybrid ba đường dẫn cho sao kê ngân hàng PDF:
- Đường dẫn A (Deterministic): Bảng PDF có cấu trúc được phân tích trực tiếp — miễn phí, nhanh nhất, không cần LLM.
- Đường dẫn B (Text-LLM): PDF kỹ thuật số có bố cục phức tạp được trích xuất qua LLM cục bộ (LiteLLM/Ollama).
- Đường dẫn C (Vision-LLM): Sao kê quét hoặc photocopy được xử lý bằng mô hình vision đa phương thức.
Mọi kết quả trích xuất đều được xác minh bằng Golden Rule: opening balance + credits − debits == closing balance.
Được xây dựng cho cuộc chuyển đổi ISO 20022
SWIFT đã đặt thời hạn rõ ràng: tất cả tổ chức tài chính phải nhận được CAMT.053 trước tháng 11/2027, và MT940/MT942/MT950 sẽ ngừng hoạt động hoàn toàn trước tháng 11/2028. Bank Statement Parser xử lý cả định dạng MT940 cũ và ISO 20022 hiện đại (CAMT.053, PAIN.001) trong một API duy nhất, giúp pipeline phân tích của bạn hoạt động trong suốt quá trình chuyển đổi và sau đó.
Hiệu suất
- 27.000+ giao dịch/giây cho phân tích CAMT.053
- 52.000+ giao dịch/giây cho phân tích PAIN.001
- < 2 ms thời gian đến kết quả đầu tiên
- Bộ nhớ không đổi từ 1K đến 50K+ giao dịch nhờ streaming
- 718 bài kiểm tra với 100% độ phủ nhánh trên Python 3.10 đến 3.14
Tại sao chọn Bank Statement Parser?
- Trích xuất PDF Hybrid:
smart_ingest()xử lý PDF kỹ thuật số và PDF quét với tự động định tuyến và xác minh số dư. - Tự động nhận dạng định dạng:
detect_statement_format()nhận dạng tệp tự động vàcreate_parser()trả về trình phân tích phù hợp. - Ưu tiên bảo mật: Ẩn danh PII được bật mặc định. LLM chạy cục bộ qua Ollama — không có dữ liệu nào rời khỏi máy bạn.
- REST API: Triển khai dưới dạng microservice FastAPI với các endpoint
/ingestvà/health. - Làm giàu dữ liệu: Phân loại giao dịch bằng LLM với schema tùy chỉnh (mặc định 13 danh mục Plaid).
- Xuất sổ cái: Xuất sang định dạng hledger và beancount cho quy trình kế toán plaintext.
- Quét hàng loạt:
scan_and_ingest()xử lý cây thư mục với tự động chống trùng lặp liên tệp. - Đa tiền tệ:
verify_balance_multi_currency()chạy xác minh Golden Rule theo nhóm tiền tệ. - Sẵn sàng cho production: Nhập ZIP an toàn, xác thực đầu vào, ngăn chặn path traversal, và chế độ xem xét tương tác.
- Đầu ra linh hoạt: Xuất sang CSV, JSON, Excel, Polars, hledger, hoặc beancount.
- Xử lý song song: Phân tích nhiều tệp đồng thời với
parse_files_parallel().
Được xây dựng cho production
Bank Statement Parser được thiết kế cho các nhóm ngân quỹ, nhà phát triển fintech, và nhân viên tuân thủ xử lý dữ liệu tài chính nhạy cảm. Thư viện được sử dụng trong pipeline chuyển đổi MT940-sang-CAMT, hệ thống đối chiếu tự động, nhập sao kê PDF, và quy trình kiểm toán theo quy định tại các tổ chức tài chính.
- 718 bài kiểm tra với 100% độ phủ nhánh trên Python 3.10 đến 3.14
- Phụ thuộc khóa hash SHA-256 với CycloneDX SBOM cho mỗi bản phát hành
- Đầu ra xác định — đầu vào giống nhau tạo ra kết quả giống byte, mọi lần chạy
- Giấy phép Apache 2.0 — sử dụng tự do trong hệ thống thương mại và nội bộ
Đang đánh giá các lựa chọn thay thế? Xem so sánh Bank Statement Parser ❯ | Khám phá các trường hợp sử dụng thực tế ❯