3-way match Agent
The invoice bills 82 MT. The gate received 78. Both facts are true, and they live in different systems, which is why the difference is usually found in a stock reconciliation months later.
Nothing is paid for that wasn't received.PO, GRN and invoice have to agree on quantity, rate and item before the entry stands. All three, on every line, every time.
What it checks
On every invoice, not a sample.
- Invoiced quantity against goods actually received, line by line
- Item and specification, not just the total — a substituted grade at the contracted rate is still a variance
- Partial deliveries billed as complete
- Tolerances you define, applied consistently rather than at each approver's discretion
What it reads, what it writes
Reads
Purchase orders · Goods receipt notes from the plant or warehouse system · Invoice lines
Writes
A short-receipt finding with the quantity gap priced · The GRN reference the invoice was tested against · A hold until the gap is explained or the invoice is revised
Where it sits in the team
Agents do not work alone. Each one hands its result to the next, so a finding raised here shows up as context downstream rather than being re-derived.
Hands to it
When it isn't sure
Where the GRN has not arrived yet, the invoice is not failed — it is parked as awaiting receipt, with the age of the wait visible. A missing GRN and a short receipt are different problems and are never merged into one.
Any check that runs on every transaction will meet cases it cannot settle. What makes a control trustworthy is not that it never hesitates — it is that hesitation produces a named question for a person, rather than a silent pass or a silent block.
See what this one finds in your last 90 days.
One export. No connector. We come back within a working day.
$Check your savings→