Statement2Ledger · Free beta

Convert bank statement PDFs to Excel, CSV, QuickBooks and Xero

Drop in a PDF statement from your bank and get a clean list of transactions you can check, fix and export. Free, no sign-up, nothing to install.

Beta: works with most text-based bank PDFs; always check the badge — amber or red means compare with your statement.

Converter

Drop your bank statement PDFs hereDrop more PDFs here

or

Text-based PDFs from most banks. You can add several statements at once.

Your statement never leaves your device. Conversion happens in your browser; you can even disconnect from the internet after the page loads. (Only a PDF with Chinese, Japanese or Korean text may need a font table from newellabs.com; that request carries nothing from your file.)

How it works

  1. Drop in your PDF

    Use the statement you download from online banking. The converter reads the text on each page and finds the transaction table in most common layouts.

  2. Check the preview

    It tests that the opening balance plus every transaction equals the closing balance. When the statement prints running balances, it points to the rows where they break. Click a cell to fix it, or add and delete rows.

  3. Export

    Download a CSV or Excel file, a QuickBooks (.qbo), Quicken (.qfx) or OFX bank file, a QIF file, or a CSV laid out for Xero's statement import.

Check the privacy yourself

Everything runs in this browser tab, and your statement is never sent anywhere. The page's security policy blocks connections to any other server. Once the page has loaded, the only thing the converter may still fetch is a font table from newellabs.com, and only for a PDF with Chinese, Japanese or Korean text; the request carries nothing from your file. To see it for yourself, open your browser's developer tools on the Network tab and convert a statement: no request goes out. Or load this page, turn off your Wi-Fi, and convert.

Supported statements

Works with

  • Text-based PDF statements from most banks and card issuers: the kind you download from online banking.
  • One amount column, separate money in and money out columns, CR and DR markers, minus signs or brackets.
  • Running balances, multi-page statements, and descriptions that wrap onto a second line.
  • Day-first, month-first and written-out dates, oldest-first or newest-first lists, and credit card statements.
  • Statements split into sections (deposits, checks paid, withdrawals), check lists printed two to four across, and amounts with two or three decimals (such as Bahraini or Kuwaiti dinars).

Not yet

  • Scanned or photographed statements. They are pictures without text, so they need OCR, which this tool doesn't do yet.
  • Password-protected PDFs. Save an unlocked copy from your PDF viewer first.
  • Statements with several accounts: each account’s section is checked against its own balances, but the rows come out as one list, to split in your accounting app.

This is a beta: always check the badge and compare the totals with your statement before you import. Green means the rows add up to the balances printed on the statement; amber, red or grey means compare the rows with your statement. The check catches wrong amounts when the statement prints its balances, but it can't catch a wrong date, and you know your account best. Statement2Ledger is provided as is, without any warranty, and you are responsible for what you import into your books.

Import into your accounting software

QuickBooks Online

  1. Export the QuickBooks (.qbo) file, or the QuickBooks CSV (Date, Description and Amount; choose separate Debit and Credit columns for the 4-column layout).
  2. In QuickBooks Online, go to Banking (called Bank transactions in newer menus).
  3. Choose Upload transactions. In some versions it sits under the Link account menu as Upload from file.
  4. Select the file, pick the QuickBooks account the transactions belong to, and continue.
  5. For a CSV, match the columns (Date, Description and Amount, or Credit and Debit), choose the transactions to import, and finish.

QuickBooks Online takes at most 1,000 lines and 350 KB per upload. For a longer statement the converter saves a .zip with one file per part: upload them one after another.

Xero

  1. Export the OFX file (Xero reads it directly), or the Xero CSV.
  2. In Xero, open the Accounting menu and select Bank accounts.
  3. Next to the right account, open its menu and select Import a Statement.
  4. Select the file and click Next. For a CSV, check which column is the date, amount and description, then import.
  5. Reconcile the new statement lines as usual.

Import each statement into the bank account it belongs to. Menu names can differ slightly between Xero regions and plans.

