🔌 REST API 🏛️ 10,000+ Banks 📦 JSON + CSV + XLSX 🔍 OCR Included 🆓 Free Tier

Bank Statement API — Parse & Extract Any Bank Statement PDF

A REST API that parses bank statement PDFs from any bank in the world and returns clean, structured transaction data as JSON, CSV, Excel, MT940, or QBO. No bank connection required.

🔌

Bank Statement API — Full Documentation

Free tier available · API key required · Supports JSON, CSV, Excel, MT940, QBO output

Read API Documentation →

Free tier: 50 requests/month · TLS 1.3 encrypted · Files deleted after 24 hours

What Does the Bank Statement API Do?

The Bank Statement Engine API is a REST API purpose-built for extracting structured financial data from bank statement PDFs. You upload a PDF, we parse it, and you get back clean transaction data — every row, every column, every penny — in the format your application needs.

The API handles everything that makes bank statement parsing hard: multi-column layouts, continuation lines, page headers and footers, balance carry-overs, OCR for scanned documents, password-protected PDFs, and the enormous variation in statement formats across 10,000+ banks worldwide. You send us a PDF; we send you structured data.

Key Features

API Authentication

All API requests require an API key passed in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Get your API key by registering at bankstatementengine.com/register. Free tier keys are issued instantly with no credit card required.

Core Endpoints

POST /api/upload — Submit a PDF

curl -X POST https://bankstatementengine.com/api/upload \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "file=@barclays_june_2026.pdf" \ -F "output_format=json" \ -F "password=optional_pdf_password"

Response:

{ "run_id": "run_7f3a9b2c", "status": "processing", "estimated_seconds": 4 }

GET /api/result/{run_id} — Retrieve Results

curl https://bankstatementengine.com/api/result/run_7f3a9b2c \ -H "Authorization: Bearer YOUR_API_KEY"

Response (truncated):

{ "status": "complete", "bank_name": "Barclays", "account_number": "****8819", "currency": "GBP", "statement_period": { "from": "2026-06-01", "to": "2026-06-30" }, "opening_balance": 3241.55, "closing_balance": 4876.22, "transaction_count": 47, "transactions": [ { "date": "2026-06-03", "description": "FASTER PAYMENT FROM J SMITH", "reference": "FP20260603001", "debit": null, "credit": 1500.00, "balance": 4741.55 }, { "date": "2026-06-05", "description": "AMAZON MKTPLACE PMTS", "reference": "VD4892933", "debit": 34.99, "credit": null, "balance": 4706.56 } ] }

Output Format Options

FormatParameter ValueBest For
JSONjsonApplications, APIs, databases
CSVcsvExcel, Python, Xero, QuickBooks import
Excel (XLSX)excelDirect Excel open, accountant delivery
MT940 (.sta)mt940SAP, Oracle, Navision ERP import
QBOqboQuickBooks Online native import
OFXofxQuicken, Microsoft Money, Sage

Use Cases

Accounting Automation Platforms

Accounting software companies integrate the Bank Statement API to accept client PDF uploads and automatically populate transaction data — eliminating the "CSV import" step that confuses non-technical users. The API handles all bank format variations so the accounting software does not need to maintain bank-specific parsers.

Lending & Credit Scoring

Lenders use the API to process bank statements from loan applicants. The structured JSON output enables automated income verification (identify recurring credits above a threshold), expense analysis (total debits by category), average balance calculation, and bounced payment detection — all from the PDF the applicant already has.

Bookkeeping Services

Bookkeeping firms that process hundreds of client bank statements monthly use the Bulk API to submit multiple PDFs in parallel and retrieve results asynchronously. Combined with our Bank Statement Analysis API, they can auto-categorise transactions and prepare draft accounts with minimal human review.

Expense Management

Expense management apps that need to reconcile employee spending against bank records integrate the API to import business bank statement data and automatically match against submitted expense claims.

Pricing Tiers

TierRequests/MonthPriceSLA
Free50£0 / $0Best effort
Starter500From £29/mo99% uptime
Growth5,000From £149/mo99.5% uptime
EnterpriseCustomContact us99.9% + SLA

Frequently Asked Questions

What is the Bank Statement Engine API?
A REST API that accepts bank statement PDFs and returns structured transaction data as JSON, CSV, Excel, MT940, or QBO. Works with 10,000+ banks worldwide. No bank account connection or OAuth required.
What are the main API endpoints?
POST /api/upload (submit PDF, returns run_id) and GET /api/result/{run_id} (retrieve structured transaction data). Additional endpoints for webhooks and bulk processing are available on paid plans.
How do I get an API key?
Register at bankstatementengine.com — free tier keys issued instantly. Pass in the Authorization header: Authorization: Bearer YOUR_API_KEY.
What does the JSON response include?
bank_name, account_number (masked), currency, statement_period, opening_balance, closing_balance, transaction_count, and a transactions array with date, description, reference, debit, credit, and balance per transaction.
Does the API support scanned PDFs?
Yes. OCR is included. Digital PDFs process in under 5 seconds. Scanned PDFs take 15–45 seconds depending on scan quality.
Which banks does the API support?
10,000+ banks — Chase, Bank of America, Wells Fargo, Barclays, HSBC, Lloyds, HDFC, ICICI, SBI, ANZ, Westpac, Emirates NBD, and thousands more.
Can the API handle password-protected PDFs?
Yes. Pass the password in the request body. It is used only for decryption and never stored.
What output formats does the API support?
JSON (default), CSV, Excel (XLSX), MT940 (.sta), QBO, and OFX. Specify via the output_format parameter.
Is there a free tier?
Yes — 50 requests/month, no credit card required. Paid plans from 500 requests/month.
How is this different from Open Banking?
Open Banking (Plaid, TrueLayer) requires users to authenticate with their bank via OAuth and only works with banks in the Open Banking network. Our API works with any PDF from any bank — no bank login required, no geographic restriction.

Related API Docs & Tools

Full API Guide Bank Transactions API Bank Statement Analysis API Bank Statement Extractor Bank Statement Parser Bank Statement to Xero Bank Statement to QuickBooks Bulk Bank Statement Converter

Ready to Integrate the Bank Statement API?

Free tier · 10,000+ banks · JSON, CSV, Excel, MT940, QBO output · OCR included

View API Docs →