Why CSV rather than Excel
Excel is for reading and working on the numbers. CSV is for moving them into something else: Google Sheets, a budgeting app, an accounting package, a database or a script. Almost every import screen accepts CSV, which is why the CSV here is deliberately plain — one table, one header row, no merged cells, no summary rows mixed in with transactions.
The balance checks and the statement summary are left out of the CSV on purpose. An importer that finds a "Closing balance" row in the middle of the data will happily turn it into a transaction. They are in the Excel workbook instead.
What is in the file
- Date — year-month-day when the statement makes the year clear, which every importer understands and which sorts correctly.
- Description — as printed, with wrapped lines joined.
- Money out and Money in — two columns, for software that wants them separately.
- Amount — one signed column, money in positive and money out negative, for software that wants a single amount.
- Balance — the running balance where the statement prints one.
- Page and Check — where the row came from, and why it was flagged, if it was.
The file is UTF-8 with a byte-order mark, so accented merchant names survive opening in Excel. Any description starting with =, + or @ is prefixed so a spreadsheet cannot treat it as a formula.
Preparing a CSV for an import screen
The full transaction layout is a review table with extra columns, including source pages and check notes. Keep it as your reference, then select an accounting preset for the destination’s import fields. Do not import the Statement summary or Balance checks sheets as transactions.
For QuickBooks Online, select the three-column or four-column preset. The first writes Date, Description and signed Amount. The second follows Intuit’s published example: outgoing payments in Credit, incoming deposits in Debit. Keep the dates consistent and choose the matching format in the importer. A workbook formatted to show a date differently has not necessarily changed the CSV text: reopen the saved copy and inspect it before uploading.
QuickBooks Online, Xero and YNAB presets are available in the CSV layout selector. One CSV purchase covers all layouts for this result. Each accounting layout excludes review notes and summaries, uses its own date convention, and keeps separate statements in separate files. Multiple accounts or QuickBooks splits download as a ZIP. Do not assume the full transaction table will import unchanged everywhere. Prefer the bank's own transaction download if the period is still available; converting a PDF adds a reading step that the original bank data does not need.
Troubleshooting shifted columns and wrong signs
If a merchant name contains a comma, it belongs inside one quoted CSV field. Open the download through your spreadsheet's import command and select comma as the delimiter, rather than replacing commas throughout the file. If everything appears in one column, the spreadsheet probably chose a different delimiter. If a purchase looks positive, check that you mapped the signed Amount column rather than Balance or Money out.
When Sonomir says "No transactions were found", the model did not produce any usable transaction rows. Confirm that the uploaded pages contain the transaction list, rather than just a cover page or summary. A passing balance check cannot prove the dates and descriptions are correct, or rule out omitted transactions whose amounts cancel out. Count rows against the source before moving money records into another app.
For the complete workflow, see bank statement PDF to Excel, or choose PDF to OFX for an importer that prefers transaction IDs.
Price and privacy for an occasional conversion
A three-page statement uses one paid page if today's two free pages remain: $0.25 at the $5-pack rate, with CSV included. With no free pages left, three pages cost $0.75 at that rate. The smallest purchase is $3 for 50 credits; at its rate those processing costs are $0.30 and $0.90. Credits left over stay in your wallet. A statement processed entirely with free pages costs 2 credits for CSV, once per result.
Sonomir reads files in the cloud. ProperSoft offers desktop processing, and its unlimited subscription can suit frequent conversion better. No accounting-app import test has been recorded for this CSV yet.
What this tool does
Upload a bank statement — the PDF your bank emailed, a scan, or phone photos of the pages — and every transaction comes back as a row: date, description, money out, money in, a signed amount and the running balance. Transactions from every page land in one table, so a twelve-page statement is one list, not twelve fragments to stitch together.
Then comes the part that matters: the tool checks its own work. It adds up what it read and compares the result with the balances printed on the statement. When they agree to the cent, the extracted amounts are consistent with those balances. Offsetting errors can still cancel out, so a passing check is a useful review aid, not proof of accuracy. When they do not, it tells you by how much and flags the rows where the running balance breaks, so you check three lines instead of three hundred.
How the balance check works
Two independent checks run on every statement.
- Opening + money in − money out = closing. The opening and closing balances are read from the statement's summary or its first and last lines. If the transactions read in between do not produce the closing balance exactly, something is missing or wrong, and the difference is shown.
- Row by row. Where the statement prints a running balance, each one must equal the previous balance plus that line's money in minus its money out. A break points straight at the problem: the flagged row, or the one just above it.
The arithmetic is done in whole cents, never in floating point, so a check cannot pass by rounding. Statements listed newest-first are recognised, and so are card and loan statements, where the balance is money owed and runs the other way.
A passing check shows that the extracted amounts agree with the balances that were read. It cannot rule out offsetting errors, omitted pairs of transactions, or incorrectly read balances. Check dates and descriptions, compare the row count with the source, and review important amounts before importing.
What you get in the spreadsheet
The Excel workbook has three sheets:
- Transactions — one row per transaction, in the order printed, with the page it came from and a Check column that says why a row was flagged.
- Balance checks — each check, whether it passed, and the numbers behind it.
- Statement summary — bank, the last four digits of the account, period, currency, opening and closing balances, totals, and whether it reconciles.
Amounts are stored as numbers, not text, so SUM works straight away. Dates are written as year-month-day when the statement makes the year clear, which sorts correctly everywhere. Choose the full transaction CSV to keep the review columns, or a QuickBooks Online, Xero or YNAB CSV layout for its documented import fields. All layouts share one CSV purchase for the same result. Accounting layouts leave out balances and check notes; each statement has a separate file, and multiple files download as a ZIP.
Upload several PDFs at once — twelve monthly statements, say — and they come back in one workbook with a Statement column, plus a summary row for each.
Text PDFs, scans and photos
A PDF downloaded from online banking often already contains its text. That text is read with its printed column positions before a model turns it into records. This avoids recognising letters and digits from pixels, but the model can still misinterpret a column or a wrapped description.
A scanned statement, or photos of printed pages, is read from the image. That works well on a flat, straight, well-lit page. It struggles with faint thermal-style printing, pages shot at an angle, and folds across the amount columns. The balance check is your safety net here: if a digit was misread, the running balance breaks at that row.
Photos uploaded together are treated as the pages of one statement, in the order you chose them. Each PDF is its own statement.
What it supports, and what it does not
It is built for current, checking and savings account statements, and reads card and loan statements too. It is not built for investment or brokerage statements, where a row is a holding rather than a movement of cash. If your bank locks its statements with a password, enter it when the page asks: the PDF is unlocked in your browser, the password never leaves your device, and only the unlocked copy is uploaded. Without the password the tool cannot open it and will not try to get around it.
It has not been tested against a named list of banks, and this page will not pretend otherwise. Statement layouts vary enormously; what the tool offers instead is a result you can verify. If the checks pass, the extracted numbers agree with the balances read from the source. If they fail on your bank's layout, the job tells you so plainly.
What has actually been tested (6 October 2026)
We compared the model's extracted rows with labelled, fictional statements: separate debit and credit columns, signed amounts, German decimal commas, Indian number grouping, wrapped descriptions, a dense multi-page list, a credit card, scans and phone photos. These are synthetic examples, not a certification for any named bank.
The eight text-PDF cases and two scanned-PDF cases matched every labelled date, description, amount and direction in this run. A photographed statement lost a digit from two transaction descriptions even though its balance checks passed. Review the source rows, especially long reference numbers in photos. Results can vary between runs; this test does not establish an accuracy percentage for your files, mixed-currency support or successful imports into accounting software.
Choose a format for your next step
Compare QBO, QFX, OFX and QIF before importing. The Xero CSV page explains its preset, while password-protected statements covers opening a PDF with your own password. For spreadsheet review, use Google Sheets. Each route uses the same converter; no accounting-app import pass is claimed. Still need the statement itself? How to extract a bank statement covers downloading it from online banking, and getting a year of statements ready for your accountant covers tax-season batches.
Privacy
Statements are sensitive, so here is exactly what happens. The uploaded file is sent to the reading model and deleted from storage when the job ends, whether it succeeded or not. Only the last four digits of an account number are kept. The transactions you see are stored with your job so the download still works if you come back later; use Delete this result to remove it sooner. Nothing you upload is ever published. To weigh this against other converters, see is it safe to use a bank statement converter?
How the free tier works
The first 2 pages a day are free, with the balance checks, and you can copy every row you see. That is enough to see whether the tool reads your bank's layout correctly before you pay anything.
Past that, pages are $0.25 each (5 credits, at the $5-pack rate), and a statement with paid pages gets every download free: Excel, CSV, QBO, QFX, QIF and OFX. With the two free pages still available, a six-page statement costs 20 credits for the other four pages, workbook included. If you have no credits, the smallest purchase is $3 for 50 credits, before any applicable tax; the statement uses $1.20 of it and 30 credits remain. A statement that fits inside the free pages downloads as Excel or CSV free; QBO, QFX, QIF and OFX are 2 credits, once per job. Credits never expire, there is no subscription, and a job that fails is not charged.
Example result
Page 1 of a current-account statement (PDF from online banking) Opening balance 1,250.00 02 Mar CARD PAYMENT CITY GROCER 42.35 1,207.65 03 Mar SALARY ACME LTD 2,100.00 3,307.65 05 Mar STANDING ORDER RENT 950.00 2,357.65 Closing balance 2,357.65
Date Description Money out Money in Amount Balance 2026-03-02 CARD PAYMENT CITY GROCER 42.35 -42.35 1207.65 2026-03-03 SALARY ACME LTD 2100.00 2100.00 3307.65 2026-03-05 STANDING ORDER RENT 950.00 -950.00 2357.65 Reconciles to the cent: 1,250.00 + 2,100.00 in − 992.35 out = 2,357.65. Running balance: all 3 printed balances follow from the row before.
Cost: free — one page, inside the daily 2. The Excel and CSV downloads are free too.
How this compares
Where another tool is the better choice, it says so.
DocuClipper
Better thereBuilt for accounting firms: bulk conversion, reconciliation workflows and connections into accounting software. If you convert statements every day, a dedicated platform is the better fit.
Better hereNo subscription. Try your own statement free, see the checked result before paying, and pay per page when you need it — suited to a few statements a month rather than a practice's whole workload.
Your bank's own CSV or OFX download
Better thereFree and exact, straight from the bank's system. If online banking offers a download for the period you need, use that — nothing beats the source.
Better hereWorks when all you have is the PDF: old statements beyond the download window, closed accounts, and statements a client or lender sent you.
Excel's Get Data from PDF
Better thereBuilt into Microsoft 365 Excel on Windows, free if you already have it, and fine for a clean PDF with one tidy table per page.
Better hereIt returns each page's tables separately and does nothing with scans or photos. This joins every page into one list, reads scans, and checks the balances.
Your questions, answered.
Will the CSV open correctly in Excel and Google Sheets?
Yes. It is comma-separated UTF-8 with a byte-order mark, so Excel reads accents correctly, and Google Sheets opens it with File → Import. Amounts are plain numbers without currency symbols or thousands separators, so they sum straight away.
Which amount column should I map when importing?
If the import screen asks for one amount, map Amount — it is already signed, money in positive and money out negative. If it asks for debits and credits separately, map Money out and Money in.
Does this CSV import into accounting software unchanged?
Choose the matching QuickBooks Online, Xero or YNAB layout for an accounting import. The full transaction CSV remains a review table with additional columns. Confirm field mapping and dates in your app; real trial-account acceptance is still untested here.
Can I copy the transactions without buying a CSV?
Yes. A statement inside the 2 free pages downloads as CSV, Excel or plain text free. Longer statements pay for the extra pages, and every download is then included.
Is it free?
The first 2 pages a day are free, with no account, including the balance checks, and you can copy every row. Longer statements are $0.25 a page (5 credits, at the $5-pack rate), and their downloads are then free. A statement inside the free pages downloads as Excel or CSV free; QBO, QFX, QIF or OFX is $0.10 (2 credits), once per job.
Which banks does it work with?
It reads the layout rather than matching a list of banks, so it is not limited to particular ones — but it has not been tested against a named list either. Try the first two pages free: inspect the rows and compare them with your statement, even when the balance checks pass.
What does it mean if the balance check fails?
The transactions read do not add up to the balances on the statement. The difference is shown, and rows where the running balance breaks are flagged; the problem is almost always on that row or the one above it. Common causes are a faint or folded scan, or a statement layout the tool does not read well yet.
Can it convert a credit card statement?
Yes. On a card statement the balance is what you owe, so purchases increase it and payments reduce it. The check recognises that and reconciles it the right way round.
Does it work with scanned or photographed statements?
Yes, read from the image. Flat, straight, well-lit pages work best. Balance checks show arithmetic consistency, not extraction accuracy. Compare dates, descriptions, amounts and row counts against the source even when every check passes.
Can I import the result into QuickBooks, Xero or another accounting app?
QBO and QFX files are offered for QuickBooks and Quicken workflows, but real imports have not yet been verified here. Quicken officially does not support third-party QFX conversions. Choose a QuickBooks Online, Xero or YNAB layout in the CSV selector, then verify the column mapping, dates and signs in the import preview. The full CSV is a separate review table. There is no direct connection to accounting software.
Is my statement stored?
The uploaded file is deleted when the job ends. The transactions are kept with the job so you can download them later, with only the last four digits of the account number. Choose 24 hours or 30 days before processing, or use Delete this result sooner.
Can you convert a batch for me?
Yes. For a large batch, or statements that fail the check, email hello@sonomir.com with how many statements and pages there are. It is $1 a page with a $20 minimum, quoted before anything is done, and every statement comes back either reconciled to the cent or with the difference explained. Details: https://sonomir.com/done-for-you.