Bank Statement Parser verwerkt financiële workflows uit de praktijk: PDF-bankafschriften verwerken, MT940-naar-CAMT-migratie, geautomatiseerde afstemming met saldoverificatie, compliance-pipelines, plaintext-accounting export, REST API-implementaties, bulk scanning en consolidatie van meerdere banken.
PDF-bankafschriften verwerken
Resultaat: Parseer digitale en gescande PDF-bankafschriften met automatische saldoverificatie — geen cloud-API's, geen gegevens verlaten uw machine.
De hybride PDF-pipeline routeert elke PDF via het optimale extractiepad en verifieert elk resultaat.
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-afschriftenverwerking
Resultaat: Scan volledige mappenbomen (honderden PDF's, XML's, CSV's) met automatische cross-file ontdubbeling in één aanroep.
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 naar CAMT.053 migratie
Resultaat: Eén API-aanroep verwerkt zowel MT940 als CAMT.053 tijdens de SWIFT-migratieperiode (november 2025–november 2028). Aparte parsing-pipelines zijn niet meer nodig.
Treasury-teams wereldwijd migreren van MT940 naar CAMT.053 vóór de SWIFT-deadline van november 2027. Bank Statement Parser verwerkt beide formaten met één API, waardoor de overgang naadloos verloopt.
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)
Geautomatiseerde afstemming met saldoverificatie
Resultaat: Formaatobafhankelijke DataFrames met Golden Rule-verificatie en ontdubbeling vangen fouten en duplicaten op voordat ze uw grootboek bereiken.
Parseer bankafschriften, verifieer saldi en vergelijk automatisch met interne gegevens.
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)
Resultaat: Verwerk PDF-bankafschriften automatisch en exporteer gecategoriseerde transacties naar hledger- of beancount-journaalformaat.
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-implementatie
Resultaat: Implementeer Bank Statement Parser als microservice die afschriftbestanden via HTTP accepteert en gestructureerde JSON teruggeeft.
# Start the API server
bankstatementparser-api --port 8000
# Ingest a statement
curl -X POST http://localhost:8000/ingest \
-F "file=@statement.pdf"
Compliance- en auditpipelines
Resultaat: Deterministische uitvoer, automatische PII-redactie en Golden Rule-verificatie produceren auditklare logbestanden die voldoen aan wettelijke reproduceerbaarheidsvereisten.
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-naar-DataFrame-workflows
Resultaat: Parseer rechtstreeks vanuit bytes zonder schijf-I/O. Past naadloos in SFTP- en API-gestuurde workflows voor bankconnectiviteit.
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()
Consolidatie van meerdere banken
Resultaat: Parallelle parsing over HSBC (CAMT), Barclays (MT940), Revolut (CSV), Wise (OFX) en Chase (PDF) levert één genormaliseerde dataset op.
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"])
Batchverwerking met ZIP-archieven
Resultaat: Ingebouwde ZIP-bombeveiliging (verhoudingslimiet 100:1, invoerlimiet 10 MB, afwijzing van versleutelde bestanden) maakt veilige verwerking van maandelijkse afschriftarchieven mogelijk.
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)
Vergelijk met alternatieven ❯ | Plan uw ISO 20022-migratie ❯ | Aan de slag ❯