HomeSolutionsProcurementThree-Way Matching
Three-Way Matching · Powered by the Procurement & Finance Agent

Pay for what you ordered.
Received. At the price agreed.

Three-way matching is the control that prevents your enterprise from paying for goods that were never ordered, never delivered, or billed at the wrong price. Hubler automates it — retrieving POs from any source, reading delivery challans and GRNs from multiple channels, extracting invoice data via OCR and document intelligence, and releasing clean invoices to payment without manual intervention.

See three-way matching in action → Talk to a procurement specialist
AI semantic item matching — vendor terminology resolved automatically
2-way · 3-way · 4-way matching supported
Multi-PO and multi-GRN matching native
Connects to SAP · Oracle · Dynamics · NetSuite · Coupa · Ariba
Full audit trail on every invoice

Trusted by India's fastest-growing enterprises

Swiggy Lenskart Bata Country Delight Licious ShareChat Microland Fiberconnect Machani Group
The Problem

Manual invoice matching
is where AP time goes to die.

Most enterprises know three-way matching matters. Most enterprises also know their AP teams are doing it manually — comparing documents across ERP screens, email attachments, and spreadsheets, one invoice at a time.

The cost

Manual invoice processing is materially more expensive than automated processing. The gap compounds at enterprise invoice volumes — in processing time, in AP headcount, and in the duplicate payments and overpayments that manual reconciliation routinely misses.

The fraud exposure

Payment fraud remains a major enterprise risk. Three-way matching is one of the most effective controls against it — by validating every invoice against authorised purchase and receipt records before payment is released. Without it, a fake invoice for goods never ordered or never delivered can pass through AP without a single system-level check.

The GRN problem

When goods are received but the GRN is created late, created in a separate system Finance never sees, or never created at all, every invoice that follows becomes a manual exception. Finance becomes a reconciler. The root cause is almost always the same: goods receipt was never connected to the AP workflow.

"The goods receipt is the step that breaks the match. If the dock supervisor signs the packing slip and Finance never sees it, every invoice becomes a manual exception."

How Hubler Does It

Three documents.
One automated check.
Zero manual reconciliation.

Three-way matching is not an ERP feature. It is a process that needs three documents and a comparison engine. Hubler is that engine — sitting above your ERP, connecting procurement, receiving, and AP into one governed workflow. POs come from any source. GRNs and delivery challans come from any channel. Invoices arrive in any format. Hubler reads, extracts, resolves vendor terminology against your PO descriptions using AI semantic matching, matches at header and line-item level, and routes — automatically.

Hubler matches at header and line-item level — PO line to GRN line to invoice line — so quantity, price, tax, and delivery variances are caught at the line level before payment, not discovered as a reconciliation problem afterwards.

Document 1 · The commitment

Purchase Order

The PO is the reference document — the authorised commitment against which everything else is measured. Hubler supports both procurement models without requiring you to change how your enterprise operates.

PO generated inside Hubler

Purchase requests raised and approved in Hubler generate POs automatically — with contracted terms, correct tax codes, and vendor details pre-populated.

PO retrieved from your ERP or procurement platform

When a PO already exists in SAP S/4HANA, Oracle Fusion, Microsoft Dynamics, NetSuite, Coupa, SAP Ariba, Jaggaer, Ivalua, or another connected system, Hubler retrieves it automatically and uses it as the matching reference document. No duplicate PO creation required.

What Hubler captures

Item, quantity, unit price, total value, tax treatment, vendor, delivery date, cost centre, approval authority, source system reference.

Document 2 · The delivery

Goods Receipt / Delivery Confirmation

The goods receipt confirms what actually arrived — and it is the step most AP processes get wrong. Hubler connects to every channel through which proof of receipt can originate.

