An Indian manufacturer's three-way match between PO, GRN and vendor invoice fails on 60-75% of incoming invoices because of price tolerance breaches, partial GRN drift, GST inclusive/exclusive confusion, and vendor-master errors — pushing the AP team into a perpetual exception backlog and delaying MSME payments past the Section 43B(h) 45-day window.
Apply per-item-category tolerance bands (price 0-5%, quantity 0-3%, GST 0%) at PO-GRN-invoice junction; classify failures into six variance codes (UNDER_INVOICED, OVER_INVOICED, PARTIAL_QTY, GST_MISMATCH, VENDOR_PAN_MISMATCH, RATE_VARIANCE) with routing rules per code; layer Section 393(1)(k) year-to-date threshold tracking per vendor PAN; flag MSME vendors for 45-day clock from GRN date.
Item-category-wise tolerance band table, vendor master with PAN/GSTIN/MSME flag, Section 393 code mapping (1002 contractor, 1012 purchase above ₹50L), GST-inclusion default per PO type, GRN-to-invoice matching window in days, and exception ageing buckets (0-30, 31-60, 60-90, 90+ days).
A daily AP close where matched invoices route to payment, exceptions route to the queue by variance code, MSME 43B(h) deadlines surface before they breach, Section 393(1)(k) threshold crossings trigger TDS deduction on the next invoice automatically, and the monthly exception rate trends toward sub-15%.
A finance head at a steel fabrication unit in Faridabad runs the April AP report: 1,847 vendor invoices booked, 1,289 entered the exception queue at some point, exception rate 69.8%. The cost is not just delayed vendor payments — it is also missed MSME 43B(h) deadlines, deferred ITC claims that drift past the September following the financial year, and Section 393(1)(k) TDS not deducted on three vendors where the year-to-date purchase crossed ₹50 lakh six weeks ago. Three-way matching India done right is the single highest-leverage AP control at an Indian factory; done wrong, it is the source of every downstream tax and treasury problem.
What three-way matching is
Three-way matching is the procurement-to-payment control that compares three documents at the point a vendor invoice is processed:
- The purchase order — the commercial agreement, capturing agreed item, quantity, rate, GST treatment, payment terms and delivery schedule
- The goods receipt note — the physical receipt at the factory gate, after quality check, capturing actual quantity received, rejected, accepted, and on hold
- The vendor invoice — the legal demand for payment, capturing invoiced item, quantity, rate, GST charged, and any other line items (packing, freight, scrap)
A clean three-way match means PO quantity is approximately equal to GRN-accepted quantity is approximately equal to invoiced quantity (within tolerance), PO rate is approximately equal to invoice rate (within tolerance), the vendor PAN and GSTIN match the master, and the GST treatment (inclusive or exclusive) is consistent across PO and invoice. Where any leg fails the comparison, the invoice routes to an exception queue rather than to the payment run.
Why Indian manufacturing exception rates run 60-75%
Four failure modes dominate every Indian factory’s exception queue.
1. Price tolerance breaches without a documented band
A vendor invoices steel at ₹128.50 per kg against a PO of ₹125.00 per kg — a 2.8% variance. Is that within tolerance or outside? Most spreadsheet-driven AP teams do not have a documented tolerance band per item category. Either every variance becomes an exception (overloading the queue), or the AP clerk approves with discretion (creating audit findings). The fix is a per-item-category band: typically 0-3% on raw materials with stable prices, 0-5% on commodity-linked items (steel, copper, polymer where the index can move between PO and invoice), and 0% on engineered components.
2. Partial delivery and GRN drift
A PO for 1,000 kg of bearing-grade steel is dispatched in two lots of 500 kg each, but the vendor invoices the full 1,000 kg before the second lot’s quality clearance is complete. The first GRN shows 500 kg accepted; the second is in quality hold for 7 days. Matching the invoice now against GRN shows a 500 kg shortfall — a PARTIAL_QTY exception. Matching after QC closes will clear it. The structural fix is a documented GRN-to-invoice matching window (commonly 7-15 days) and a hold-then-release rule, not a hard rejection.
3. GST inclusion variance
The PO is drawn with rate ₹125/kg “plus applicable taxes”. The invoice is raised at ₹125/kg inclusive of 18% GST — meaning the goods value is ₹105.93/kg and the GST is ₹19.07/kg. Same rupee total, completely different ITC claim and Section 17(5) exposure. This is a definitional dispute that has to be resolved at PO terms drafting, not at invoice booking. Until it is, every such invoice will throw a GST_MISMATCH exception.
4. Vendor master mismatches
The invoice carries PAN AABCS1234L against a vendor master entry of AABCS1234M (one-character typo, made during vendor onboarding 18 months ago). Or the GSTIN on the invoice is the vendor’s new state registration, but the PO was raised against the old state’s GSTIN. Either creates a VENDOR_PAN_MISMATCH or vendor-GSTIN-mismatch exception. The fix is a vendor master cleanup project before three-way matching can be reliable.
The tolerance band framework
A workable tolerance framework for an Indian manufacturer is built around three dimensions:
| Dimension | Typical band | Notes |
|---|---|---|
| Price tolerance | 0% to 5% | 2-3% for raw materials, 0% for engineered/precision items, 5% for commodity-indexed items |
| Quantity tolerance | 0% to 3% | Higher band only for bulk commodities; engineered items at 0% |
| GST tolerance | 0% | GST variance is always a hard exception — affects ITC directly |
| Vendor PAN/GSTIN | Exact match | No tolerance; mismatch is a hard stop |
| Section 393(1)(k) threshold | YTD purchase tracker | Trigger TDS deduction at ₹50 lakh aggregate crossing per PAN |
The tolerance band must be encoded per item category in the matching engine, not as a global setting. A 5% band on a steel-scrap purchase is reasonable; the same 5% band on a precision-machined bearing is dangerous.
The variance taxonomy
Every failed three-way match should be classified into exactly one variance code, with a documented resolution path for each. The standard six-code taxonomy is:
| Variance code | Trigger | Resolution path |
|---|---|---|
| UNDER_INVOICED | Invoice value lower than PO value within tolerance band | Auto-accept; flag for vendor follow-up |
| OVER_INVOICED | Invoice value higher than PO outside tolerance band | Purchase head approval or vendor credit note |
| PARTIAL_QTY | Invoiced quantity exceeds GRN-accepted quantity | Hold for matching window; release on next GRN |
| GST_MISMATCH | GST inclusion/exclusion or rate differs PO vs invoice | PO terms clarification or vendor revision |
| VENDOR_PAN_MISMATCH | PAN/GSTIN on invoice differs from vendor master | Vendor master correction before payment |
| RATE_VARIANCE | Unit rate on invoice outside PO tolerance band | Purchase head approval with documented reason |
The discipline is that every exception has exactly one code and exactly one owner, with an SLA per code (e.g. RATE_VARIANCE owned by purchase, 5-day SLA; VENDOR_PAN_MISMATCH owned by vendor onboarding, 3-day SLA). Without that, exceptions age into the 60+ day bucket and become irrecoverable. The detailed operational discipline for working the exception queue is covered in AP exception management for Indian manufacturing.
Worked example: a ₹50L monthly procurement run
Take a mid-size auto component manufacturer with monthly procurement of ₹50 lakh across 240 invoices from 65 vendors. A typical pre-implementation profile:
- Invoices processed: 240
- Clean three-way match (no exception): 73 (30%)
- Entered exception queue: 167 (70%)
- Of those exceptions: 58 RATE_VARIANCE, 41 PARTIAL_QTY, 32 GST_MISMATCH, 18 VENDOR_PAN_MISMATCH, 12 OVER_INVOICED, 6 UNDER_INVOICED
- Average exception age at month-end: 23 days
- MSME 43B(h) breaches in the month: 9 invoices
- Section 393(1)(k) deduction misses: 2 vendors (each had crossed ₹50L YTD silently)
Post-implementation profile, after 90 days, with item-category-wise tolerance bands, automated GRN-to-invoice matching window, vendor master cleanup completed, and Section 393(1)(k) YTD tracker live:
- Invoices processed: 240
- Clean three-way match: 207 (86%)
- Entered exception queue: 33 (14%)
- Of those: predominantly RATE_VARIANCE on commodity-indexed items in genuine purchase head discussion, plus quality-hold PARTIAL_QTY waiting on QC sign-off
- Average exception age at month-end: 6 days
- MSME 43B(h) breaches: 0
- Section 393(1)(k) misses: 0
The match-rate improvement curve (51% → 88%) is consistent with published customer outcomes across the broader reconciliation software India surface, and the AP exception reduction from 70% to 14% is the manufacturing-specific instance of that curve when three-way matching software India is deployed with the right tolerance configuration.
India-specific compliance layer
Three statutory anchors must be live inside the matching engine, not bolted on later.
Section 393(1)(k), Income Tax Act 2025 (replaces 194Q) — TDS at 0.1% on purchases above ₹50 lakh aggregate per resident vendor PAN per financial year, where buyer turnover exceeds ₹10 crore in the preceding year. Payment code 1012. Requires a year-to-date purchase tracker per vendor PAN to flag the threshold crossing and start deducting from the next invoice.
Section 17(5), CGST Act (unchanged by the new Income Tax Act) — blocks ITC on a defined list. The matching engine must flag invoices for blocked-credit categories so the AP team does not auto-claim ITC.
Section 43B(h), Income Tax Act — payments to MSME vendors must clear within 45 days where a written agreement exists, else 15 days. Vendor master must carry an MSME flag (Udyam registration verified); the matching engine must surface MSME invoices on a separate priority ageing track. The current text and notifications for GST law are on the GST portal.
For the linked GRN-side mechanics — partial deliveries, quality holds, GRN reversal — see goods receipt note (GRN) reconciliation in India. For the broader umbrella view of the five reconciliation rails at an Indian factory, see manufacturing reconciliation in India. For the SAP-specific implementation pattern of MM-FI three-way matching, see SAP MM-FI three-way match reconciliation India and the broader SAP FI reconciliation India guide.
What is your AP exception rate actually costing you?
The Three-Way Match Exception Cost Calculator runs in your browser. Five inputs — monthly procurement volume, invoice count, exception rate, analyst time per exception, blended cost — return annual rupee cost, analyst hours consumed, working capital lock, and recoverable target at a 15% exception rate.
Run the Exception Cost Calculator →