Skip to content

Bank statement to JSON

Upload a statement and download JSON with one object per transaction. It is the same extraction the other outputs use, in the shape a program wants rather than a spreadsheet.

Upload a file

Sends you the link to the result. Nothing else is sent.

The first 3 pages of a batch are free. You only pay if the statement runs longer, and the price is shown before you pay.

What the JSON contains

  • One object per transaction, in statement order
  • Date, description, and amount as separate fields
  • A balance field when the statement prints a running balance
  • Plain UTF-8, no spreadsheet required to read it

How to convert

  1. Upload the statement

    PDF or CSV, as downloaded from the bank.

  2. Keep JSON selected

    JSON is already the selected output on this page.

  3. Download the records

    Consume them in code, or convert again to CSV for a spreadsheet.

Why this is more accurate than OCR

OCR reads a statement by position on the page. When a description wraps onto a second line, or the debit and credit columns sit close together, a positional parser attaches the wrong text to the wrong number.

Read by position

02/03  DIRECT DEBIT 4471
       ACME INSURANCE LTD   120.00
04/03  CARD PAYMENT
       NORTHGATE MARKET     -38.40

The wrapped line becomes a second transaction, and the amount lands on the wrong row.

Read as content

02/03  DIRECT DEBIT 4471 ACME INSURANCE LTD    120.00
04/03  CARD PAYMENT NORTHGATE MARKET           -38.40

One row per transaction, the description kept whole, the amount in the amount column.

Frequently asked questions

What does the JSON look like?

An array of objects, one per transaction, with the date, description, and amount of that line as their own fields, in the order the statement prints them.

Is there a JSON API?

Not yet — today the JSON comes out of the converter as a download.

Can I get CSV instead?

Yes. CSV and Excel are produced by the same extraction; only the output file differs.

Is my statement kept?

No. The file is used only to produce the result and is deleted right after.

Do I need an account?

No. It works without signing up.