Bank Statement Parser รองรับเวิร์กโฟลว์ทางการเงินจริง: การนำเข้าใบแจ้งยอดธนาคาร PDF, การย้ายข้อมูล MT940 สู่ CAMT, การกระทบยอดอัตโนมัติพร้อมการตรวจสอบยอดคงเหลือ, ไปป์ไลน์การปฏิบัติตามกฎระเบียบ, การส่งออกบัญชีแบบ plaintext, การ deploy REST API, การสแกนจำนวนมาก และการรวมบัญชีหลายธนาคาร
การนำเข้าใบแจ้งยอดธนาคาร PDF
ผลลัพธ์: แยกวิเคราะห์ใบแจ้งยอดธนาคาร PDF ทั้งดิจิทัลและสแกนพร้อมการตรวจสอบยอดคงเหลืออัตโนมัติ — ไม่ต้องใช้ cloud API ไม่มีข้อมูลออกจากเครื่องของคุณ
ไปป์ไลน์ PDF แบบไฮบริดจะส่งแต่ละ PDF ผ่านเส้นทางการดึงข้อมูลที่เหมาะสมที่สุดและตรวจสอบผลลัพธ์ทุกครั้ง
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
# Review discrepancies interactively
# bankstatementparser --type review --input result.json
การประมวลผลใบแจ้งยอดจำนวนมาก
ผลลัพธ์: สแกนโฟลเดอร์ทั้งหมด (PDF, XML, CSV หลายร้อยไฟล์) พร้อมการขจัดข้อมูลซ้ำข้ามไฟล์อัตโนมัติในการเรียกครั้งเดียว
from bankstatementparser.hybrid import scan_and_ingest
batch = scan_and_ingest("statements/2026/", pattern="**/*.pdf")
print(f"Files: {len(batch.results)}, Unique txns: {batch.unique_count}")
คลัง: การย้ายข้อมูล MT940 สู่ CAMT.053
ผลลัพธ์: การเรียก API ครั้งเดียวรองรับทั้ง MT940 และ CAMT.053 ในช่วงการย้ายข้อมูล SWIFT (พฤศจิกายน 2025 ถึงพฤศจิกายน 2028) ไม่ต้องใช้ไปป์ไลน์แยกวิเคราะห์แยกกัน
ทีมคลังทั่วโลกกำลังย้ายจาก MT940 ไปยัง CAMT.053 ก่อนเส้นตาย SWIFT ในเดือนพฤศจิกายน 2027 Bank Statement Parser รองรับทั้งสองรูปแบบด้วย API เดียว ทำให้การเปลี่ยนผ่านราบรื่น
from bankstatementparser import create_parser, detect_statement_format
# Process both MT940 and CAMT.053 with the same code
for file in daily_statement_files:
fmt = detect_statement_format(file)
parser = create_parser(file, fmt)
df = parser.parse()
load_to_treasury_system(df)
การกระทบยอดอัตโนมัติพร้อมการตรวจสอบยอดคงเหลือ
ผลลัพธ์: DataFrames ที่ไม่ขึ้นกับรูปแบบพร้อมการตรวจสอบ Golden Rule และการขจัดข้อมูลซ้ำ ช่วยจับข้อผิดพลาดและรายการซ้ำก่อนที่จะถึง ledger ของคุณ
แยกวิเคราะห์ใบแจ้งยอดธนาคาร ตรวจสอบยอดคงเหลือ และจับคู่กับบันทึกภายในโดยอัตโนมัติ
from bankstatementparser import CamtParser, Deduplicator
from bankstatementparser.hybrid import verify_balance_multi_currency
parser = CamtParser("bank_statement.xml")
bank_txns = parser.parse()
# Verify balances per currency
verification = verify_balance_multi_currency(bank_txns)
for ccy, result in verification.items():
assert result.status == "VERIFIED", f"{ccy} balance mismatch!"
# Deduplicate before reconciliation
dedup = Deduplicator()
result = dedup.deduplicate(dedup.from_dataframe(bank_txns))
clean_txns = result.unique_transactions
# Match against internal records
unmatched = reconcile(clean_txns, internal_ledger)
บัญชีแบบ Plaintext (hledger / beancount)
ผลลัพธ์: นำเข้าใบแจ้งยอดธนาคาร PDF โดยอัตโนมัติและส่งออกธุรกรรมที่จัดหมวดหมู่แล้วเป็นรูปแบบ hledger หรือ beancount journal
from bankstatementparser.hybrid import smart_ingest
from bankstatementparser.enrichment import Categorizer
from bankstatementparser.export import to_hledger
result = smart_ingest("statement.pdf")
categorizer = Categorizer()
enriched = categorizer.categorize_batch(result.transactions)
journal = to_hledger(enriched, account="Assets:Bank:Checking")
การ Deploy REST API
ผลลัพธ์: Deploy Bank Statement Parser เป็น microservice ที่รับไฟล์ใบแจ้งยอดผ่าน HTTP และส่งคืน JSON ที่มีโครงสร้าง
# Start the API server
bankstatementparser-api --port 8000
# Ingest a statement
curl -X POST http://localhost:8000/ingest \
-F "file=@statement.pdf"
ไปป์ไลน์การปฏิบัติตามกฎระเบียบและการตรวจสอบ
ผลลัพธ์: เอาต์พุตแบบ deterministic, การปกปิด PII อัตโนมัติ และการตรวจสอบ Golden Rule สร้างบันทึกที่พร้อมสำหรับการตรวจสอบ เป็นไปตามข้อกำหนดด้านความสามารถในการทำซ้ำตามกฎระเบียบ
from bankstatementparser import CamtParser
parser = CamtParser("statement.xml")
# Stream with PII redacted for audit logs
for txn in parser.parse_streaming(redact_pii=True):
audit_log.write(txn)
# Export full data for secure internal processing
parser.export_csv("archive/statement.csv")
เวิร์กโฟลว์ SFTP สู่ DataFrame
ผลลัพธ์: แยกวิเคราะห์โดยตรงจากไบต์โดยไม่ต้องใช้ดิสก์ I/O เข้ากับเวิร์กโฟลว์การเชื่อมต่อธนาคารแบบ SFTP และ API ได้อย่างเป็นธรรมชาติ
from bankstatementparser import CamtParser
xml_bytes = sftp_client.read("daily_statement.xml")
parser = CamtParser.from_bytes(xml_bytes, source_name="daily.xml")
df = parser.parse()
การรวมบัญชีหลายธนาคาร
ผลลัพธ์: การแยกวิเคราะห์แบบขนานระหว่าง HSBC (CAMT), Barclays (MT940), Revolut (CSV), Wise (OFX) และ Chase (PDF) สร้างชุดข้อมูลที่ปรับมาตรฐานชุดเดียว
from bankstatementparser import parse_files_parallel
results = parse_files_parallel([
"hsbc/camt053.xml",
"barclays/mt940.sta",
"revolut/transactions.csv",
"wise/statement.ofx",
])
all_transactions = pd.concat([r.transactions for r in results if r.status == "success"])
การประมวลผลเป็นชุดพร้อมไฟล์ ZIP
ผลลัพธ์: การป้องกัน ZIP bomb ในตัว (จำกัดอัตราส่วน 100:1, ขีดจำกัดรายการ 10 MB, ปฏิเสธรายการที่เข้ารหัส) ช่วยให้คุณประมวลผลไฟล์เก็บถาวรใบแจ้งยอดรายเดือนได้อย่างปลอดภัย
from bankstatementparser import iter_secure_xml_entries, CamtParser
for entry in iter_secure_xml_entries("monthly_statements.zip"):
parser = CamtParser.from_bytes(entry.xml_bytes, source_name=entry.source_name)
df = parser.parse()
save_to_warehouse(entry.source_name, df)
เปรียบเทียบกับทางเลือกอื่น ❯ | วางแผนการย้ายข้อมูล ISO 20022 ❯ | เริ่มต้นใช้งาน ❯