Convert a bank statement to JSON

statement.work exports bank statement transactions as JSON, a structured text format that scripts, apps and databases can read directly, with each transaction's date, description, amount, running balance and category as separate fields.

Last updated

What JSON is good for

JSON (JavaScript Object Notation) is the format most software uses to pass data around. Where CSV is a flat grid of text, JSON holds named fields, so a program doesn’t have to guess which column is which or whether 03/04 is March or April. If statement data is heading into code rather than a spreadsheet, JSON is usually the easier format to work with.

Typical uses:

  • Loading transactions into a database or data warehouse.
  • Feeding an internal dashboard or a reporting script.
  • Running your own checks, such as matching statement lines against invoices.
  • Building a workflow that processes many statements the same way.

What the output looks like

An illustrative example of transaction records:

[
  {
    "date": "2026-07-02",
    "description": "Amazon Marketplace",
    "category": "Supplies",
    "amount": -86.40,
    "balance": 4123.95
  },
  {
    "date": "2026-07-03",
    "description": "Stripe payout",
    "category": "Income",
    "amount": 2315.00,
    "balance": 6438.95
  }
]

Illustrative structure and data.

Why consistent structure matters

The hard part of working with bank data in code is rarely parsing JSON; it is coping with every bank doing things differently. One statement shows debits as negatives, another uses a separate column; one writes dates day-first, another month-first. statement.work normalizes all of that, so every statement produces the same fields in the same form, and code written against one bank’s statements works for the next.

Getting JSON from a statement

  1. Upload a PDF, scan or photo of the statement to statement.work.
  2. Review the extracted transactions.
  3. Export as JSON.
  4. Load it with any JSON parser, in Python, JavaScript or another language.

Checks worth automating

Because JSON makes the data easy to process, it is also easy to verify:

  • Sum the amounts and compare with closing balance minus opening balance.
  • Recompute the running balance row by row and flag any break.
  • Check dates fall inside the statement period.
  • Look for identical date, description and amount combinations (possible duplicate charges).

Other formats

For spreadsheets and accounting imports, use CSV or Excel. All three exports come from the same extraction, so you can switch formats without converting again.

Questions

When should I use JSON instead of CSV?

Use JSON when a program will process the data, such as a script, an internal tool or a database load, and you want typed fields without parsing quirks. Use CSV for spreadsheets and accounting software imports.

Can I convert a scanned statement to JSON?

Yes. Scans, photos and digital PDFs all produce the same structured output, which you can export as JSON, CSV or Excel.

Is the JSON structure the same for every bank?

Yes. statement.work produces the same consistent fields whichever bank issued the statement, so code written for one bank works for the rest.

Get your afternoons back.

We're onboarding a first group of accountants, bookkeepers and small businesses. Add your email to get early access.

You're on the list. We'll email you when it's your turn.

No spam. One email when it's your turn.