bank statement to CSV

Convert bank statement PDF to CSV

Most accounting and budgeting tools will import a CSV. Almost no bank will give you one for older statements. doc2json closes that gap: upload the PDF or a scan, get a CSV with one row per transaction and the account details repeated on every row, so nothing gets lost when you paste it into something else.

Made-up example

What the CSV file looks like

Example only. Invented bank, company and numbers.

Input: made-up example bank statement
Scanned Lakeside Bank PLC account statement for Acme Studio (Pvt) Ltd, October 2026, opening balance 4,200.00, three transactions and a closing balance of USD 5,416.00
Output: CSV (.csv)
lakeside-oct-2026-2026-10-30.csv
Rowbank_nameaccount_holderaccount_numberaccount_typeibancurrencystatement_start_datestatement_end_dateopening_balanceclosing_balancetotal_creditstotal_debitstransactions.datetransactions.descriptiontransactions.referencetransactions.debittransactions.credittransactions.balance
2Lakeside Bank PLCAcme Studio (Pvt) LtdXXXX XXXX 3307currentUSD2026-10-012026-10-3142005416250012842026-10-03Client payment, Orbit LtdTRF8812025006700
3Lakeside Bank PLCAcme Studio (Pvt) LtdXXXX XXXX 3307currentUSD2026-10-012026-10-3142005416250012842026-10-10Office rentCHQ 00021412005500
4Lakeside Bank PLCAcme Studio (Pvt) LtdXXXX XXXX 3307currentUSD2026-10-012026-10-3142005416250012842026-10-21Card, Cloud hostingPOS44102845416

Commas inside a description get quoted, as the CSV spec intended. Your importer will thank you.

How it works

Three steps, no setup.

  1. Step 1

    Upload the statement

    PDF, scan or photo, in the Playground with the bank statement template. No account needed to try.

  2. Step 2

    Check the rows

    You see the extracted JSON first, so you can eyeball the transactions before you download anything.

  3. Step 3

    Download CSV

    One row per transaction, UTF-8 with a byte order mark so Excel shows currency symbols and accents properly instead of garbled characters.

API

Get the CSV from the API

Add export=csv to the parse. The CSV comes back base64 encoded next to the JSON, at no extra credit cost.

Prefer JSON bodies? Send {"file_base64": "...", "schema": "bank-statement", "export": "csv"} instead.

Read the API docs
POST /api/v1/parse
curl -X POST https://doc2json.manoonlabs.com/api/v1/parse \
  -H "Authorization: Bearer $DOC2JSON_KEY" \
  -F file=@lakeside-oct-2026.pdf \
  -F schema=bank-statement \
  -F export=csv \
  | jq -r '.export.content' | base64 -d > lakeside-oct-2026-2026-10-30.csv

Why doc2json

Why doc2json and not a generic PDF to CSV converter

  • Transactions only

    Generic tools turn every line of text into a row, including "Page 2 of 4" and the bank's marketing blurb. Here the CSV is the transactions table, full stop.

  • Account context on every row

    Bank, account and period repeat on each line, so you can stack several statements in one sheet and still know which row came from where.

  • Safe to open

    Text cells that start with =, +, - or @ get a leading apostrophe, so a cheeky description can't run as a formula when someone double-clicks the file.

FAQ

Bank statement to CSV, answered.

Will the CSV open correctly in Excel and Google Sheets?

Yes. It's standard comma separated UTF-8 with a byte order mark, which is the hint Excel needs to read non-English characters and currency symbols correctly. Google Sheets and most importers read it as is.

Can I import the CSV into my accounting software?

Usually, yes. Most tools accept a CSV and let you map columns. If your tool wants specific headers like Date, Payee and Amount, rename the fields in the schema editor and the CSV headers follow.

Why are the statement details repeated on every row?

So each row stands on its own. It makes filtering, pivoting and combining several months easy. Don't need them? Remove those fields from your schema and the columns go too.

Do you keep my bank statements?

No. The statement is processed in memory for the request and then dropped. Neither the file nor the extracted data is saved, only a usage record with the time, page count and credits used.

Can I get the CSV through MCP?

No. The MCP tool returns JSON only, which is what agents want anyway. For a CSV file use the REST API with export=csv, or Download in the Playground.

Related

Your bank won't give you a CSV. We will.

50 free pages a month, no card, and the Playground works without an account.