GRN Sources — every channel connected
·Hubler mobile receiving app — warehouse and store teams log receipts at point of delivery, item by item, with quantity confirmation, condition notes, and photo evidence
·ERP goods receipt transactions — GRNs already logged in SAP, Oracle, or Dynamics retrieved automatically via integration
·Warehouse management systems — WMS receipt confirmations ingested via API
·Delivery challans and packing slips — OCR extraction identifies PO reference, items, quantities, and delivery date
·Signed proof-of-delivery documents — uploaded or emailed PODs processed via document intelligence
·Advance Shipping Notices (ASN) — vendor-submitted ASNs matched to PO before physical delivery
·EDI messages — EDI 856, EDI 810, and equivalent formats ingested through configured integration patterns
·Email attachments — delivery documentation received by email extracted automatically
What Hubler captures

Items received, quantities confirmed, condition, delivery date, location, receiving channel, source document reference, photo evidence where configured.

Document 3 · The claim

Vendor Invoice

Vendor invoices arrive through many channels and in many formats. Hubler reads them all.

Invoice ingestion channels
·Hubler vendor portal — web and mobile, with real-time tax authority validation where applicable
·Email — invoices received as PDF, XML, or image attachments extracted automatically
·EDI — EDI 810 and equivalent invoice formats ingested through configured integration patterns
·Peppol — invoices exchanged via Peppol network ingested directly
·Tax authority networks — e-invoices validated through GSTN, ZATCA, SII, DIAN, SUNAT, and other connected authorities
·ERP integrations — invoices already in your ERP retrieved for matching
·OCR scanned PDFs — paper invoices scanned and extracted via document intelligence
·Mobile image uploads — field teams photograph invoices for immediate processing
What Hubler captures

Invoice number, line items, quantities, unit prices, total value, tax, payment terms, vendor details, submission channel, submission timestamp, extraction confidence score.

The Match

When all three documents agree within configured tolerance levels — at header and at every line item — the invoice moves automatically to payment scheduling. No manual review required.

When they don't agree, Hubler routes the discrepancy — with specific variance detail at line level — to the right person for resolution. Not to a general AP queue. To the person whose approval is required for that type of exception, by value, category, or business rule.

Full match

PO, GRN, and invoice agree on all key fields at header and line-item level within tolerance. Invoice moves to payment scheduling automatically.

Partial match

Quantities or prices are within configured tolerance bands. Hubler applies your policy — approve automatically, flag for review, or escalate based on variance percentage. You define the rules.

Exception

Material discrepancy detected at line level. Invoice quarantined. Exception routed with specific line-level variance detail to the right resolution owner. The rest of the payment run continues uninterrupted.

Document Intelligence

Hubler reads procurement documents.
Your team reviews exceptions.

Purchase orders, delivery challans, packing slips, proof-of-delivery documents, service entry sheets, goods receipts, invoices, and tax documents can be received through email, upload, portal, EDI, Peppol, or ERP integration. Hubler's document intelligence layer extracts key fields automatically — PO numbers, line items, quantities, unit prices, tax values, dates, vendor references, and delivery confirmations — validates document quality, matches cross-references, and prepares records for automated three-way matching.

Your team reviews exceptions. Hubler handles the document processing.

OCR extraction

Structured data extracted from PDFs, scanned documents, and image uploads — PO numbers, line items, quantities, prices, tax values, vendor details, and delivery references identified automatically regardless of document layout.

AI field validation

Extracted fields validated against expected values before matching begins. Low-confidence extractions flagged for human review before they enter the matching workflow — not after a payment error has occurred.

Cross-reference matching

PO numbers, vendor references, and delivery references identified across documents and matched to existing records automatically. Documents without valid references are quarantined and the originating party notified.

Duplicate intelligence

Duplicate invoice detection runs across multiple dimensions simultaneously — invoice number, vendor reference, PO number, total amount, tax value, invoice date, and OCR similarity matching. Catches both exact duplicates and near-duplicate resubmissions before payment is released.

AI Item Matching

Vendor says "Industrial Lubricant 5L."
Your PO says "Grease, Heavy-Duty, 5000ml."
Hubler knows they match.

