Convert a bank statement to Excel, free

Upload a bank statement PDF, scan or photo and download it as an Excel workbook: the account details on one sheet, the transactions on another, with amounts as numbers you can sum. It works for any bank in any country, free and with no account. The free try converts the first page.

Upload your bank statementTake a photo or pick a PDF, up to 10 MB
  • Free
  • No sign-up, no card
  • Download as Excel, CSV or JSON

A bank statement holds personal financial data. Upload your own, or one you may share. We keep the first page and the result for 7 days to run and improve this tool, then delete them. The rest of your file is not stored. Privacy policy

Sample. Every value is invented.

Northfield Bank

Account statement

Client Name
Alex Sample
Account Number
0012 3456 7890
Statement Start Date
2026-09-01
Statement End Date
2026-09-30
Starting Balance
4,210.55
Ending Balance
3,872.10
DateDescriptionAmountBalance
2026-09-02Card payment, Market Hall-48.204,162.35
2026-09-03Salary, Brightwater Ltd2,400.006,562.35
2026-09-05Rent transfer-1,150.005,412.35
{
  "client_name": "Alex Sample",  "account_number": "0012 3456 7890",  "statement_start_date": "2026-09-01",  "statement_end_date": "2026-09-30"}
  • Any layout, no template

    It works out the fields from the page itself, so there's nothing to set up.

  • Scans and phone photos

    Digital PDFs, scanned pages and photos all go through the same way.

  • Structured, not just text

    Named fields and table rows you can download as Excel, CSV or JSON, not a wall of OCR text.

  • An API when you need it

    The same data from your own code, as the sample call further down shows.

What the Excel file contains

Copying a statement out of a PDF usually breaks it: columns run together, descriptions wrap onto new rows and amounts paste as text. This converter reads the statement's structure first and then writes the workbook, so each transaction is one row and each column means one thing.

Sheets in the downloaded workbook
SheetWhat is on itGood for
FieldsBank, account holder, account number or IBAN, statement period, opening and closing balanceChecking you have the right account and period
TransactionsDate, description, reference, debit, credit and balance, one row each, with a frozen headerSorting, filtering, pivot tables, SUM and SUMIF

Amounts such as 2,400.00 and -48.20 arrive as numbers with their decimals shown, so totals work straight away. Account numbers keep their leading zeros, because they stay as text. Dates come as they appear in the result, often in the form 2026-09-02, which Excel and Google Sheets both recognise.

How to convert a bank statement PDF to Excel

  1. Download the statement from your online banking as a PDF, or scan the paper copy. Remove any password from the PDF first, because a locked file can't be read.
  2. Upload it on this page. The first page is read, usually in a few seconds.
  3. Check the opening balance and the first and last rows against the statement.
  4. Choose Download, then Excel (.xlsx). Open it in Excel, Google Sheets, Numbers or LibreOffice.

Check the conversion with the balance

A statement checks itself. Opening balance plus credits minus debits should equal the closing balance, and each row's running balance should equal the row above plus that row's amount. Add a column with =D3+C4 (or your columns) and compare it with the printed balance: the first row that disagrees shows you exactly where to look.

Statements with separate debit and credit columns

Some banks print money out and money in as two columns, and others print one signed amount. The tool keeps the layout the bank used. If you need a single column, add =Credit-Debit in a new column. Statements with Dr and Cr after the amount are kept as printed, so filter on that column to split them.

Whole statements and many statements

Lenders, accountants and bookkeepers need every page, often for six or twelve months. A free account reads every page of a statement and joins the transactions into one table, up to 100 pages a month, and flags a run when the table comes back shorter than the statement. Results from many statements export to one workbook. See the bank statement field list and lending and mortgage.

Sample API call

This is how the same bank statement looks from your own code. wf_demo_bank_statement is a dummy workflow id and every value below is invented, so the call won't run as written. A real run reads every page and adds a confidence score and page position to each field.

