Bank statement parser
A parser turns a statement into fields a program can use: a date, a description, an amount, one set per transaction. Upload a file and take the result as JSON or CSV.
Upload a file
What the parser returns
- One record per transaction, in statement order
- Fields separated: date, description, amount, and balance where present
- JSON for code, or CSV and Excel for a spreadsheet
- No page-coordinate assumptions, so wrapped lines stay whole
How to convert
Upload the statement
PDF or CSV, straight from the bank.
Choose JSON or CSV
JSON if the next step is code, CSV if a human will read it.
Use the records
Import them, or feed them straight into your own pipeline.
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.40The 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.40One row per transaction, the description kept whole, the amount in the amount column.
Frequently asked questions
What is a bank statement parser?
Software that turns the printed transactions of a statement into structured records — the date, description, and amount of each line as separate fields.
Is there an API?
Not yet. Today the parser is the converter on this site; JSON output is the machine-readable form of it.
Which output formats are available?
JSON for developers, plus CSV, Excel, QIF, OFX, QBO, Tally XML, and MT940 for the tools those belong to.
Is my file 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.