High-volume AP teams spend hours every week resolving exceptions that aren't real exceptions — they're terminology mismatches between vendor item descriptions and internal PO language. A vendor calls it "SS Hex Bolt M8×25"; your PO says "Stainless Fastener 8mm." The quantity and price are right. The item is right. But the description doesn't match, so the system flags it and a human has to intervene. Hubler eliminates this category of false exception using AI semantic matching — resolving vendor terminology against your PO descriptions automatically before the exception is raised.

Semantic matching

AI compares the meaning of vendor item descriptions against PO line descriptions — not just the characters. Synonyms, abbreviations, unit variations, and industry terminology are resolved automatically.

SKU and part number resolution

Vendor part numbers and internal SKUs are cross-referenced automatically against your item master. Known equivalences are resolved without human intervention.

Specification extraction

Key specifications — dimensions, materials, grades, capacities, units of measure — are extracted from free-text descriptions on both sides and compared at attribute level, not string level.

Match confidence scoring

Every item match is assigned a confidence score. High-confidence matches proceed automatically. Lower-confidence matches are routed to AP with the match rationale displayed — one click to approve or reject.

AI item match — resolved automatically
Invoice line 3 "Industrial Lubricant 5L, ISO VG 220"
PO line 3 "Heavy-Duty Gear Oil, 5000ml, Grade 220"
Semantic match 97.4% confidence
Unit check 5L = 5000ml — RESOLVED
Grade check ISO VG 220 = Grade 220 — RESOLVED
AUTO-APPROVED — no exception raised
AI item match — caught mismatch
Invoice line 7 "Stainless Steel Fastener M8×25, Grade 304"
PO line 7 "Hex Bolt M8×25, Grade 316"
Semantic match 71.2% confidence
Spec mismatch Grade 304 ≠ Grade 316 — material grade differs
ROUTED TO AP — rationale displayed for review

The result: fewer false exceptions reaching AP queues, faster cycle times for clean invoices, and human attention reserved for item mismatches that are genuinely ambiguous or genuinely wrong — not for terminology translation between your procurement team's language and your vendors'.

Why this matters

In high-volume AP environments — thousands of invoice lines per day across hundreds of vendors — terminology mismatches can represent 15–30% of all exception volume. These are not payment errors. They are description differences between how your procurement team writes PO descriptions and how your vendors label their products. AI semantic matching eliminates this category of exception at source, before it reaches your AP queue.

Exception Handling

Exceptions happen.
The question is how fast
they get resolved.

In most enterprise AP processes, an invoice exception means the invoice stops moving. It sits in a queue. Someone chases it. Days pass. Vendors call. The AP team becomes a status update service.

Hubler routes exceptions differently. Every exception is categorised by type, assigned to the right resolution owner, given a resolution SLA, and tracked until it closes. The rest of the payment run continues. One exception does not hold up fifty clean invoices.

Exception type What triggers it How Hubler routes it
Price variance Invoice unit price differs from PO line by more than configured tolerance Routed to Procurement for vendor price confirmation
Quantity mismatch Invoice quantity exceeds GRN quantity at line level Routed to Receiving for GRN amendment or vendor credit note request
Missing GRN Invoice arrives before goods receipt or delivery challan is logged Invoice held pending receipt confirmation. Receiving team notified
Duplicate invoice Invoice matches a previously processed invoice across detection dimensions Quarantined automatically. Finance notified with duplicate reference detail
PO reference missing Invoice submitted without a valid PO number Vendor notified via portal to resubmit with correct PO reference
Tax discrepancy Tax treatment on invoice does not match configured rules for vendor and jurisdiction Routed to Finance for tax review before payment
Multi-PO allocation error Invoice spans multiple POs and line allocation cannot be resolved automatically Routed to Procurement with full PO and GRN context for manual allocation
Service entry missing Service invoice received without approved service entry sheet or milestone confirmation Invoice held pending service confirmation. Requestor notified
AI item match — low confidence Item descriptions are similar but below the configured match confidence threshold Routed to AP with match rationale displayed for human confirmation — one click to approve or reject
Tolerance override Exception value below configured override threshold Approved automatically per policy. Logged in audit trail
Audit Trail

Every invoice. Every match.
Every decision. Traceable.

