A €1,240.50 transfer lands in the bank account on a Tuesday. The narrative reads "TRF PEREIRA & SONS INV 2026/418". Somewhere in a folder of forty invoices, one of them is for €1,240.50 from Pereira & Sons, with the reference INV 2026/418. To you, those two facts are obviously the same event. The question this article answers is how software arrives at the same conclusion — and, just as importantly, when it should refuse to and hand the decision back to you.
This matters because matching is where reconciliation quietly eats your afternoon. A single wrong digit in an amount, or one invoice nobody forwarded, turns a five-minute reconcile into an hour of squinting at a statement. So before we talk about any product, let's demystify the engine itself. The logic below is the same whether you reconcile by hand, in a spreadsheet, or one day let it run automatically.
The signals a matching engine reads
A bank line and an invoice are described in completely different vocabularies. The invoice knows its number, supplier, issue date, due date and total. The bank line knows a date, an amount, a counterparty and a free-text narrative typed by whoever made the transfer. Matching is the work of finding agreement across those two vocabularies. A good engine doesn't rely on any single clue — it weighs several at once.
Exact amount. The strongest signal by far. If a payment of €1,240.50 has exactly one open invoice for €1,240.50, you're most of the way there. Amount is strong precisely because it's hard to fake by coincidence — two unrelated invoices landing on the same cent in the same window is rare.
Date proximity. Payments cluster near the invoice they settle. An invoice due on the 30th and paid on the 2nd of the next month is a natural pair; the same amount paid four months earlier probably is not. The engine doesn't demand an exact date — it treats closeness in time as supporting evidence and lets a small gap count in favour rather than against.
The reference in the narrative. This is where the bank narrative earns its keep. "INV 2026/418", an invoice number, or the supplier's name buried in "TRF PEREIRA & SONS" are all confirmations hiding in free text. Narratives are messy — abbreviated, truncated, sometimes just an account number — so the engine looks for the invoice number or the supplier name as a fragment rather than expecting a clean field.
Currency-aware comparison. €1,240.50 and 1.240,50 USD are not the same amount, even though the digits line up. A payment in dollars against an invoice in euros should never be treated as an exact match on the number alone. The engine compares amounts within a currency, so a coincidental digit overlap across two currencies never gets mistaken for a real one.
None of these is decisive alone. A round €1,000 with no reference and a loose date is weak. The same €1,000 landing two days after the due date, from the right counterparty, with the invoice number in the narrative, is overwhelming. Matching is the act of stacking these signals until the picture is either clearly one thing or clearly ambiguous.
Why some matches confirm themselves and others wait for you
Here is the distinction that makes automation trustworthy: the engine separates confident, unambiguous matches from everything else.
When a payment has exactly one open invoice that agrees on amount, sits in a sensible date window, and ideally carries the reference in its narrative, there is genuinely nothing to decide. Confirming it by hand adds no judgement — it's pure clerical motion. That match can be auto-confirmed, and you never have to look at it.
The moment that picture blurs, the engine should stop and ask. Two open invoices for the same amount? An amount that's close but not equal? A payment that looks like an invoice but carries no reference and no obvious counterparty? These don't get a guess. They go to a review queue — proposed, ranked by likelihood, with the reasoning visible — so you spend your attention only on the genuinely ambiguous cases. The goal isn't to automate your judgement away. It's to stop spending judgement on the ninety lines that never needed any, so you have it for the ten that do. The full reconciliation guide for accountants walks through how this queue fits into a monthly close.
Process invoices in minutes, not hours
Faturiza works with the Google Drive & Sheets you already use.
Partial payments, instalments and overpayments
Real money rarely arrives in the tidy amount an invoice expects. A client pays €600 against a €1,500 invoice this week and the rest next month. A supplier is settled in three instalments. A payment arrives a few cents off because of a transfer fee.
A matching engine that only understands "amount equals total" breaks on all of these. A better one understands that an invoice can be partially settled: it links the €600 to the €1,500 invoice, marks €900 still outstanding, and keeps the invoice open for the next payment instead of declaring it paid or pretending the €600 belongs nowhere. The invoice closes only when the payments against it add up. This is also what lets the engine surface the opposite problem honestly — an invoice with no payment against it at all, sitting past its due date, is an overdue invoice the engine can flag rather than let it quietly disappear into a reconciled pile.
Two cases that trip up naive matching
Two situations cause more bad matches than anything else, and both are about what not to match.
Duplicate invoices. The same invoice often exists twice — forwarded by the client and also pulled from a tax-authority feed, or simply uploaded under two filenames. If both copies are open, a single €1,240.50 payment could plausibly attach to either, and a naive engine either picks wrong or flags a false ambiguity. The fix is to recognise the duplicate as a duplicate — same supplier, same number, same total — and match the payment once, against the single real obligation, rather than treating two records of one invoice as two invoices.
Payments that will never have an invoice. A large share of bank activity isn't an invoice at all. Salaries, social security, bank charges, loan repayments, the accountant's own fee — these are real outflows with no document to match, and an engine that keeps proposing matches for them is just generating noise every month. The answer is ignore rules: tell the engine, once, that any payment whose narrative contains "PAYROLL" or "SALARY", or whose counterparty account is the payroll account, is never an invoice match. Matched by description or by account, those lines drop out of the queue permanently. You set the rule once; it holds every month after.
Why the conceptual model matters more than any button
Notice that none of this is about screens or clicks. It's a way of thinking: a payment and an invoice are the same event when enough independent signals agree; confidence decides whether a human needs to look; and a serious engine is defined as much by what it refuses to match as by what it confirms. Understand that model and you can reconcile well in any tool — and you can tell, quickly, whether a tool's automation is actually doing the work or just relabelling it.
This is exactly the engine Faturiza runs. Bank Reconciliation is available now — automatic matching by amount, date and reference, auto-confirmation of the unambiguous lines, a review queue for the rest, partial-payment handling, duplicate detection and account-and-description ignore rules — built on the same principle as the rest of Faturiza: your invoices stay in your Google Drive and your data in your Sheets, owned by you. Today you reconcile by importing your bank statement; automatic bank connection via Open Banking is coming next. If reconciliation is where your month disappears, see how Faturiza reconciles, read the complete reconciliation guide for accountants, and see how the rest of the workflow is built for accountants who do the work of the chaos so their clients don't have to.
Ready to try it?
Stop reading. Start automating.
Forward your next invoice to Faturiza and see the data in your Sheets in under a minute. Free plan to start.
Manuel Monteiro
Founder, Faturiza · LinkedIn
Ready to automate your invoices?
Try Faturiza for free and save hours every week.
Join 500+ businesses saving hours every week