a person with a laptop beside automated equipment on a production line
Accounts Payable · Invoice Processing · Hub

AI Agents for AP
Invoice Processing

Reading the invoice is the cheap part. Deciding what it is and what should happen to it is where accounts payable actually spends its time.

Key takeaways
  • Extraction is the cheap part of intake. Classification and lookup are the work, and they need the purchase orders, receipts and payment history rather than a better read of the page.
  • Match failures are almost never pricing disputes. They are receipt timing, partial receipts, units of measure, and freight that was never on the order.
  • The non PO population consumes the team, and every question it raises is retrieval from systems finance already has rather than extraction.
  • Tolerances decide whether a difference passes and most teams have never calibrated them or seen which one was applied.
  • Start with duplicate and misclassified intake, because it needs read access only and it removes volume rather than moving it.

AI agents for invoice processing classify what arrived before extracting it, resolve the match against purchase orders and receipts, and propose coding for the invoices that have no order behind them. ChatFin raises an exception only when a person genuinely has to decide something.

The reason accounts payable stays manual is not that invoices are hard to read. It is that a correctly read invoice still leaves open which receipt it matches, whether it has been paid already, who is allowed to approve it, and what it should be coded to. ChatFin answers those from the purchase orders, receipts and payment history rather than from the document.

Accounts payableInvoice processingThree way matchingNon PO invoicesGL codingPurchase ordersAP automationAI agents for finance
01

Intake is not an extraction problem

Most accounts payable projects start by buying better extraction, on the assumption that the cost of an invoice is the typing. ChatFin sees the opposite. Reading the invoice is the cheap part. Deciding what it is, whether it belongs to anyone, and what should happen to it is where the time goes.

What arrivesWhat extraction gives youWhat is still unanswered
A clean PDF against a purchase orderVendor, number, lines, totalWhich receipt it matches
A scanned statement, not an invoiceA confident set of wrong fieldsThat it is not an invoice
A second copy of last weekIdentical fieldsWhether it is already paid
An invoice with no purchase orderCorrect fieldsWho is allowed to approve it
A credit noteFields with a minus signWhich invoice it offsets

Every row extracts perfectly and none of them is finished. The unanswered column is the actual work, and it needs the purchase orders, the receipts and the payment history, not a better reading of the page. ChatFin treats intake as a classification and lookup step rather than a capture step.

In ChatFin

ChatFin classifies what arrived before it extracts, so a statement, a duplicate and a credit note stop being processed as invoices.

02

Two way, three way, and the tolerance nobody set

Matching is arithmetic and it still fails constantly, because the failure is almost never the arithmetic.

Quantity received in a later period. The invoice is right, the receipt is right, and the match fails on timing rather than on substance.
Partial receipts against one line. Three deliveries, one invoice, and the line totals reconcile only when the receipts are summed first.
Unit of measure differences. The order is in cases and the invoice is in each, so the price looks wrong by exactly the case size.
Freight and duty on the invoice but not the order. A real difference that should pass, and a tolerance nobody ever calibrated decides whether it does.
A price change agreed by email. Correct in substance, unmatched in the system, and the evidence is in somebody's inbox.

ChatFin resolves those before raising an exception, because each one is a lookup rather than a judgement. What reaches a person is the set that genuinely needs a decision.

a person with a laptop beside automated equipment on a production line
Most match failures are timing and unit differences, not pricing disputes.
In ChatFin

ChatFin sums partial receipts, normalises units of measure, and reports which tolerance each pass actually used, so the tolerance stops being invisible.

03

The non PO population is the one that hurts

Purchase order invoices are the ones every tool demonstrates. The population that consumes the team is the invoices with no order behind them at all: professional fees, subscriptions, utilities, rent, insurance, anything bought by someone who did not raise a requisition.

QuestionWhere the answer livesWhy it stalls
Who owns this spendA person's memoryThey are on leave
What cost centreLast year's codingWhich may have been wrong
What accountThe chart of accountsSeveral plausible options
Is it approvedA policy documentNobody reads it at invoice level
Is it recurringThe payment historyNot surfaced at approval

None of that is extraction. All of it is retrieval from systems finance already has. ChatFin proposes the coding and the approver from the history of that vendor and that cost centre, shows the invoices it based the proposal on, and leaves the decision with a person.

In ChatFin

ChatFin proposes non PO coding from what was actually done with that vendor before, and shows the prior invoices behind the proposal rather than a confidence score.

04

Where this underperforms

Three, and they are worth knowing before a pilot.

Receipts are not recorded promptly. Then three way matching is measuring the goods receipt process rather than the invoice, and nothing in software fixes that.
The chart of accounts is genuinely ambiguous. If two accounts could both be right, historical coding reproduces the ambiguity rather than resolving it.
Approval authority is not recorded anywhere. If the delegation matrix lives in a document nobody maintains, routing is a guess dressed as a workflow.
Start with duplicate and misclassified intake. It needs read access only, it removes volume rather than redistributing it, and it is measurable in a single period.

Deeper in invoice intake

Use cases under this hub, shown rather than linked while they are in build.

In build
Invoice intake and document extraction · Two way and three way matching · PO and non PO invoice processing

Covered as sections here
Intake classification · Receipt timing · Units of measure · Non PO coding · Approval routing

Questions AP managers ask first

Is this better optical character recognition?

No, and that is the point. Extraction accuracy is largely a solved problem and it is not what stalls an invoice. A perfectly extracted statement is still not an invoice, a perfectly extracted duplicate is still a duplicate, and a perfectly extracted non PO invoice still has no approver. ChatFin spends its effort on classification and lookup.

Why do so many three way matches fail?

Mostly on timing and units rather than on price. The goods receipt lands in a later period, three partial deliveries sit against one invoice line, or the order is in cases while the invoice is in each. ChatFin sums partial receipts and normalises units before raising anything, so the exceptions that reach a person are the ones that need a decision.

What happens with invoices that have no purchase order?

ChatFin proposes the cost centre, account and approver from what was actually done with that vendor and that cost centre before, and shows the prior invoices the proposal is based on. A person releases it. Where the chart of accounts is genuinely ambiguous, history reproduces the ambiguity rather than resolving it, and the page says so.

How ChatFin works on accounts payable

Answer the lookup before raising the exception.

ChatFin classifies each document, resolves it against the orders, receipts and payment history, and proposes coding and an approver where there is no order.

Exceptions that reach a person are the ones that need judgement. Everything that was only a lookup has already been looked up.

Bring one month of your real AP inbox. The classification pass takes an hour.

Book a demo
AM
Ashok Manthena
CEO and co founder, ChatFin

Ashok Manthena is the CEO and co founder of ChatFin, an AI agent platform for enterprise finance that runs across NetSuite, Acumatica, JD Edwards, SAP and Dynamics 365. He works with CFOs and controllers on governed automation of the close, payables, receivables and reporting. Connect on LinkedIn.

Image credits. Header photograph: a person with a laptop beside automated equipment on a production line, sourced from Pexels and used under the Pexels licence.
All images are served from the Pexels content network. No third party product screenshots, vendor logos or licensed media are used on this page.
Get started

Bring one month of your AP inbox.

We will classify it through ChatFin and show you how much of it was never an invoice that needed processing in the first place.

✓Duplicates and statements separated before extraction
✓Partial receipts summed and units normalised
✓Non PO coding proposed from your own history
Request a demo
Confidential & private