Convert PDF Bank Statement to JSON
Free PDF to JSON converter for developers, data engineers, and anyone running a pipeline. Output is a single typed JSON object with header metadata and a transactions array — drop straight into pandas, Polars, DuckDB, BigQuery, or your own scripts.
Drop your PDF here or
browse to upload
How to convert a PDF bank statement to JSON
- Download your bank statement as a PDF from your online banking portal.
- Drop the PDF into the upload box above (or click to browse). Files up to 25 MB are supported.
- Wait 10–30 seconds while our OCR + AI engine reads the layout and extracts every transaction.
- Download the JSON file. The first conversion every 24 hours is free.
Why JSON?
JSON is the universal data-pipeline format. Unlike CSV, it preserves types (numbers stay numbers, nulls stay nulls), supports nested structure for header metadata, and has unambiguous escaping rules. Every modern language reads it natively.
- Stable schema with typed fields: dates as ISO strings, amounts as numbers, missing values as null
- Header metadata (bank, account, period, opening/closing balance) alongside the transaction array
- UTF-8 encoded — international payee names and currency symbols preserved
- Drop into pandas (pd.read_json), Polars, DuckDB (read_json_auto), or fetch directly from a Node script
- Same parsed payload that drives every other export — guaranteed round-trip with our XLSX/CSV/QBO output
What gets extracted from your statement
- Transaction date (normalised to YYYY-MM-DD)
- Description, payee, and reference where available
- Debit and credit amounts in separate, signed columns
- Running balance, where the statement shows one
- Statement period, opening balance, and closing balance
- Account holder name and account number (header only)
Convert JSON for any bank
Our parser is bank-agnostic — it reads the layout of your statement directly rather than relying on a hand-written template per bank. That's how we support 1,000+ banks worldwide. Common ones below:
JSON conversion FAQ
What's the JSON schema?
A top-level object with bankName, accountHolder, accountNumber, statementPeriod (from/to), openingBalance, closingBalance, currency, and a transactions array. Each transaction has date (ISO YYYY-MM-DD), description, debit, credit, and balance — debit/credit/balance are number or null.
Is the JSON file the same shape as your API response?
Yes. The JSON download is the canonical parsed payload — every other export (XLSX, CSV, QBO, MT940 …) is derived from it. If you want to script around our output, this is the format to read.
Can I get categories in the JSON?
Categories live in the categorized XLSX/CSV exports. The plain JSON keeps the original parse uncoloured by heuristics so you can apply your own categorisation rules.
Need a different format?
- Convert PDF Bank Statement to Excel (XLSX)
- Convert PDF Bank Statement to CSV
- Convert PDF Bank Statement to QBO for QuickBooks
- Convert PDF Bank Statement to QFX for Quicken
- Convert PDF Bank Statement to Xero CSV
- Convert PDF Bank Statement to Categorised Excel
- Convert PDF Bank Statement to MT940 (SWIFT)
- Convert PDF Bank Statement to CAMT.053 (ISO 20022)