Automated bank reconciliation does three things: pulls bank transactions into your system by itself, matches them against invoices and entries, and surfaces only the lines it could not match with confidence. Transactions arrive either as bank files or (increasingly) through open banking (PSD2 account information services), meaning nobody uploads statements anymore. The matching logic is tiered: an exact payment reference gives a certain match; without a reference the system matches on amount, date and counterparty patterns; and when confidence is lacking it does not guess – it flags the line as an exception. That last property is what separates a tool from a toy.

What does the system match on its own?

The routine majority. A customer payment with a correct reference finds its invoice in seconds. Recurring payments (rent, licences, telecom) match by pattern even without references, because the same amount from the same counterparty on the same date is recognisable. For card payments and bank fees the system learns from your past practice where those entries belong. The result: daily reconciliation becomes sample-based review – the same shift 73% of accounting firms have made in adopting automation.

What stays human: honestly

Four classics. Bundled payments: a customer pays three invoices with one transfer; the system can propose the split, but the confirmation is yours. Partial payments: whether the remainder is a discount, a receivable or an error is a business decision. Unreferenced, unexplained receipts: the machine shows candidates, a person decides. And currency differences: how exchange variances are booked is a rule you set. If a solution claims these cases disappear too, ask “how”: the honest answer contains the word “confirm”.

How to start?

Connect the bank through open banking, let the system learn from a few weeks of history, then look at the exceptions list: that is your real manual workload going forward. Reconciliation composes best with AI invoice coding: a matched transaction that is also correctly coded closes the loop. The full picture is in our automation roadmap.