Quicken (QFX) and QIF

  1. Export the Quicken (.qfx) file. Leave the bank ID at 3000 unless you know your bank's own ID.
  2. Quicken for Windows: File › File Import › Web Connect (.QFX) File. Quicken for Mac: File › Import › Bank or Brokerage File.
  3. Choose the Quicken account the transactions belong to (the first time, link the file to an existing account or create one).
  4. If Quicken says it is “unable to verify the financial institution”, export again with the other bank ID and import that file.

Quicken imports a .qfx file only with an active subscription and an internet connection, because it checks the bank ID online, and Quicken does not support QFX files made by conversion tools: check the first import before you rely on it. QIF: current Quicken for Windows imports QIF only into cash, asset and liability accounts, so use the .qfx file there; GnuCash, Moneydance, Banktivity and many other apps read QIF for bank and card accounts.

Frequently asked questions

Is my bank statement uploaded to a server?

No. Statement2Ledger reads the PDF with JavaScript inside your browser tab, and your statement is never sent anywhere. The page's security policy blocks connections to any other server. After the page has loaded, the converter makes no network requests, with one exception: for a PDF with Chinese, Japanese or Korean text it may load a font table from newellabs.com, and that request carries nothing from your file. You can check this yourself: open your browser's developer tools on the Network tab while you convert, or disconnect from the internet after the page loads.

How accurate is the conversion?

It reads the text inside the PDF, so there is no OCR guesswork. After every conversion it checks the arithmetic: the opening balance plus all transactions must equal the closing balance, and every printed running balance must follow from the row above it. If something doesn't add up it says so, and when the statement prints running balances it shows which rows to check. If the statement doesn't print an opening or closing balance, it says so instead of calling the rows complete. Always compare the totals with your statement before you import.

Why is it called a beta?

Statement2Ledger works with most text-based bank PDFs, but bank layouts vary endlessly, and one it has never seen can still be read wrongly. That is why every conversion is checked against the balances printed on the statement, and the badge above the table tells you the result. Green means the opening balance plus the transactions equals the closing balance, and every printed running balance checks out. Amber means the rows add up but an opening or closing balance was not found or could not be confirmed, so missing rows at the start or end could go unnoticed; red means something doesn't add up; grey means no balances were found to check against. Amber, red or grey: compare the rows with your statement before you import, and fix them in the preview. A green badge can't catch a wrong date. If a statement doesn't convert well, email the bank's name (never the statement itself) to support@newellabs.com.

Can it convert scanned bank statements?

Not yet. A scanned statement is a picture of the page with no text inside it, and reading it needs OCR. If your PDF is a scan, download the statement again from your online banking: those PDFs contain real text.

Which banks does it work with?

Most banks and card issuers, as long as the PDF contains selectable text (you can highlight words in your PDF viewer). It understands common layouts: one amount column, separate money in and money out columns, running balances, CR and DR markers, sections such as deposits, checks paid and withdrawals, newest-first lists, credit card statements, day-first or month-first dates, and currencies with two or three decimals. It's a beta, so an unusual layout may still need fixes in the preview: check the badge after every conversion.

How much does it cost?

It's free. There is no sign-up and no account.

Do you store my statements or transactions?

No, nothing is stored. No server receives your file, and there is no account and no tracking. When you close or reload the tab, the converted transactions are gone, so export what you need first.

Which export format should I choose?

For QuickBooks Online, the QuickBooks (.qbo) file or the QuickBooks CSV. For Quicken, the Quicken (.qfx) file. For Xero, the OFX file or the Xero CSV. For Excel, Google Sheets or Numbers, the Excel or CSV file. OFX is a standard bank file format that many accounting and budgeting apps can import; QIF is an older format that GnuCash, Moneydance and similar apps still read.

Why does it ask whether dates are day-first or month-first?

A date like 03/04/2025 means 3 April in most countries and March 4 in the United States. When every date on a statement could be read either way, the converter asks you once, before you export, instead of guessing.