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.
- 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.
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 arrives | What extraction gives you | What is still unanswered |
|---|---|---|
| A clean PDF against a purchase order | Vendor, number, lines, total | Which receipt it matches |
| A scanned statement, not an invoice | A confident set of wrong fields | That it is not an invoice |
| A second copy of last week | Identical fields | Whether it is already paid |
| An invoice with no purchase order | Correct fields | Who is allowed to approve it |
| A credit note | Fields with a minus sign | Which 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.
ChatFin classifies what arrived before it extracts, so a statement, a duplicate and a credit note stop being processed as invoices.
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.
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.
ChatFin sums partial receipts, normalises units of measure, and reports which tolerance each pass actually used, so the tolerance stops being invisible.
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.
| Question | Where the answer lives | Why it stalls |
|---|---|---|
| Who owns this spend | A person's memory | They are on leave |
| What cost centre | Last year's coding | Which may have been wrong |
| What account | The chart of accounts | Several plausible options |
| Is it approved | A policy document | Nobody reads it at invoice level |
| Is it recurring | The payment history | Not 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.
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.
Where this underperforms
Three, and they are worth knowing before a pilot.
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.
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 demoAll images are served from the Pexels content network. No third party product screenshots, vendor logos or licensed media are used on this page.
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.