Free bank statement OCR

Upload a bank statement and extract its account details, balances and transactions as structured data, free. It reads digital PDFs, scanned statements and phone photos from any bank, in any country. You don't need an account.

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 free bank statement extractor reads

A statement is two things on one page: a header with the bank, the holder and the balances, and a table of transactions. The free try returns both, the header as named fields and the transactions as rows, so you get a table rather than a wall of OCR text. Because it works out the fields from the page, it doesn't need a template for your bank.

  • Bank and branch: bank name, branch, address.
  • Account: holder name, account number, IBAN, account type, currency.
  • Period: statement date, start date and end date.
  • Balances: opening balance, closing balance, total deposits and withdrawals.
  • Transactions: date, description, reference, debit, credit and running balance.

Bank statement to text, Excel or CSV

Once the statement is read, use Download to save it as Excel (.xlsx), CSV or JSON, or copy the fields as text. For a spreadsheet with amounts you can sum, see bank statement to Excel. For a file to import into QuickBooks, Xero or another accounting package, see bank statement to CSV.

Bank statement names and formats by region

The same document goes by different names, and the identifiers on it change with the country. These are the ones people search for and the details to look for on each.

What a bank statement is called, and what identifies the account
RegionAlso calledAccount details printed
PakistanBank statement, account statement, e-statement24-character PK IBAN, branch code
IndiaBank statement, passbook, account statementAccount number, IFSC code, MICR code
Bangladesh, Sri Lanka, NepalBank statement, account statementAccount number, branch, SWIFT code
UAE, Saudi Arabia, GulfAccount statement, salary statementAE or SA IBAN, in English and Arabic
United KingdomBank statement, current account statementSort code, account number, IBAN
United StatesChecking or savings statementRouting number, account number
CanadaChequing account statementTransit number, institution number
EuropeKontoauszug, relevé bancaire, extracto bancario, estratto contoIBAN, BIC
Latin AmericaEstado de cuenta, extrato bancárioCLABE in Mexico, agência and conta in Brazil
Australia, New ZealandBank statement, transaction listingBSB in Australia, account number

Types of bank statement you can upload

  • Current, checking and savings account statements.
  • Business account statements, including salary and payroll accounts.
  • Credit card statements, and mini statements from an ATM or app.
  • Scanned statements and passbook pages, including photos taken on a phone.
  • Statements with money in and out in separate columns, or one signed amount column.

Long statements and multi-page files

Most statements run to several pages, and the transactions go on past the first. Lenders and bookkeepers need all of them, which is why an account reads every page and joins the rows into one table. A run is also flagged if the table comes back shorter than the statement, so missing rows don't pass unnoticed. See the full field list for all 41 bank statement fields.

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 OCR really free?

Yes. You get 5 free tries a day with no account and no card, and each try reads the first page of one statement. A free account then reads whole statements, up to 100 pages a month.

Can I convert a bank statement PDF to Excel?

Yes. After a free try, use Download to save the result as Excel (.xlsx), CSV or JSON. The free try reads the first page, so a free account is the way to convert every page of a long statement. See bank statement to Excel.

Does it work with scanned bank statements?

Yes. Upload a scan or a phone photo as well as a digital PDF. Keep the page flat, well lit and in focus, because a blurred figure is hard for anyone to read. Password-protected PDFs can't be read, so remove the password first.

Which banks does it support?

It isn't tied to a list of banks. It reads what is printed on the page, so a statement from HBL in Pakistan, HDFC in India or Barclays in the UK goes through the same way. Always check the figures against your statement.

Is it safe to upload a bank statement?

A statement holds personal financial data, so upload only your own or one you're allowed to share. We keep the first page and the result for 7 days to run and improve the tool, then delete them, and the rest of the file isn't stored.

Related

Try it on your own bank statement.

Free, with no sign-up and no card.