Bank statement → CSVPublic beta

A bank statement, as a CSV that has the same shape every time.

DocShape writes a PDF bank statement’s transactions to a CSV file with eleven fixed columns, ISO dates and plain decimal amounts. It is the file for importing, scripting and analysis: nothing to reformat, and no guessing which column is which.

Before anything is downloaded, the converter shows a sample of the extracted transactions and the verification outcome. The CSV holds the full transaction table.

Open the converter

The public beta runs for a limited time, on a best-effort basis, and the upload on the homepage says whether it is open right now. It takes a text-based PDF statement of up to 10 MB and 8 pages; scanned statements are refused. The full converter remains a private, invite-only beta. No separate DocShape account is required.

  • Text-based PDF only
  • One statement
  • Up to 10 MB
  • Up to 8 pages
CSVdocshape-transactions.csvSample
transaction_date,posted_date,description,direction,debit,credit,signed_amount,running_balance,currency,currency_basis,direction_basis2026-06-02,,Northstar Studio · Invoice 1042,credit,,3200.00,3200.00,11450.00,USD,stated_label,source_notation2026-06-04,,Workspace rent,debit,1200.00,,-1200.00,10250.00,USD,stated_label,source_notation2026-06-08,,Software subscription,debit,85.00,,-85.00,10165.00,USD,stated_label,source_notation2026-06-12,,Fieldwork Co. · Invoice 1043,credit,,1850.00,1850.00,12015.00,USD,stated_label,source_notation2026-06-19,,Contractor payments,debit,1900.00,,-1900.00,10115.00,USD,stated_label,source_notation2026-06-24,,Riverside Print · Invoice 1044,credit,,2400.00,2400.00,12515.00,USD,stated_label,source_notation2026-06-27,,Utilities,debit,376.50,,-376.50,12138.50,USD,stated_label,source_notation
A fictional account. The empty second field is a posted date this statement did not print.

The columns

Eleven columns, always in this order.

The header row is the same in every file DocShape writes, so whatever reads it can address a column by its name or by its place.

  1. transaction_date
  2. posted_date
  3. description
  4. direction
  5. debit
  6. credit
  7. signed_amount
  8. running_balance
  9. currency
  10. currency_basis
  11. direction_basis
transaction_date
The transaction's date, as YYYY-MM-DD.
posted_date
The posting date, where the statement prints a separate one.
description
The description as the statement printed it.
direction
debit, credit, or neutral for a zero amount the statement gives no direction for.
debit
The amount of a debit, unsigned. Blank on any other row.
credit
The amount of a credit, unsigned. Blank on any other row.
signed_amount
The same amount with its sign: credits positive, debits negative.
running_balance
The balance after the transaction, where the statement prints one.
currency
The three-letter currency code, or blank when it could not be established.
currency_basis
How the currency was established: stated_label, stated_on_figures, inferred_us_deposit_insurance, or undetermined.
direction_basis
How the direction was established: source_notation, from the statement's own columns or signs; balance_derived, from the account's printed balances; or user_confirmed, from your own answer about one row, checked against those balances.

The file

Predictable enough for a program to rely on.

A CSV is only useful if whatever reads it can trust its shape. These properties hold for every CSV DocShape produces.

Encoding
UTF-8, with no byte-order mark.
Lines and quoting
Comma-separated, CRLF line endings, quoted only where a field needs it.
Dates
ISO YYYY-MM-DD in every locale — never a spreadsheet serial number.
Amounts
Plain decimals: no thousands separators, no currency symbol, no scientific notation, and the trailing zeros the statement printed kept.
Blank
A value the statement did not state — never 0, null or N/A.
Order
The order the statement printed the transactions in, never re-sorted.
Transactions only
No title line, no totals block, no verification section. Those are in the workbook.

Consolidated statements

One file per account, never one merged file.

Where a consolidated statement’s structure is supported, each account gets its own CSV. The currency and its basis repeat on every row, so each file stands on its own.

Not every multi-account layout is supported, and one PDF can hold at most ten accounts.

  • CSVdocshape-transactions-account-1.csvSample
    transaction_date,posted_date,description,direction,debit,credit,signed_amount,running_balance,currency,currency_basis,direction_basis2026-06-02,,Northstar Studio · Invoice 1042,credit,,3200.00,3200.00,11450.00,USD,stated_label,source_notation2026-06-04,,Workspace rent,debit,1200.00,,-1200.00,10250.00,USD,stated_label,source_notation2026-06-08,,Software subscription,debit,85.00,,-85.00,10165.00,USD,stated_label,source_notation2026-06-12,,Fieldwork Co. · Invoice 1043,credit,,1850.00,1850.00,12015.00,USD,stated_label,source_notation
  • CSVdocshape-transactions-account-2.csvSample
    transaction_date,posted_date,description,direction,debit,credit,signed_amount,running_balance,currency,currency_basis,direction_basis2026-06-05,,Transfer to checking,debit,500.00,,-500.00,14500.00,USD,stated_label,source_notation2026-06-30,,Interest,credit,,12.40,12.40,14512.40,USD,stated_label,source_notation

Opening it in a spreadsheet

Safe to open, and still exact.

A spreadsheet treats a field that begins with =, +, - or @ as a formula. So a description beginning with one of those — or with a tab, a line break or an apostrophe — is written with one leading apostrophe, which spreadsheets read as “this is text”.

A description that starts with

  • =
  • +
  • -
  • @
  • tab
  • line break
  • '
  1. The description, as extracted=Refund · Invoice 1042
  2. In the CSV'=Refund · Invoice 1042One apostrophe added, nothing else changed.
  3. In the workbook=Refund · Invoice 1042A text cell, so no apostrophe is needed.

The prefix is reversible: remove exactly one leading apostrophe and you have the description as extracted — with line endings normalized and any characters a spreadsheet file cannot hold removed, the same text the workbook carries.

Choosing a format

CSV or Excel?

Both come from the same conversion you reviewed, and you can download either.

XLSXExcel

For review and work.

A workbook: the transactions, with the statement's figures and the verification result alongside them.

  • Transactions, Summary and Verification sheets
  • Date and number cells, a bold, frozen, filterable header
  • Several accounts: an Overview, then each account's own sheets
What the workbook holds

CSVCSVThis page

For imports, scripts and databases.

A fixed schema: eleven columns in the same order every time, transactions only.

  • UTF-8, CRLF, ISO dates, plain decimals
  • The currency and its basis on every row
  • Several accounts: one file each, never merged