Bank reconciliation: Reconcile against rows that already add up.
Reconciliation goes wrong upstream, when the transactions typed or imported from a statement do not match the statement. Bankflow reads each statement, checks every running balance against the rows, and reconciles the printed opening and closing figures before a single line reaches your ledger.
Up to 50 free page credits · No card · Cancel anytime
- Running balances checked
- Source page beside every row
- Exceptions, not everything

The ledger is out, and nobody knows which row.
A reconciliation that does not tie is rarely a bank error. It is a transaction keyed twice, a debit entered as a credit, or a page of the statement that never made it into the import. Found at month-end, each one means reading the statement and the ledger side by side, line by line, until the difference turns up. The cheaper point to catch it is the moment the statement is read: if the rows extracted from a statement do not walk from its opening balance to its closing balance, the statement is not finished, and it should not be posted.
How it works
Where each difference gets caught
- 01
Every row is checked against the one before
As a statement is read, each row's balance is tested against the previous balance plus or minus the transaction. Debit and credit columns swapped by the layout are caught and corrected when the balances prove it.

Six months in the library with their totals, so a missing month is visible at a glance. - 02
The statement has to tie end to end
The opening and closing balances printed on the statement are compared with what the extracted rows add up to. A statement that does not tie is not quietly accepted.
- 03
Only the lines that need you are flagged
A statement that does not reconcile carries an issue badge, and small breaks consistent with an unstated fee are marked as such rather than as a failure, so the review goes straight to the rows in question.

The rows add up to the statement's closing balance, and each row is highlighted on the page it came from. - 04
Check a row against the page it came from
Open the statement workspace and the parsed rows sit beside the source PDF, with the row under review boxed in both. Correct it there, against the page it was read from.

The source column names the statement each row was read from. - 05
Post a file you know is whole
Export to QuickBooks as QBO, to Xero or Sage as OFX, or to CSV and Excel, knowing the transactions in it already walk from the opening balance to the closing one.
Controls that run before the ledger does
Running balance validation
Each row is tested against the running balance, so an extraction error shows up at the row it happened, not as a total that is off.
Opening and closing tie-out
The statement's own printed balances are the target. Extracted rows either reach them or the statement is flagged.
Debit and credit correction
Layouts that confuse which column is which are corrected when the balance arithmetic shows the swap, not guessed at from the header.
Soft warnings for small breaks
A small gap that looks like an unstated fee is labelled as a possible fee, so it is looked at rather than mistaken for a failed parse.
Source beside the row
Every extracted transaction can be checked against the region of the page it was read from, which is what makes a reconciliation defensible.
Duplicates stopped at the door
The same PDF uploaded twice is recognised by its file hash and not processed again, so a statement cannot be counted twice by accident.
FAQ
Common questions
Can Bankflow reconcile the bank to a client's books?
Yes, in Workpapers. Import the client's cash book or ledger as CSV or Excel, confirm the matches Bankflow suggests, and read a reconciliation statement that adjusts the bank and the books to the same figure. Nothing is matched until a person confirms it, and the adjusting entries download as a journal the ledger imports.
What happens when a statement does not balance?
It is flagged, and the rows responsible are marked for review. You can compare them against the source page and correct them there. Nothing is presented as reconciled that is not.
What about statements with no running balance column?
Some layouts print a balance only per day or only at the end. Those are validated against the balances the statement does print, such as net daily totals for daily-ending-balance layouts, and against the opening and closing figures.
Can it catch a missing page?
A missing page shows up as a statement whose rows do not reach its closing balance, which is exactly the check that runs on every statement.
Which formats can I export the reconciled transactions to?
Excel, CSV, JSON, OFX, QBO, QFX, QIF, IIF, and layouts for Xero, Sage, MYOB, and NetSuite, scoped to whichever account, date range, or filter you are working in.
How can I test it on a statement that gave me trouble?
Start with up to 50 free page credits, no card required, and upload the statement that would not reconcile last month.
Guides
Your First Month-End Close for a New Client, Step by Step
Seven steps from asking for the month's files to sending the client their report, and what to set up in month one so month two is faster.
Cutoff Tests, Sampling and Sign-Off for Bank Statements
The review tests a year-end needs, run over a client's bank statements: cutoff, transfers and exceptions, a sample that can be drawn again, and a sign-off that takes two people.
How to Get Bank Statements From Clients Without Chasing Them
Why collecting statements takes so long, what a request a client can act on looks like, and how to send one link they upload through, with nothing read until you have looked.
Keep exploring
For Accounting Firms
Every client's month closed the same way, from collecting documents to sign-off.
Tax Preparation
A year of statements, tagged and totalled for the return.
Cash Flow Forecasting
Runway, monthly P&L, and what-if scenarios from real history.
Accounts Payable
Invoices and receipts sent to your ledger as bills, and supplier statements reconciled.
Historical Data Import
Backfill the years your bank feed never reached.
Start reconciling from a statement that ties.
Upload a statement, watch every balance get checked, and export only once it adds up.