Three-Way Matching Software for Indian Manufacturing
Indian manufacturing AP teams routinely see 60-75% of incoming vendor invoices fall into exception queues. The cause is structural: GST sits on the invoice but not the PO, partial deliveries fragment GRN against PO, contractor TDS under Section 393(1)(a) and threshold TDS under Section 393(1)(k) need to be applied at source, and vendor PAN/GSTIN drift across multi-registration suppliers. TransactIG's three-way matching engine handles all four — comparing PO, GRN, and vendor invoice line by line with configurable tolerance bands, India-aware GST treatment, and a variance taxonomy designed for the manufacturing reconciliation workflow.
Why Three-Way Matching Breaks in Indian Manufacturing
The multi-tax-code problem
Most Indian manufacturers raise POs at a pre-GST base value: ₹100,000 for 500 units of a forged component at ₹200 each. The vendor's tax invoice arrives at ₹118,000 — base value plus 18% GST split across CGST and SGST (or IGST for inter-state supply). A naive line-amount comparison treats every taxable purchase as a value mismatch. Worse, the GSTIN on the invoice must reconcile back to GSTR-2B before input tax credit can be claimed under Section 17(5) of the CGST Act, which means the AP control needs to verify three things simultaneously: PO match, GRN match, and GSTR-2B presence.
Layer on TDS at source. Under Section 393(1)(a) of the Income Tax Act (payment code 1002), contractor and sub-contractor payments attract TDS at 1% (individual/HUF) or 2% (other). Section 393(1)(k) (payment code 1012) requires TDS at 0.1% on the purchase of goods above the threshold of ₹50 lakh per vendor per year. Works contracts governed by Section 143 of the CGST Act add another layer where principal-to-job-worker material movement must be documented separately from the invoice match.
The partial-delivery problem
Manufacturing supply rarely arrives in a single shipment matching the PO exactly. A 5,000-unit PO for forgings to an auto-component plant typically fulfils across three to five GRNs over two to six weeks, with rejected lots returned via debit notes and replenished against the same PO. Quality holds at incoming inspection further fragment the GRN trail — a GRN may be booked at 4,800 units accepted out of 5,000 received, with 200 units pending QC clearance for several days. The vendor's invoice may arrive against any of these GRN states.
The reconciliation challenge is that one PO line links to multiple GRN lines, which in turn link to one or many invoice lines — a three-way many-to-many relationship that breaks the simple PO=GRN=Invoice matching logic baked into most ERPs. Without an exception management layer that tracks PO ageing, residual quantity, GRN-to-invoice mapping, and return-debit reversals, AP teams resort to spreadsheets and manual telephone calls to vendors — the well-documented source of the 60-75% exception rate in Indian manufacturing AP exception management.
What TransactIG Three-Way Matching Does
TransactIG ingests PO, GRN, and vendor invoice data from your ERP, applies configurable tolerance bands, classifies each exception with a variance code, and produces an audit-ready evidence file — moving match rates from the 51% typical of manual AP processes to 88% through India-aware automation.
PO ingestion from any ERP
Purchase order headers and lines are pulled from SAP MM (ME21N output), Oracle Fusion Procurement, Tally Prime, Dynamics 365, Sage, Odoo, Zoho Books, or Busy via BAPI, IDoc, API, or daily file drop. The PO master is the anchor for matching — every GRN and every invoice traces back to a PO line and its open residual quantity.
GRN matching with partial-delivery support
One PO line to many GRNs; one GRN to many invoices. TransactIG handles the many-to-many mapping, tracks open residual PO quantity after each GRN, applies QC hold and rejection states, and links return debit notes back to the originating GRN.
Vendor invoice classification
Every invoice line is classified as GST-inclusive or GST-exclusive on ingestion. Taxable value is compared against the PO line; CGST, SGST, IGST, and CESS are reconciled as separate columns. The vendor GSTIN is cross-referenced against GSTR-2B for the period to validate input tax credit eligibility under Section 17(5).
Configurable tolerance band framework
Price, quantity, GST, vendor PAN, and rate tolerances are configured per material category, per vendor tier, and per plant. Critical and batch-controlled materials get tight bands (0% quantity); commodity items get broader bands (±2% price). Tolerance rules are versioned with effective dates for audit.
TDS at source — Section 393(1)(a) and (k)
Contractor and works-contract invoices are tagged for TDS under Section 393(1)(a) with payment code 1002. Goods purchases crossing the ₹50 lakh annual threshold per vendor are tagged under Section 393(1)(k) with payment code 1012. The deduction is computed before payment release, eliminating the post-facto recovery problem.
Audit-ready evidence file
Every matched line and every exception carries a fingerprint trail: PO reference, GRN reference, invoice reference, tolerance rule applied, variance code, maker-checker decision, and timestamp. The evidence file maps directly to internal audit, statutory audit (CARO 2020), tax audit (3CD), and ICFR control testing requirements.
Variance Taxonomy for Indian AP Exceptions
Every exception in the queue carries one of seven variance codes. The taxonomy is the basis for routing, ageing, and resolution action — and it is the structure that makes maker-checker workflows reliable.
| Variance Code | Typical Cause | Suggested Action |
|---|---|---|
| UNDER_INVOICED | Invoice value is below PO line value net of agreed tolerance — typically a partial delivery billed at full PO quantity or a rate undercharge | Confirm GRN closure status; release for payment at invoiced value with a residual PO line open for the balance |
| OVER_INVOICED | Invoice value exceeds PO line value beyond tolerance — common when vendor applies an unapproved rate revision or bills for non-contracted freight | Hold for buyer review; either raise a debit note or seek a vendor credit note before release |
| PARTIAL_QTY | Invoiced quantity is less than GRN quantity, or split across multiple invoices for a single GRN — normal in partial-shipment supply | Match invoice quantity against the corresponding GRN line; keep PO line open against the residual undelivered quantity |
| GST_MISMATCH | GST rate, GSTIN, or place of supply on the invoice does not match the vendor master or GSTR-2B for the period | Hold payment until vendor uploads invoice in GSTR-1; verify Section 17(5) ITC eligibility before release |
| RATE_VARIANCE | Invoice unit rate deviates from the contracted rate file or the latest approved rate revision | Reconcile against the rate amendment register; either accept under tolerance or escalate to procurement for rate ratification |
| VENDOR_PAN_MISMATCH | PAN or legal name on the invoice does not match the vendor master record linked to the PO — often from a multi-registration vendor | Verify the new GSTIN-PAN pair against the vendor master; either add the registration to the vendor master or hold for vendor clarification |
| GRN_NOT_FOUND | Invoice received before stores has booked the GRN, or against a PO line that has no GRN booked yet | Park the invoice; auto-rematch on the next ingestion cycle once the GRN is posted by stores |
How TransactIG Three-Way Matching Works
Ingest PO, GRN, and invoice from ERP
Connectors to SAP MM-FI, Oracle Fusion, Tally Prime, Dynamics 365, Sage, Odoo, Zoho Books, and Busy pull purchase orders, goods receipt notes, and vendor tax invoices on a daily schedule. Vendor master, material master, GSTIN file, and rate contract file are loaded as reference data. Historical PO-GRN-invoice tuples are used to tune tolerance bands during implementation.
Match with configurable tolerance bands
The matching engine compares PO, GRN, and invoice on five dimensions — price, quantity, GST, vendor PAN/GSTIN, rate — with bands configured per material category and vendor tier. Many-to-many GRN-to-invoice relationships are handled natively. GSTR-2B cross-reference is applied for ITC eligibility under Section 17(5). TDS rules under Section 393(1)(a) and (k) tag the invoice for at-source deduction.
Exception queue with variance codes, ageing, maker-checker
Unmatched lines route to a structured exception queue tagged by variance code, with ageing buckets at 30, 60, and 90+ days. Maker-checker workflow enforces separation between AP analyst (maker) and AP manager (checker) for any release outside tolerance. The full evidence trail is exported to internal audit, statutory audit, and ICFR review files.
Industry Use Cases for Three-Way Matching
Tolerance band profiles, variance frequency, and audit obligations vary across manufacturing sub-sectors. TransactIG ships with industry presets that can be adapted to plant-specific conditions during implementation.
Project-mode capital goods POs
Long-cycle POs with stage payments, milestone billing, and price-escalation clauses linked to commodity indices. The match must handle milestone advance, against-shipment billing, and price-variation invoices against the same PO. Sub-contracted machining attracts Section 393(1)(a) TDS at source.
JIT supply and partial GRN
Daily JIT call-off against a quarterly blanket PO. Each PO line splits across 60+ GRNs in a quarter; invoices arrive weekly or fortnightly. Forging and casting sub-contracting attract Section 143 CGST works-contract treatment. PAN-vendor consolidation matters because tier-2 suppliers often share PANs across registrations.
Batch-controlled receipts
Zero quantity tolerance on batch-controlled APIs and excipients. QC hold and quarantine states fragment the GRN further. Vendor invoices must match GRN exactly post-QC release — and any rejection requires the debit note linked back to the original GRN for GST credit reversal.
Bulk receipts and weighbridge variance
Tanker and bulk receipts subject to weighbridge tolerance, density adjustment, and contamination deductions. Invoice quantity rarely equals PO quantity exactly. Tolerance bands of ±1% to ±2% on quantity with absolute caps in tonnes are standard. Hazmat freight invoices add a separate match dimension.
Manual Excel vs. TransactIG
Most Indian manufacturing AP teams still run three-way matching on Excel exports from the ERP. The volume problem and the variance taxonomy problem both compound month over month.
| Dimension | Manual Excel | TransactIG |
|---|---|---|
| Match rate | 51% on average — the remaining 49% either ages out unresolved or is force-released under managerial override | 88% automated match rate with the residual routed to a classified exception queue and not a write-off |
| Monthly effort | 15-25 analyst-days per plant per month at any meaningful PO volume, scaling linearly with invoice count | 2-4 analyst-days per plant per month focused on exception review and vendor follow-up only |
| Audit evidence | Excel files lacking maker-checker, version control, and timestamps — auditors raise observations on control adequacy | Per-line evidence file with tolerance rule applied, maker-checker decision, and timestamp — supports CARO 2020, 3CD, and ICFR |
| ERP integration | CSV/Excel exports from MIGO, ME21N, MIRO consolidated manually — fragile to ERP report changes | Direct connectors to SAP, Oracle Fusion, Tally Prime, Dynamics 365, Sage, Odoo, Zoho Books, Busy via BAPI/IDoc/API |
What is Three-Way Matching
Three-way matching is the accounts payable control that requires three independent documents — the purchase order raised by the buyer, the goods receipt note signed off at stores, and the vendor's tax invoice — to agree on line item, quantity, unit rate, and total value before the invoice is released for payment. It is the primary defence against over-billing, duplicate billing, ghost receipts, and vendor fraud in any manufacturing or distribution operation.
In the Indian context, three-way matching carries additional tax dimensions. The invoice must be reconcilable against GSTR-2B for input tax credit under Section 17(5) of the CGST Act. Works contract and sub-contracting invoices are subject to Section 143 of the CGST Act and to TDS at source under Section 393(1)(a) of the Income Tax Act (payment code 1002, contractor) or Section 393(1)(k) (payment code 1012, purchase above ₹50 lakh annual threshold). A correctly executed three-way match therefore reconciles to four authorities simultaneously: procurement, stores, finance, and tax.
Where any of the three documents disagrees beyond a configured tolerance, the invoice is held in an exception queue with a variance code identifying the cause. Exceptions are aged in buckets (30, 60, 90+ days), routed to a maker-checker workflow for review, and either resolved through vendor follow-up, debit note, credit note, or formal write-off with documented approval. The audit evidence file that emerges from this control is the basis on which statutory audit, tax audit, and internal financial controls (ICFR) testing rest.
Frequently Asked Questions
What is three-way matching? +
Three-way matching is the accounts payable control that compares three independent documents — the purchase order (PO) raised by the buyer, the goods receipt note (GRN) signed off at the warehouse or stores, and the vendor's tax invoice — before a payment is approved. The match validates that the goods or services were ordered, that they were received in the quantity and condition described, and that the vendor is billing for what was ordered and received. Where any of the three documents disagrees on price, quantity, GST treatment, or vendor identity, the invoice is held in an exception queue rather than passed for payment, protecting the buyer from over-billing, duplicate billing, and fraud.
Why is the AP exception rate 60-75% in Indian manufacturing? +
Indian manufacturing AP exceptions cluster around four structural problems. First, GST is typically absent on the PO (which is raised on a pre-GST base value) but present on the vendor invoice, producing a line-level value mismatch on every taxable purchase. Second, partial deliveries are the norm rather than the exception — a single PO is fulfilled across multiple GRNs over days or weeks, and invoices arrive against partial GRNs. Third, vendor PAN and GSTIN mismatches between the PO master and the invoice are common when vendors operate from multiple registrations. Fourth, contractor and works-contract purchases attract TDS at source under Section 393(1)(a) (payment code 1002) and threshold-based TDS under Section 393(1)(k) (payment code 1012), which the invoice does not always pre-deduct. The combined effect is that 60-75% of invoices in a typical Indian manufacturing AP queue need manual intervention.
What tolerance bands work for Indian manufacturers? +
Tolerance bands are configured separately for price, quantity, GST, vendor PAN, and rate. A common starting profile for Indian engineering and auto-component manufacturers is: price tolerance ±2% per line with an absolute cap of ₹500, quantity tolerance ±1% on PO quantity for non-critical items and 0% for critical or controlled stock, GST tolerance ±₹1 to absorb rounding, vendor PAN exact match (no tolerance), and rate variance flagged if the invoice unit rate deviates from the contracted rate file. Pharma and chemical manufacturers usually tighten quantity tolerance to 0% on batch-controlled materials. TransactIG's tolerance band framework is fully configurable per material category, per vendor tier, and per plant.
Does TransactIG support the SAP MM-FI flow? +
Yes. TransactIG ingests PO, GRN, and invoice data from SAP via standard BAPI or IDoc extracts, or via daily file drop from your SAP team. Material documents (MIGO output for GRN), purchasing documents (ME21N output for PO), and invoice receipts (MIRO output) are mapped to TransactIG's matching schema during implementation. The output — matched lines, variance codes, exception ageing — can be posted back to SAP as a custom Z-table or surfaced in TransactIG's exception queue for AP analyst review. The same connector pattern supports Oracle Fusion (Procurement Cloud + Payables), Microsoft Dynamics 365 F&O, Tally Prime, Zoho Books, Busy, Sage, and Odoo.
How does TransactIG handle the GST split between PO and invoice? +
TransactIG classifies every invoice line into GST-inclusive or GST-exclusive at ingestion. The matching engine compares the invoice taxable value (not the gross billed amount) against the PO line value, and treats CGST, SGST, IGST, and CESS as separate reconciliation columns. GSTIN of the vendor on the invoice is matched against the vendor master and against GSTR-2B for input tax credit eligibility under Section 17(5) of the CGST Act. Where the invoice GSTIN does not appear in GSTR-2B for the period, the exception is tagged GST_MISMATCH with the GSTR-2B cross-reference so AP can hold payment until the vendor uploads. Works contract invoices governed by Section 143 CGST follow the same flow with the additional check that the principal-to-job-worker movement is documented.
How long does three-way matching implementation take? +
Implementation takes 2 to 4 weeks for a single-plant deployment. Week one covers connector setup to the source ERP (SAP, Oracle Fusion, Tally Prime, Dynamics 365, Sage, Odoo, Zoho Books, or Busy) and ingestion of historical PO, GRN, and invoice data for tuning. Week two maps your vendor master, material master, and chart of accounts to TransactIG's matching schema, and configures tolerance bands per material category and vendor tier. Weeks three and four apply variance taxonomy rules, exception routing (maker-checker, plant-wise queues), ageing buckets (30/60/90+ days), and the audit evidence file format. No code is required on your side. TransactIG is cloud-hosted on AWS Mumbai and certified to ISO 27001:2022.
Related Guides
Manufacturing Reconciliation in India
End-to-end view of PO-GRN-invoice, inventory, vendor advance, sub-contracting, and excise/GST reconciliation in Indian manufacturing.
PO-GRN-Invoice Three-Way Matching
Variance codes, tolerance band design, GSTR-2B integration, and TDS-at-source under Section 393(1)(a) and (k) for Indian AP teams.
Manufacturing AP Exception Management
Ageing buckets, maker-checker design, vendor follow-up cadence, and the audit evidence trail that holds up under CARO 2020 and ICFR testing.
Cut your AP exception queue from 60-75% to under 15%
TransactIG connects to your ERP — SAP, Oracle Fusion, Tally Prime, Dynamics 365, Sage, Odoo, Zoho Books, Busy — in 2 to 4 weeks. India-aware tolerance bands. ISO 27001:2022. AWS Mumbai.