Extract transactions, balances, and account metadata from bank statement PDFs via REST API. JSON, CSV, Excel, and accounting format exports.
Every extraction is validated against declared totals and running balances — not just raw LLM output. Also available as an MCP server for AI agents.
1. Upload a statement
curl -X POST https://api.bankstatemently.com/v1/documents \ -H "X-API-Key: bsk_live_..." \ -H "Content-Type: application/pdf" \ --data-binary @statement.pdf
2. Poll for results
curl https://api.bankstatemently.com/v1/documents/{id} \
-H "X-API-Key: bsk_live_..."Every extraction is validated against declared totals, computed sums, and running balances. You get confidence signals, not just raw output.
LLM extraction is followed by rule-based normalization: date standardization, currency detection, debit/credit classification, and balance reconciliation.
Template-verified parsing across 61+ accuracy-verified banks with layout-specific handling for multi-column, multi-currency, and wrapped transaction formats.
Typed JSON schema with transactions, balances, account metadata, and statement period. JSON, CSV, Excel, QBO, and Xero exports. See the full schema.
Open benchmarking framework that tests extraction accuracy and statement integrity against manually verified reference data.
Per-request webhook URLs for async workflows. Idempotent uploads prevent duplicate processing in retry-heavy pipelines.
Every processed statement returns a typed JSON response with:
Export as JSON, CSV, Excel, QBO (QuickBooks), or Xero format. See full schema in the API reference.
Ingest employee bank and credit card statements into expense tracking systems with categorized transactions.
Import transactions directly into QuickBooks, Xero, or custom ledgers via QBO, CSV, or JSON export.
Structured extraction with evaluation metadata for audit trails and regulatory reporting pipelines.
Not just OCR. Every statement goes through extraction, normalization, and evaluation before results are returned.