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.

See How It Works
Free first conversion 1,000+ banks supported Files deleted in 24h

How to convert a PDF bank statement to JSON

  1. Download your bank statement as a PDF from your online banking portal.
  2. Drop the PDF into the upload box above (or click to browse). Files up to 25 MB are supported.
  3. Wait 10–30 seconds while our OCR + AI engine reads the layout and extracts every transaction.
  4. 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.