Use Cases

Mga Real-World na Application

Pinangangasiwaan ng Bank Statement Parser ang mga real-world na financial workflow: PDF bank statement ingestion, MT940-to-CAMT migration, automated reconciliation na may beripikasyon ng balanse, compliance pipeline, plaintext-accounting export, REST API deployment, bulk scanning, at multi-bank consolidation.

PDF Bank Statement Ingestion

Resulta: I-parse ang mga digital at na-scan na PDF bank statement na may awtomatikong beripikasyon ng balanse — walang cloud API, walang data na umaalis sa iyong makina.

Ang hybrid PDF pipeline ay niru-route ang bawat PDF sa pinaka-optimal na extraction path at bineberipika ang bawat resulta.

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

Bulk Statement Processing

Resulta: I-scan ang buong folder tree (daan-daang PDF, XML, CSV) na may awtomatikong cross-file deduplikasyon sa isang tawag.

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}")

Treasury: MT940 hanggang CAMT.053 Migration

Resulta: Isang API call ang humahawak sa MT940 at CAMT.053 sa panahon ng SWIFT migration window (Nobyembre 2025–Nobyembre 2028), na inaalis ang pangangailangan para sa magkahiwalay na parsing pipeline.

Ang mga treasury team sa buong mundo ay lumilipat mula MT940 patungong CAMT.053 bago ang Nobyembre 2027 SWIFT deadline. Pinangangasiwaan ng Bank Statement Parser ang parehong format gamit ang iisang API, na ginagawang maayos ang transisyon.

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)

Automated Reconciliation na may Beripikasyon ng Balanse

Resulta: Ang format-agnostic na DataFrames na may Golden Rule na beripikasyon at deduplikasyon ay nakakahuli ng mga error at duplicate bago makarating sa iyong ledger.

I-parse ang mga bank statement, i-verify ang mga balanse, at awtomatikong itugma sa mga panloob na rekord.

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 Accounting (hledger / beancount)

Resulta: Awtomatikong mag-ingest ng mga PDF bank statement at i-export ang mga naka-kategoryang transaksyon sa hledger o beancount journal format.

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")

REST API Deployment

Resulta: I-deploy ang Bank Statement Parser bilang microservice na tumatanggap ng statement file sa pamamagitan ng HTTP at nagbabalik ng structured JSON.

# Start the API server
bankstatementparser-api --port 8000
# Ingest a statement
curl -X POST http://localhost:8000/ingest \
  -F "file=@statement.pdf"

Mga Compliance at Audit Pipeline

Resulta: Ang deterministic na output, awtomatikong PII redaction, at Golden Rule na beripikasyon ay gumagawa ng mga audit-ready na log na nakakatugon sa mga kinakailangan sa regulatory reproducibility.

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-to-DataFrame Workflows

Resulta: Direktang i-parse mula sa mga byte na may zero disk I/O, umaangkop nang native sa SFTP at API-driven na bank connectivity workflow.

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()

Multi-Bank Consolidation

Resulta: Ang parallel parsing sa HSBC (CAMT), Barclays (MT940), Revolut (CSV), Wise (OFX), at Chase (PDF) ay gumagawa ng isang naka-normalise na dataset.

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"])

Batch Processing gamit ang ZIP Archives

Resulta: Ang built-in na ZIP bomb protection (100:1 ratio limit, 10 MB entry cap, encrypted entry rejection) ay nagbibigay-daan sa iyong ligtas na iproseso ang mga buwanang statement archive.

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)

Ihambing sa mga alternatibo ❯ | Planuhin ang iyong ISO 20022 migration ❯ | Magsimula ❯