FlowParse
Tool August 2026 15 min read

Unusual payment flagging

Most payment fraud doesn't look dramatic in the moment — it looks like an invoice that's slightly off from the pattern around it. FlowParse reads every invoice and bank statement, builds a baseline of what normal looks like for each supplier, and flags what breaks it, before the payment clears rather than after.

FlowParse
flowparse.io
flowparse.iosound off is fine
0:00 / 0:00

Fraud rarely looks dramatic

Ask anyone who has actually caught a fraudulent payment how they found it, and the answer is rarely a dramatic discovery. It's usually smaller than that — an invoice from a familiar supplier for an amount that felt slightly off, a payment that landed a few days earlier than usual, an account number that didn't quite match the one on file. None of it screamed fraud. It just didn't fit the pattern.

This page describes how that kind of deviation gets caught systematically instead of by accident — every invoice and statement read, a baseline of normal built per supplier from real history, and a flag raised the moment something breaks it. The result doesn't decide that a payment is fraudulent; it puts the deviation in front of a person early enough that a decision is still possible, before the payment has already cleared and the money is gone.

Why unusual payments are hard to catch by eye

A single invoice, looked at on its own, almost always looks plausible. The supplier name is real, the format matches what that supplier usually sends, the amount is a normal-looking number. What makes it unusual only becomes visible next to the invoices that came before it — and holding a supplier's last twelve months of invoices in your head while approving this month's batch isn't something most finance teams have time to do.

That gap — between what a single document shows and what a pattern across many documents would reveal — is exactly where payment fraud tends to survive. Not because anyone was careless, but because the comparison that would catch it requires holding far more information at once than a person reviewing invoices under a deadline realistically can.

FlowParse
flowparse.io

That's not a criticism of anyone doing the reviewing — it's a structural limit of doing this comparison by memory. The fix isn't asking people to remember more; it's making the comparison itself something the process does automatically, every time, regardless of how busy the month has been.

What counts as unusual

SignalWhat it means
Amount deviationMaterially larger, smaller, or oddly precise compared to this supplier's history
Timing deviationArrives well outside the supplier's normal invoicing cadence
Bank detail changePayment account differs from the one used in prior transactions
Threshold proximitySits just under an approval limit, invoice after invoice
New payee, high amountA first-time supplier paid a large sum before any track record exists

Five signals, none of them proof of fraud on its own — a genuine price increase produces an amount deviation too. What matters is that each one gets surfaced instead of silently absorbed into an approval that happens on autopilot.

What gets read from every document

FieldNotes
Supplier name and identifierUsed to group every document into the correct baseline
AmountThe exact figure, per line item where itemised
Invoice or transaction dateFor establishing and checking cadence
Bank account detailsWhere present on the invoice or statement
Reference or invoice numberFor traceability back to the source document

Five fields, read from every document — not a summary written weeks later from memory, but what the document itself states, kept linked to its source for whenever a flag needs a second look.

Building a baseline per supplier

A single global rule — flag anything over a fixed amount, say — misses far more than it catches, because normal looks completely different from one supplier to the next. A logistics supplier might invoice a wildly different amount every month; a software subscription might invoice the exact same figure for years. Treating both the same way either buries real anomalies in noise or drowns the team in irrelevant flags.

Instead, every supplier accumulates its own history as invoices are read — typical amount range, typical timing, the bank details normally used. A new invoice is compared against that supplier's own pattern, not a generic threshold applied uniformly across every relationship the business has.

FlowParse
flowparse.io

A quarter of invoices, one flagged

A mid-sized services business, one quarter, 210 supplier invoices across 34 suppliers.

ResultCount
Matched supplier's normal pattern206
Flagged — amount deviation3
Flagged — bank detail change1

Three amount flags turned out to be a genuine annual price increase across three suppliers, confirmed in minutes. The bank detail change was a real one — a supplier that had switched banks and sent a courtesy notice that had gone unread in a shared inbox. The invoice was legitimate; had it not been, the flag would have caught it before payment.

FlowParse
flowparse.io

How it works

1

Upload invoices and statements

PDF, scan or photo — one at a time or a full month's batch.

2

Each document is read

Supplier, amount, date, bank details and reference, per document.

3

Compared against the baseline

Every new document checked against that supplier's established pattern.

4

Export

Excel, CSV or JSON, with flagged items and their reasons kept as separate fields.

FlowParse
flowparse.io

From one invoice to a full ledger

Checking one invoice against a supplier's recent history is a quick manual task. Doing it for every invoice a business receives, every month, across every supplier, is a different problem — not because any one comparison is hard, but because the number of comparisons required grows with every new supplier and every new invoice.

At that volume, the value isn't only speed — it's that every supplier gets the same level of scrutiny, instead of the handful of large, familiar suppliers getting careful attention while a smaller, less frequent supplier's invoice slips through with barely a glance.

FlowParse
flowparse.io

Cross-checking against the bank statement

An invoice states what was billed. The bank statement states what actually moved. Comparing the two catches a specific and dangerous pattern: an invoice that matches everything on paper but settles to an account that doesn't match the supplier's known details — a classic sign of a compromised or impersonated supplier.