Three-way matching is a financial control. Financial controls only work if they are auditable. Hubler logs every event in the invoice matching lifecycle automatically, without manual documentation effort.

Invoice #INV-2024-08847 — Vendor: Apex Packaging Supplies
09:14:01 Invoice received via vendor portal
09:14:02 OCR extraction complete — 6 line items identified, confidence 99.2%
09:14:02 PO reference extracted — PO#4471 identified
09:14:03 PO match check — PO#4471 retrieved from SAP — PASS
09:14:03 GRN match check — GRN#8821 — line-level quantities match — PASS
09:14:04 Price check — all 6 lines within tolerance — PASS
09:14:04 Tax check — GST 18% applied — PASS
09:14:04 Duplicate check — multiple dimensions — no match found — PASS
09:14:05 Three-way match — COMPLETE — invoice cleared for payment
09:14:05 Payment scheduled — 30-day terms — due 18 Aug 2024
09:22:17 Payment advice dispatched to vendor portal
09:22:18 Journal entry posted to SAP — GL account 400200
How It Connects

Three-way matching runs between
your procurement and your ERP.
Not instead of either.

Hubler does not replace your ERP or your procurement platform. It runs the matching process between every system that touches a transaction — reading PO data from any procurement source, matching against delivery challans and GRNs from any receiving channel, and writing confirmed payment records back to your ERP automatically.

AI Recommendation / Demand Plan / ERP PO / Procurement Platform PO
Hubler PO Retrieval or Generation
Vendor Delivers
Hubler GRN (mobile / ERP / WMS / challan / POD / ASN / EDI)
Vendor Invoice (portal / email / EDI / Peppol / OCR / ERP)
Hubler Matching Engine
PO · GRN · Invoice — Header & Line Level
2-way · 3-way · 4-way · Duplicate Check
Clean → Payment Scheduling → Vendor Portal Advice
Exception → Resolution Workflow → SLA Tracking
ERP — Payment Confirmation + Journal Entry Posted
SAP · Oracle · Dynamics · NetSuite · Tally · QuickBooks
Planning System — Procurement Outcomes Fed Back
ERP & Finance
SAP S/4HANAOracle FusionMicrosoft Dynamics 365NetSuiteTallyQuickBooksXeroZoho Books
Procurement Platforms
SAP AribaCoupaJaggaerIvaluaAny REST API
Planning
AnaplanSAP IBPWorkday Adaptive
Vendor Channels
Hubler Vendor PortalEmailEDIPeppolASNMobile
Compliance
GST / TDS for IndiaPeppolE-invoicing networksCountry-specific tax workflows
Why Hubler

You don't need another AP automation tool.
You need matching that's connected to the full loop.

The GRN problem is solved at source

Most three-way matching tools fail at the goods receipt step — because GRNs are created late, incompletely, or in a separate system Finance never sees. Hubler connects to every channel through which proof of receipt can originate: Hubler mobile, ERP transactions, WMS systems, delivery challans, signed PODs, ASNs, and EDI messages. By the time an invoice arrives, the receipt confirmation already exists. The match runs at line level in seconds.

Multi-PO and multi-GRN matching is native

Real enterprise procurement is not one invoice, one PO. A single vendor invoice often spans multiple purchase orders, multiple delivery locations, or multiple goods receipts. Hubler's matching engine handles consolidated billing natively — allocating invoice lines across the appropriate POs and GRNs at line level before evaluating variances. One invoice against seven POs is handled the same way as one invoice against one.

Service procurement is covered

Not all enterprise spend involves physical goods. Contractors, agencies, consultants, maintenance providers, and managed service vendors generate invoices against service entry sheets, milestone approvals, work confirmations, and timesheets — not GRNs. Hubler matches service invoices against the appropriate confirmation document with the same governance, tolerance rules, and audit trail as goods matching.

Tolerance rules are yours to define

Not every price variance is a problem. Hubler lets you define tolerance rules by vendor, item category, purchase value, cost centre, and any combination of these. Invoices within tolerance are approved automatically per your policy. Human attention is reserved for exceptions that actually require it.

