Procure-to-Pay: Automated Three-Way Match
Purchase order, goods receipt and supplier invoice reconciled automatically — so only genuine exceptions reach a human.
Client
Multi-Entity Distribution & Trading Group
Industry
Procurement · Supply Chain Finance
Duration
6 months
Year
2025
Background
Every supplier invoice was checked by hand. A clerk opened the invoice, found the purchase order, found the goods receipt, compared three documents across two systems, and either posted it or emailed the buyer. Volume made this slow; multiple legal entities with different approval rules made it inconsistent. Suppliers had no way to see whether an invoice had been received, so payment status arrived as a phone call to the buying team.
The Challenge
Automating a three-way match is easy to describe and unforgiving to implement, because the interesting cases are all edge cases. Partial deliveries, over-receipts within tolerance, price changes between order and invoice, freight and tax lines that exist on one document and not the others, and invoices that arrive before the goods. A matching engine that handles only the clean path moves the work rather than removing it. The rules also differed per entity, so tolerances and approval routing had to be configurable rather than compiled in.
Our Solution
SageWare built the procure-to-pay flow around a matching engine with configurable tolerance rules per entity and per category. Purchase order, goods receipt and supplier invoice are reconciled on quantity, price and extended value, with defined tolerance bands that let minor variances post automatically and route genuine discrepancies into a typed exception queue — price variance, quantity variance, missing receipt, duplicate invoice — rather than one undifferentiated pile. Partial and over-receipt handling, freight and tax line treatment, and invoices arriving ahead of goods were each modelled explicitly. EDI document exchange carries purchase orders out and supplier invoices in without re-keying, and a supplier-facing view exposes submission and approval status so status chasing stops arriving as phone calls.
Key Deliverables
- Configurable tolerance bands per legal entity and purchasing category
- Exceptions typed by cause and routed to the role that can resolve them
- Partial delivery, over-receipt and invoice-before-goods modelled explicitly
- EDI purchase orders and supplier invoices flowing without manual re-keying
Results & Impact
How We Did It
01
Rule Discovery Per Entity
Documented approval routing, tolerance appetite and category rules for each legal entity, since the differences between them were the reason manual checking had persisted.
02
Matching Engine Build
Implemented quantity, price and extended-value matching with configurable tolerance bands, including partial delivery, over-receipt, and invoice-before-goods handling.
03
Exception Design
Typed exceptions by cause and routed each to the role that can actually resolve it, so a price variance reaches the buyer and a duplicate reaches accounts payable.
04
Supplier Integration
Connected EDI document exchange for outbound orders and inbound invoices, and exposed submission and approval status to suppliers to remove status-chasing from the buying team.
Next Case Study
The Financial Core
Enterprise Finance · ERP Platform Engineering
