Financial Document Engineering · Open Source

Parse any bank statement in milliseconds.
Zero cloud dependencies. Zero telemetry.

An open-source, high-throughput financial document parsing engine engineered in Rust with native Python bindings. Converts PDF, CSV, OFX, QIF, MT940, and CAMT.053 bank statements into validated, structured JSON and ISO 20022 transaction streams entirely on your own infrastructure.

  • Deterministic Rust Core
  • Zero Cloud Dependencies
  • 100% Air-Gapped Privacy
  • 10,000+ Pages/Min Deterministic multi-threaded streaming throughput with zero lock contention.
  • < 0.8 ms Latency Zero-copy tokenization designed for real-time ledger reconciliation.
  • 100% Zero Telemetry Runs fully air-gapped on your private VPC or local host with zero network calls.
  • 14+ Format Dialects Unified extraction across digital PDF, CSV, OFX, QIF, MT940, and CAMT.053.
Corporate treasury and financial analytics dashboard in modern financial operations

Corporate Treasury Automation

Automated Reconciliation for Modern Treasury

Eliminate manual statement keying, error-prone spreadsheets, and expensive cloud OCR APIs. Normalize multi-bank statements directly into your general ledger, ERP, and treasury management workflows with sub-second turnaround.

View Treasury Playbook

Engine Architecture

Engineered for absolute accuracy.

Industrial-grade financial parsing combining memory-safe Rust execution, native Python bindings, and dual Apache/MIT licensing.

01

Multi-Format Dialect Engine

Deterministic state machines parse digital PDF tables, irregular CSV layouts, SGML-based OFX, and legacy SWIFT MT940 statements without brittle regex or external cloud OCR.

02

Arithmetic Balance Verification

Strict mathematical balance validation ensures opening balance plus net credits and debits precisely equals closing balance to the penny before record emission.

03

ISO 20022 Harmonization

Normalize disparate bank statements directly into canonical ISO 20022 CAMT.053 XML envelopes or strongly-typed JSON schemas ready for ERP, GL, and accounting ingestion.

The Processing Pipeline

From raw bank document to validated ledger transactions.

1

Ingest

Stream PDF bytes, CSV feeds, or SWIFT MT940 files into memory-safe zero-copy buffers.

Sub-millisecond stream loading
2

Tokenize

Deterministic lexical analysis identifies account metadata, booking dates, and line items.

Deterministic layout analysis
3

Verify

Arithmetic balance reconciliation confirms credit/debit integrity and validates IBAN checksums.

Mod-97 and balance proofs
4

Emit

Output strongly-typed JSON, Apache Arrow tables, or ISO 20022 CAMT.053 XML messages.

Ready for ERP & GL ingestion
Modern corporate office with technological displays and real-time financial pipelines

High-Performance Pipeline

Deterministic Execution at Enterprise Scale

Engineered for high-frequency financial platforms requiring bounded latency, zero-allocation loops, and strict ISO 20022 data models.

View Architecture Blueprint

Developer Quickstart

Install via Cargo, Pip, or Homebrew in Seconds

Deploy as a standalone CLI tool, embed as a high-assurance Rust crate in your microservices, or integrate into Python data pipelines with zero external runtime overhead.

bash — bankstatementparser
# 1. Install via Cargo or Pip
$cargo install bankstatementparser
$pip install bankstatementparser
# 2. Parse statement to validated JSON
$bankstatementparser --input statement.pdf --format json
# 3. Deterministic output verification
{ "status": "VALIDATED", "balance_proof": "EXACT_MATCH" }

Zero-Telemetry Privacy

Your financial data never leaves your infrastructure.

Bank Statement Parser is 100% self-contained and operates entirely on your local machine, private VPC, or air-gapped on-premise servers. Zero analytics, zero telemetry, and zero outbound network calls—guaranteeing complete GDPR, GLBA, and banking confidentiality compliance.

Read Security & Privacy Architecture

Clear Answers

Frequently Asked Questions

Does Bank Statement Parser send data to the cloud or external servers?

No. Bank Statement Parser is 100% self-contained and operates entirely on your local machine or private cloud server. It contains zero analytics, zero telemetry, and zero outbound network calls, ensuring complete compliance with GDPR, HIPAA, GLBA, and banking confidentiality regulations.

Which bank statement file formats are supported?

Bank Statement Parser supports text-based and digital PDFs, CSV files (with automatic delimiter and header detection), Open Financial Exchange (OFX 1.x & 2.x), Quicken Interchange Format (QIF), SWIFT MT940/MT942 messages, and ISO 20022 CAMT.053 XML statements.

How does the parser handle scanned or image-based statements?

For digital and vector PDFs, the engine extracts structured text streams directly with zero loss. For scanned image statements, an optional local OCR module performs deterministic optical layout parsing with zero external cloud API dependencies.

Is the project open source and available for commercial use?

Yes. Bank Statement Parser is dual-licensed under the Apache-2.0 and MIT open-source licenses. You can freely integrate it into commercial SaaS products, enterprise backends, and internal financial pipelines.

Developer Quickstart

Financial data is mission-critical.
Your parsing pipeline should be instant.

Get started in minutes with the Rust CLI or Python package across Linux, macOS, and Windows.

Install Bank Statement Parser