Why invoices actually stop
The real reasons three-way-match invoices land on hold, which ones an agent can settle with a proposal, which must stay with a person, and the GST e-invoice checks Indian AP teams add.
- SMSimran MalhotraCo-founder
6 min read
Three-way match is simple on paper. The PO says what was ordered and at what price, the goods receipt (GRN) says what arrived, and the invoice says what the vendor wants paid. If the three agree within tolerance, the invoice is cleared for payment. If they don't, it goes on hold and joins the exception queue.
The queue is where AP time goes. Ardent Partners' 2025 ePayables research found the top-performing AP teams in its benchmark run 79% lower processing costs and 79% faster cycle times than their peers. In most teams we've seen, the clean invoices clear quickly and the holds take the days.
So when designing an agent for AP, start with why invoices stop, reason by reason. Some reasons are arithmetic an agent can work through and propose a fix for. Two are risk, and software should never settle those on its own.
The usual reasons, and who settles them
| Why it stopped | What the agent can do | Who decides |
|---|---|---|
| Invoiced quantity is more than received | Look for later GRNs on the same PO; if none, propose a short-pay or debit note for the difference | AP, with stores if the goods are disputed |
| Price differs from the PO | Check for a PO amendment, a price-list revision or a quantity break, and show the difference in currency | The buyer, above tolerance |
| No GRN yet | Ask receiving or site, with the PO and delivery challan attached, and hold the invoice | Receiving |
| Partial deliveries | Match the invoice to the right set of GRNs, and flag an invoice that bills the full PO against part receipt | AP |
| Unit of measure | Convert using the item master (boxes to pieces, kg to metres) and re-run the match | AP, when no conversion is on file |
| Tax mismatch | Recompute tax from HSN, rate and place of supply, and compare with the invoice and the GST portal | AP or the tax team |
| Freight and surcharges | Check the PO and contract terms for freight, and compare with what this vendor usually charges | The buyer or logistics |
| Possible duplicate | Show the earlier invoice side by side, with the evidence | The AP lead |
| Vendor bank details changed | Stop all payments to the vendor | The vendor master owner, by phone |
The first seven are where an agent earns its keep. Each is a lookup and a comparison the AP clerk would otherwise do across three screens, and the agent's output is a proposal with its working shown, which the clerk approves or changes. A typical card reads INV 88/2026-27 · ₹4,12,800 · GRN qty 180 vs invoice 200 → hold · proposed short-pay of 20 units, debit note ₹41,280.
The agent should use the tolerances already set in your ERP, and only those. One that treats a 0.4% rounding difference as an exception will bury the queue. One that applies a 5% tolerance nobody approved will pay money that should have been questioned.
Freight is where small amounts hide, like a fuel surcharge that isn't in the contract. When Dow put an agent on its freight invoices, Microsoft's write-up of the pilot describes it flagging a $30,000 surcharge where about $5,000 was typical. The agent's job is to notice and show the comparison. Whether the charge stands is a conversation with the carrier.
The two that stay with a person
Duplicates go well beyond a repeated invoice number. The same bill comes back as "INV-0042" in one email and "0042" in the next, or under a second vendor record created when someone misspelt the name. A useful check compares vendor (including likely aliases, and the same GSTIN or tax ID on two records), amount, date within a window, PO reference and line contents together, then puts the candidates side by side. It never rejects or deletes either invoice. Two invoices for the same amount on the same day are sometimes both real, like monthly rent on two units. A person decides.
Bank-detail changes are a fraud check. An email arrives from what looks like a known vendor saying their bank account has changed, sometimes on the same day as a large invoice. The documents are often genuine, because the vendor's mailbox has been taken over. The agent's only job is to notice that the remit-to on an invoice differs from the vendor master, or that a change request has come in, and to hold every payment to that vendor until someone confirms the change by calling the number already in the vendor master. The number in the email doesn't count. Freight brokers describe the same scheme in their world, and the same lesson: the check only works if it runs every time, including at 4:45 on a Friday (r/FreightBrokers). Build it as a hold the agent itself can't lift.
India: GST e-invoices add their own holds
For Indian buyers, the invoice also has to agree with the GST system. B2B invoices from suppliers above the e-invoicing turnover threshold must carry an IRN and a signed QR code from the Invoice Registration Portal. An invoice that should have one and doesn't is not a valid tax invoice for input tax credit, so it waits whatever the three-way match says. The agent can read the QR code and compare the IRN, GSTIN, invoice number, date and tax amounts with what the portal holds.
Then there's GSTR-2B, the monthly statement of input credit available to you based on what your suppliers reported. An invoice can match the PO and GRN perfectly and still be missing from 2B, because the supplier hasn't filed or filed it against the wrong GSTIN. Place of supply decides whether the tax should be IGST or CGST plus SGST, and when a supplier charges the wrong one, the fix is a credit note and a fresh invoice from their side. On the GST portal's Invoice Management System, each supplier invoice is accepted, rejected or kept pending, and that action should follow the AP decision on the same invoice. The agent can run the reconciliation and draft the vendor email for each mismatch. Whether to pay an invoice whose credit you can't claim yet is a finance decision.
Before building anything, pull last quarter's on-hold invoices, tag each one with the reason it stopped using the table above, and note how long each type took to clear. That shows you which holds to automate first and which ones you'll keep with a person. It's also where we start on finance operations work.