Add bank statement parsing to your own product. The BankXLSX API turns PDF and scanned statements into clean, structured JSON, CSV, or Excel over three simple REST calls, with OCR and 90+ US bank layouts built in. Available on the Pro plan, no enterprise contract.
Last updated June 2026
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF
Uploading...
The BankXLSX bank statement API turns PDF and scanned statements into structured data over a simple REST workflow. You POST the file to /api/documents/upload, call /api/documents/extract to parse it, then GET the results as clean JSON with the account details and every transaction row. Each call is authenticated with a bearer token from your dashboard, the parser reads more than 90 US bank and card layouts and uses OCR on scans and photos, and the same engine that powers our Excel and CSV exports returns data your app can store or post straight into your ledger.
Reading a transaction out of a bank statement looks easy until you try to do it across thousands of accounts. Statements are built to be printed, not parsed, and every institution does it differently. Here is what teams run into when they try to build this in-house.
Chase, Wells Fargo, and a regional credit union lay out dates, descriptions, and balances in their own way, so a parser tuned to one breaks on the next.
A customer uploads a phone photo or a scanned PDF and there is nothing to read. You need OCR, and tuning OCR for financial tables is a project on its own.
Multi-page statements repeat headers and split transactions at page boundaries, so naive text extraction scatters rows and drops the running balance.
Banks redesign statements without warning. A regex pipeline that worked last quarter quietly starts returning bad data, and you find out from a support ticket.
Getting from a rough 90 percent to the accuracy a lender or accountant will trust takes months of edge-case work most teams cannot spare.
You are building a lending app or an accounting tool, not a document parser. Every week spent on statement extraction is a week not spent on your roadmap.
Send a file, get structured transactions back. The API wraps the same extraction engine our web app uses, so you ship statement parsing in an afternoon instead of building it.
Three JSON-over-HTTP calls take you from a raw file to parsed transactions. No SDK lock-in, just upload, extract, and fetch results.
Get account number, statement date, balances, and one object per transaction with date, description, and amount, ready to store or post.
The API reads digital PDFs, scanned statements, and JPG, PNG, HEIC, or TIFF photos, so your users can upload whatever they have.
Layouts tuned to how Chase, Bank of America, Wells Fargo, Citi, and dozens of other US banks and card issuers print their statements.
Create a personal API token in your dashboard and send it as a bearer header. Rotate or revoke it whenever you need to.
The same conversion that returns JSON also produces clean CSV and XLSX, so you can hand users a download or feed your own pipeline.
From a raw file to structured JSON without leaving your backend.
Log in, open the API section of your dashboard, and create an API token. Send it as an Authorization: Bearer header on every request.
Tip: API access is on the Pro plan.
POST the statement PDF or image to /api/documents/upload as multipart form data and get back a file_id.
Tip: Digital PDFs, scans, and photos all work.
POST the file_id to /api/documents/extract, then GET /api/documents/extraction/{hash} to pull the parsed transactions as JSON.
Tip: A typical statement finishes in under a minute.
When statement data is an input to your product rather than the product itself, the API lets you skip building a parser and get straight to the part that matters.
Pull deposits, balances, and NSF counts from borrower statements so your underwriters score cash flow without manual data entry.
Let users import statements from banks your feed does not cover, including closed accounts and older periods, by converting the PDF.
Turn uploaded statements into categorized transactions so users see their spending even when an aggregator connection fails.
Verify income and rent payments from statements during onboarding without standing up your own OCR stack.
The workflow is deliberately small. You upload a file, start an extraction, then poll for the result. Every request carries your bearer token. Here is the full round trip with curl.
1. Upload the statement
curl -X POST https://bankxlsx.com/api/documents/upload \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "[email protected]"The response returns a file_id you use in the next call.
2. Start the extraction
curl -X POST https://bankxlsx.com/api/documents/extract \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"file_id": 1234}'This returns an extraction_hash. Pass it to the results endpoint to fetch the parsed data.
3. Get the parsed transactions
curl https://bankxlsx.com/api/documents/extraction/abc123-def456 \
-H "Authorization: Bearer YOUR_API_TOKEN"| Method | Endpoint | What it does |
|---|---|---|
| POST | /api/documents/upload | Upload a statement file and receive a file_id. |
| POST | /api/documents/extract | Start parsing an uploaded file and receive an extraction_hash. |
| GET | /api/documents/extraction/{hash} | Fetch the parsed fields and transaction table as JSON. |
| GET | /api/documents/types | List the document templates available to your account. |
The complete request and response shapes, including every field, live in the API documentation.
The results endpoint returns the account-level fields and a transaction table. A trimmed response looks like this:
{
"success": true,
"data": {
"fields": [
{ "content": "Account Number", "value": "1234567890" },
{ "content": "Statement Date", "value": "2026-05-15" },
{ "content": "Balance", "value": "$12,450.00" }
]
}
}Each transaction comes back with its date, description, and amount, which maps cleanly onto a ledger row in your database. Because the same engine drives the spreadsheet exports, you can also retrieve the conversion as a CSV or Excel file when you would rather hand a user a download than store the data yourself. If you only need a flat file for an import job, the JSON export and CSV converter cover those without writing any integration code.
Plenty of OCR APIs can read a bank statement. The difference is who they are built for. Enterprise document-AI platforms aim at large contracts, broad document types, and procurement cycles. BankXLSX is focused on US bank and card statements and on getting a small team integrated the same day.
| BankXLSX API | Enterprise OCR platforms | |
|---|---|---|
| Time to first call | Create a token and start the same day | Often a sales call and onboarding first |
| Focus | US bank and card statements | Many document types, broad scope |
| Output | JSON, plus CSV and Excel | Usually JSON |
| Pricing | Included with the Pro plan, self-serve | Custom or per-page enterprise pricing |
| Best for | Startups and product teams adding statement parsing | Large enterprises with mixed document workloads |
If you or your team convert statements by hand a few times a week, the web converter is the faster path: drag a file in and download the result. Reach for the API when parsing needs to happen inside your product, on your users behalf, or at a volume no one wants to click through. Lenders building this into underwriting can start from the bank statement converter for lenders page, and teams that want hands-off processing of incoming files should look at automated bank statement processing and batch conversion.
Most products that parse statements end up parsing other paperwork too. The same kind of API turns invoices into structured data for accounts payable, reads contracts, tax forms, and IDs with document OCR, and if statements or receipts arrive by email, you can parse incoming emails into JSON before they ever hit your queue. Each one returns the same clean, machine-readable output you get here.
Yes. BankXLSX offers a REST API that converts PDF and scanned bank statements into structured JSON, CSV, or Excel. You upload a file, start an extraction, and fetch the parsed transactions over three authenticated calls, so you can build statement parsing into your own app instead of maintaining a parser.
A bank statement parser API is a programmatic service that takes a statement file and returns the account details and transactions as structured data. Instead of a person reading the PDF, your code posts the file to an endpoint and gets back machine-readable rows it can store, categorize, or post to a ledger automatically.
The API returns clean JSON: account-level fields such as account number, statement date, and balance, plus one object per transaction with date, description, and amount. The same conversion also produces CSV and Excel, so you can store the JSON or hand a user a download from the same parse.
Yes. The API uses OCR to read scanned PDFs and phone photos in JPG, PNG, HEIC, or TIFF, not just digital PDFs. That matters in production because users upload whatever they have, and a parser that only reads clean digital files fails on a large share of real-world statements.
Create a personal API token in the API section of your BankXLSX dashboard, then send it on every request in an Authorization header as a bearer token. You can rotate or revoke a token at any time, and each request is encrypted in transit.
The API is tuned to more than 90 US bank and card layouts, including Chase, Bank of America, Wells Fargo, Citi, Capital One, US Bank, and PNC, along with major credit card issuers and fintech accounts. Because it also runs OCR, it handles statements from smaller banks and credit unions that do not have a dedicated template.
API access is included with the BankXLSX Pro plan, so there is no separate enterprise contract or per-page negotiation to start. You can see the current Pro pricing on the pricing page and create an API token as soon as you upgrade.
Yes. Converting a statement to JSON is the API's default output. You post the PDF, the parser reads the transaction table, and the results endpoint returns the account fields and every transaction as JSON your application can consume directly.
Every request is authenticated with a bearer token and encrypted with 256-bit encryption in transit, and you can delete uploaded files at any time. Before integrating any statement API, confirm it authenticates each call, encrypts uploads, and gives you control over how long files are retained.
Export parsed statements to JSON.
Hands-off processing of incoming statements.
Convert many statements at once.
Get started converting bank statements to spreadsheets.
USD
per month
billed as
$288 yearly
Choose speed vs accuracy when extracting
| Base AI Faster | 2,500 pages |
| Pro AI Best accuracy | 500 pages |
Scale statement conversion across your team with automation.
USD
per month
billed as
$888 yearly
Choose speed vs accuracy when extracting
| Base AI Faster | 10,000 pages |
| Pro AI Best accuracy | 2,000 pages |
Enterprise-grade bank statement conversion and controls.
USD
per month
billed as
$ yearly
Choose speed vs accuracy when extracting
| Base AI Faster | pages |
| Pro AI Best accuracy | pages |