Because FlowParse reads both invoices and bank statements, a payment can be checked not just against the invoice that requested it, but against the account it actually settled to — catching a mismatch that reviewing the invoice alone would never reveal.

FlowParse
flowparse.io

Living with false positives

A system that never flags anything wrong is also, almost by definition, a system that never flags anything real. Some flags will turn out to be entirely legitimate — a genuine price increase, a supplier moving to a faster invoicing schedule, an approved one-off large order. That's expected, not a flaw.

What matters is how quickly a false positive can be dismissed. Every flag carries the specific reason and the comparison data behind it, so confirming “yes, this is a known price increase” takes seconds, not a full re-investigation — the cost of a false positive stays low, while the cost of a missed real one stays high.

FlowParse
flowparse.io

Who this is for

Finance teams

A second pair of eyes on every invoice, without adding a manual review step to every approval.

Accounts payable

Deviations flagged before payment runs, not discovered afterward during a reconciliation.

Controllers and finance leads

A documented baseline and flag history to point to when a payment is questioned.

Bookkeepers and accountants

The same consistent scrutiny applied across every client's supplier base.

Each of these groups reaches for the same underlying thing: a comparison against real history that's already been done, rather than one that has to be reconstructed from memory whenever a question about a specific payment comes up.

This isn't duplicate-payment detection

It's worth being precise about what this page covers. Catching the same invoice paid twice is a related but separate problem, with its own failure modes — see duplicate payments and how they survive every control you have for that specific case, and the reconciliation engine for how invoices get matched to bank statements generally.

Unusual payment flagging is about a single invoice or transaction that breaks a supplier's established pattern — a genuinely new, one-off deviation — rather than the same document appearing twice. The two problems overlap in places, but the signal each one looks for is different, and conflating them tends to miss both.

FlowParse
flowparse.io

What happens after something is flagged

A flag is a starting point, not a conclusion. The typical next step is straightforward: someone with context on the supplier relationship — accounts payable, the budget owner, or a controller — looks at the flag alongside the original document and the comparison data, and decides whether it's explainable or needs a call to the supplier on a known, verified number rather than any contact details on the invoice itself.

That last point matters more than it might seem. A common pattern in supplier impersonation fraud is an invoice that also updates the contact phone number — calling “to confirm” using that new number just confirms the fraud. A flagged payment is worth verifying through a channel the business already trusted before the invoice arrived, not one the invoice itself supplied.

FlowParse
flowparse.io

Whatever the outcome, the flag deserves a documented resolution, not just a quiet dismissal. A short note — what was checked, who checked it, what was confirmed — turns a one-off review into something the next person can actually learn from, rather than a decision that lives only in one reviewer's memory until they forget it.

A history that gets sharper over time

A baseline built from one month of invoices is useful but thin. The same baseline built from two or three years of real history is sharper — it distinguishes a supplier that genuinely varies month to month from one that's remarkably stable, and it absorbs known seasonal patterns instead of flagging them as anomalies every single year.

That improvement isn't something that has to be configured — it's a natural effect of reading every invoice the same consistent way from the start, so each supplier's pattern keeps accumulating rather than resetting every time someone tries to reconstruct it from memory or a spreadsheet nobody kept fully up to date.

FlowParse
flowparse.io

Tuning sensitivity to your business

No single sensitivity setting is right for every business. A business with tight, predictable supplier pricing can run with a narrower tolerance, catching smaller deviations, without drowning in false positives. A business with naturally variable supplier costs — commodity-linked pricing, freight surcharges that shift monthly — needs a wider tolerance, or every routine fluctuation would generate a flag nobody has time to review properly.

Getting this setting right matters more than it might seem. Too narrow, and the team starts ignoring flags because most of them are noise, which defeats the entire purpose. Too wide, and a real deviation slips through the threshold unflagged. The right calibration usually emerges after the first month or two of real use, once a team has a feel for how many flags is a reasonable number to review consistently.

A useful starting point is to set sensitivity slightly tighter than feels comfortable, then loosen it based on actual experience — false positives are annoying but cheap to dismiss with the comparison data attached, while a sensitivity set too loose from the start risks missing exactly the kind of deviation the whole system exists to catch.

FlowParse
flowparse.io

What this doesn't do

Doesn't confirm fraud

It flags a deviation from an established pattern. Confirming whether it's actually fraudulent remains a human judgment call.

Doesn't block payments

It reads and flags. Stopping or releasing a payment stays inside your existing approval workflow.

Doesn't replace verification calls

A flagged bank-detail change still deserves a call through a previously trusted channel before payment.

Doesn't work well with zero history

A brand-new supplier has no baseline yet — flagging accuracy improves as real invoices accumulate.

This boundary is deliberate. A tool that silently decided a payment was fraudulent and blocked it would be making a business decision no one asked it to make — a flagged, explainable deviation is far more useful than a system that's either always right or completely trusted, neither of which describes any fraud detection honestly.

Privacy

Uploads go over TLS, encrypted end to end.

Processing runs on EU-hosted infrastructure.

Original documents are deleted immediately after extraction.

Invoices are never used to train AI models.

For a business handling supplier payment data, that isn't a footnote — the details are on the security page.

Frequently asked questions

See a real supplier's baseline

Upload a few months of real invoices from one supplier — no signup — and see how the baseline and flags behave.

Keep reading