The audit trail is built in, not built after

Hubler logs every matching event automatically — invoice receipt, document extraction, PO retrieval, GRN check, line-level price validation, tax check, duplicate check, exception routing, resolution, payment scheduling, and ERP posting confirmation. When your auditor asks for the invoice matching record, Hubler produces it instantly. No reconstruction required.

Questions

What Finance and Procurement teams ask
before automating three-way matching.

Does Hubler support 2-way, 3-way, and 4-way matching?

Yes. Hubler supports all three matching configurations:

  • 2-way matching — PO to invoice check. Used for service invoices, low-value purchases, and recurring vendor payments where a goods receipt is not required.
  • 3-way matching — PO, goods receipt, and invoice validation. The standard for goods procurement across most enterprise AP processes.
  • 4-way matching — PO, goods receipt, invoice, and a fourth confirmation document such as an inspection record, quality approval, service confirmation, or compliance certificate. Used where additional sign-off is required before payment can be released.

The matching configuration is set per vendor, item category, or purchase type — so different parts of your procurement can run different matching rules within the same platform.

What happens when vendor item descriptions don't match our PO terminology?

This is one of the most common sources of false exceptions in high-volume AP — and it's the problem Hubler's AI semantic matching is designed to eliminate.

When a vendor invoice line says "Industrial Lubricant 5L, ISO VG 220" and your PO line says "Heavy-Duty Gear Oil, 5000ml, Grade 220," a conventional matching system treats these as a mismatch and raises an exception. Your AP team then has to manually confirm what any procurement person already knows: it's the same item.

Hubler runs a semantic matching pass before raising any item description exception. The AI compares the meaning of the vendor's description against your PO line — resolving synonyms, abbreviations, unit variations (5L vs 5000ml), and equivalent grade or specification references. It also cross-references vendor part numbers and internal SKUs against your item master where available, and extracts key specifications (dimensions, materials, grades) from both descriptions for attribute-level comparison.

When the semantic match confidence is high — typically above a configured threshold — the match is approved automatically and no exception is raised. When confidence is below the threshold, the invoice line is routed to AP with the full match rationale displayed: what the vendor said, what the PO says, how similar they are, and which attributes differ. The AP reviewer sees exactly what the AI found and approves or rejects with one click.

The goal is to eliminate the entire category of false exceptions caused by terminology differences — so your AP team's attention is reserved for item mismatches that are genuinely ambiguous or genuinely wrong.

What exactly does three-way matching check?
Three-way matching verifies that the purchase order, goods receipt, and vendor invoice agree at header and line-item level on quantity, unit price, total value, tax treatment, and item description. It also checks that the invoice references a valid PO, that the PO was properly approved, that the goods or services were confirmed before payment is released, and that the tax treatment is correct for the vendor, jurisdiction, and item category. Hubler also runs a multi-dimension duplicate invoice check as part of every matching sequence.
Can Hubler match one invoice against multiple purchase orders?

Yes. Hubler supports all enterprise matching configurations:

  • One PO → One Invoice (standard)
  • One PO → Multiple Invoices (progress billing, partial deliveries)
  • Multiple POs → One Invoice (consolidated supplier billing)
  • Multiple GRNs → One Invoice (aggregated delivery billing)

The matching engine allocates invoice lines across the appropriate purchase orders and goods receipts at line level before evaluating variances and tolerances.