Run a workflow, then read the result
curl -X POST "$DOCREFINERY_API/v1/workflows/wf_demo_bank_statement/run" \
  -H "Authorization: Bearer $DOCREFINERY_API_KEY" \
  -F "[email protected]"

# Take trace_id from the answer, then poll until status is "fulfilled"
curl "$DOCREFINERY_API/v1/runway/9f1c0a7e" \
  -H "Authorization: Bearer $DOCREFINERY_API_KEY"
Response (invented values)
{
  "trace_id": "9f1c0a7e",
  "status": "fulfilled",
  "document_type": "bank_statement",
  "result": {
    "fields": [
      {
        "key": "client_name",
        "alias": "Client Name",
        "text": "Alex Sample",
        "field_confidence": 0.99,
        "location": { "page": 1, "bbox": [0.08, 0.12, 0.46, 0.14] }
      },
      {
        "key": "account_number",
        "alias": "Account Number",
        "text": "0012 3456 7890",
        "field_confidence": 0.98,
        "location": { "page": 1, "bbox": [0.08, 0.17, 0.46, 0.19] }
      },
      {
        "key": "statement_start_date",
        "alias": "Statement Start Date",
        "text": "2026-09-01",
        "field_confidence": 0.97,
        "location": { "page": 1, "bbox": [0.08, 0.22, 0.46, 0.24] }
      },
      {
        "key": "transactions",
        "alias": "Transactions",
        "table": [
          [
            { "key": "date", "alias": "Date", "text": "2026-09-02" },
            { "key": "description", "alias": "Description", "text": "Card payment, Market Hall" },
            { "key": "amount", "alias": "Amount", "text": "-48.20" },
            { "key": "balance", "alias": "Balance", "text": "4,162.35" }
          ]
        ]
      }
    ],
    "extraction_approval": "auto",
    "low_confidence_fields": []
  }
}

Make it run on your own bank statement

  1. Create a free account.
  2. Upload one sample under Workflows, keep the fields you want and save. That gives you a real workflow id.
  3. Create an API key under Settings. Keys are switched on per account, so ask us if you don't see the option.
  4. Set DOCREFINERY_API and DOCREFINERY_API_KEY as in the quickstart, and swap in your id.

Free try or free account?

Free try and free account, compared
FeatureFree tryFree account
Pages readPage 1Every page
Allowance5 tries a day100 pages a month
File sizeUp to 10 MBUp to 100 MB
How it readsFinds the fields on the pageBuilt-in bank statement fields, or your own workflow
CheckingCompare with your pageConfidence scores and page citations
OutputFields on screen, download as Excel, CSV or JSONExcel, CSV and JSON for every page, and API keys on request

Common questions

Is this bank statement to Excel converter free?

Yes. You get 5 free tries a day with no account and no card, and each try converts the first page of one statement to Excel, CSV or JSON. A free account converts every page, up to 100 pages a month.

Which banks does it work with?

Any bank. It isn't tied to a list of templates: it reads what is printed, so statements from HBL, Meezan Bank, UBL, MCB, HDFC, ICICI, Emirates NBD, Barclays, Chase or a small local bank go through the same way. docRefinery isn't affiliated with any of them.

Can I convert a scanned bank statement to Excel?

Yes. Scans and phone photos work as well as digital PDFs. Keep the page flat and in focus, because a blurred figure is hard for anyone to read.

Can I open the file in Google Sheets?

Yes. Upload the .xlsx to Google Drive and open it with Google Sheets, or choose CSV and import that. Both keep one transaction per row.

Does it convert credit card statements to Excel?

Yes. A credit card statement has the same shape, a header and a table of transactions, so it converts the same way.

Is my bank statement stored?

We keep the first page and the result for 7 days to run and improve the tool, then delete them. The rest of the file isn't stored. The Excel file itself is built in your browser.

Related

Try it on your own bank statement.

Free, with no sign-up and no card.