The ParseBank API: Convert Bank Statements Programmatically
July 21, 2026 · 2 min read
If your product or back office touches bank statements, you have probably written (or dreaded writing) the same pipeline everyone writes: accept a PDF, run OCR, fight table layouts, guess which column is the debit, and hope nobody notices the rows that came out wrong.
Today that pipeline is three HTTP requests. The ParseBank API is now available on the Business and Corporate plans.
What it does
The API is the exact engine behind our converter: every page is read by a vision model, every extracted row is checked against the statement's printed running balance, and anything that cannot be reconciled is flagged instead of silently shipped. Scans and phone photos are read with a multi-pass pipeline that re-reads suspect rows at higher zoom and only accepts a correction when the arithmetic proves it.
You send a file, you get back structured transactions with an explicit integrity verdict. Not "here is some text we found", but "these 27 rows reconcile from opening 4,523.17 to closing 6,913.71".
The whole integration
# 1. Upload
curl -X POST https://parsebank.io/api/v1/statements \
-H "Authorization: Bearer sk_live_..." \
-F "[email protected]"
# -> { "data": { "id": "abc123", "status": "processing", "pages": 12 } }
# 2. Poll until completed
curl https://parsebank.io/api/v1/statements/abc123 \
-H "Authorization: Bearer sk_live_..."
# 3. Download the export
curl -o statement.csv \
"https://parsebank.io/api/v1/statements/abc123/export?format=csv" \
-H "Authorization: Bearer sk_live_..."
Exports come in the same formats as the web app: CSV (generic, QuickBooks 4-column, Xero), JSON with the raw printed cell text preserved for auditing, XLSX, and QuickBooks Web Connect (.qbo). Locale-aware formatting (decimal commas, localized headers) is a query parameter.
Built for production back offices
- Idempotency keys on upload, so a retried job never bills or imports twice. The same statement re-uploaded produces the same stable transaction IDs (FITIDs), so re-imports never duplicate rows in accounting software.
- Page-based pricing, failure-safe: one page costs one credit from your plan's monthly allowance, and failed conversions refund automatically.
- Privacy by default: original files are deleted the moment page rendering completes, extracted data follows your retention setting, and nothing is used to train models.
- Keys you can rotate: create and revoke keys in the dashboard; only a hash is ever stored.
Getting started
- Subscribe to Business or Corporate ($60/month for 1,000 pages, $99/month for 4,000).
- Create a key under Dashboard, then API keys.
- Read the API documentation for the full reference, including ready-to-paste curl and Node examples.
Statements from any bank work, in any layout, including scans and photos. If you hit one that does not reconcile, the response says so honestly, and we treat it as a bug worth fixing.