Does Hubler support service invoices where no physical GRN exists?
Yes. For service procurement, Hubler matches invoices against approved service entry sheets, milestone completion records, work confirmations, or timesheet approvals instead of physical goods receipts. The requestor or service owner confirms delivery before the invoice is released for payment. The same governance rules, tolerance configurations, and audit trail apply. Contractor invoices, agency retainers, maintenance contracts, and project milestone billing are all handled through the service matching workflow.
How does Hubler handle partial deliveries?
Partial deliveries are handled natively. When a vendor delivers part of a PO, the GRN or delivery challan logs the actual quantity received at line level. When the vendor invoices for the partial delivery, Hubler matches the invoice against the partial receipt — not the full PO value. The outstanding balance remains open on the PO awaiting the remaining delivery. You pay for what arrived, not what was ordered.
What happens when an invoice arrives before the GRN is logged?
The invoice is held pending the goods receipt or delivery confirmation. The receiving team is notified that an invoice is awaiting a GRN. Once the receipt is logged and matches the invoice at line level, the hold is released automatically. If the goods never arrive, the invoice remains held and the exception is escalated for resolution. The vendor can see their invoice status via the vendor portal throughout.
Can we retrieve existing POs from our ERP or procurement platform?
Yes. When a PO already exists in SAP S/4HANA, Oracle Fusion, Microsoft Dynamics, NetSuite, Coupa, SAP Ariba, Jaggaer, Ivalua, or another connected system, Hubler retrieves it automatically and uses it as the matching reference document. No duplicate PO creation required. Hubler supports both models — POs generated inside Hubler and POs retrieved from external systems — within the same matching workflow.
How does Hubler detect duplicate invoices?
Duplicate detection runs across multiple dimensions for every invoice processed — invoice number, vendor reference, PO number, total amount, tax value, and invoice date. Hubler also runs OCR similarity matching, comparing extracted document content against previously processed invoices from the same vendor to identify near-duplicate resubmissions where the invoice number has been changed but the underlying transaction is the same. Both exact duplicates and near-duplicate submissions are quarantined automatically before entering the payment workflow.
How does this connect to our ERP?
Hubler has standard bidirectional integration patterns for SAP S/4HANA, Oracle Fusion, Microsoft Dynamics 365, NetSuite, Tally, QuickBooks, Xero, and Zoho Books. PO data is read from your ERP or procurement platform. Confirmed payment records — including invoice reference, matched amounts, tax treatment, and payment confirmation — are written back to your ERP in your chart of accounts format. Your ERP remains the system of record. Hubler runs the matching process between procurement and the ERP, not instead of it.
Does Hubler support GST and TDS requirements for Indian enterprises?
Yes. GST and TDS workflows are supported for Indian enterprises within Hubler's procurement and AP workflows. Purchase orders include the appropriate GST treatment for each vendor, item, and entity. Invoices are validated against the expected GST treatment before matching completes. TDS deductions are calculated and applied at payment, with vendor TDS certificates generated automatically. Vendor eKYC — including GST number, PAN, and bank account verification — is part of the vendor onboarding workflow.
Can we configure tolerance levels for price variances?
Yes, with full granularity. Tolerance rules are configurable by vendor, item category, purchase value, cost centre, and any combination of these — at header and line level. You can set percentage tolerances, absolute value tolerances, or both. Invoices within tolerance are approved automatically per your policy and logged in the audit trail. Invoices outside tolerance are routed to the right resolution owner. The configuration is done without writing code.
How long does it take to deploy?
Three-way matching is part of Hubler's Procurement Execution module. The typical first workflow — including vendor management, PO generation or retrieval, GRN logging, three-way matching, and ERP integration — is live in 4 weeks. Week 1 is discovery and configuration. Week 2 is build and integration. Week 3 is training. Week 4 is go-live. Tolerance rules, approval hierarchies, exception routing, and ERP integration are all configured to your process before go-live. Scope is agreed before configuration begins.
Resources

Case studies, guides, and templates.

Explore how finance and procurement teams eliminated manual matching — and where to start in your own environment.

Start the Match

See three-way matching
run on your invoice volume.

Your vendor base, your ERP, your procurement platform, your approval structure, your tolerance rules. We will show you exactly how Hubler's matching engine runs in your environment — with multi-PO support, line-level matching, document intelligence, exception handling, and ERP integration built in — in 30 minutes.

Book a Demo → Talk to a procurement specialist
2-way · 3-way · 4-way matching supported
Connects to SAP · Oracle · Dynamics · Coupa · Ariba
GST / TDS workflows supported for India · Peppol supported
First workflow live in as little as 4 weeks
Trusted by 100+ customers