AI agents · finance

The Accounts Payable Agent

It reads the bill, identifies the vendor, codes the expense, matches the PO, checks policy, routes approval, and posts a balanced entry. Your team stops doing data entry and starts handling only what genuinely needs a person.

accounts-payable-agentrunning
Bill arrives [email protected]
Extracted vendor · date · lines
Coded 6420 · Cloud hosting
Matched to PO PO-2291 · within 2%
Policy checked level 2 · under $2,500
Approved M. Reyes · controller
Posted to the ledger JE-88104 · period open
Journal entry JE-8810419 Aug
6420 · Cloud hosting4,180.00
2010 · Accounts payable4,180.00
Balanced4,180.004,180.00
Writes back to your existing systemAuthority level you setEvery action audit-logged

What it does

Six jobs, end to end.

Each of these is a step your AP clerk does today by hand. The agent does them in sequence and stops at the first thing it is not confident about.

Read any bill format

PDF, scanned image, emailed body text, EDI, or a vendor portal download. Line items, tax, terms, remit-to, and PO reference come out structured.

Identify the vendor

Matches against your existing vendor master including aliases, DBA names, and the twelve ways a vendor writes its own name. Flags likely duplicates before they are created.

Code the expense

GL account, department, location, class, and project — learned from how your team has coded this vendor before, not from a generic model.

Match the purchase order

Two-way and three-way matching with configurable tolerance. Quantity and price variances are itemised rather than silently accepted.

Detect duplicates

Same invoice number, near-identical amount and date, or a re-sent statement. Caught before it enters the approval queue, not after payment.

Route for approval

Follows your approval matrix by amount, department, and vendor. Chases the approver. Escalates when it stalls.

Before & after

The same bill, both ways.

A $4,180 hosting invoice against an open purchase order — the most ordinary bill your team will process today.

Today · by hand

  1. 01Open the email, save the PDF0:40
  2. 02Find the vendor in the system0:55
  3. 03Key the header and lines3:10
  4. 04Look up the GL code1:20
  5. 05Find and open the PO1:35
  6. 06Compare quantities and price1:05
  7. 07Email the approver0:45
  8. 08Chase the approver on Thursday1:30
  9. 09Post the entry0:50
Touch time per bill11:50

With the agent

  1. 01Bill received and parsedauto
  2. 02Vendor matched to masterauto
  3. 03Header and lines extractedauto
  4. 04Coded 6420 · Cloud hostingauto
  5. 05Matched to PO-2291 within 2%auto
  6. 06Duplicate check clearedauto
  7. 07Policy checked · under $2,500auto
  8. 08Approved by controller0:06
  9. 09Posted · JE-88104 balancedauto
Human touch time0:06
What the numbers are and are not

The left column is a timed observation from onboarding three professional-services clients in 2026, not a survey figure. The right column assumes the agent is at Level 2 for this vendor with a matched PO. A bill with no PO, a new vendor, or a variance outside tolerance takes a different path — it goes to a person, which is the design.

Accuracy

We publish the rate, and how we measure it.

Straight-through rate is the share of bills that reach a posted entry with zero human edit. It is measured per customer, per week, against that customer’s own corrections.

0%25%50%75%100%wk 1wk 2wk 4wk 6wk 8wk 12wk 16wk 2091%

Why it starts low and climbs

The agent does not arrive knowing your chart of accounts, your vendors, or the conventions your controller has been applying for six years. Week one is deliberately conservative: it proposes, a person confirms, and every correction becomes a labelled example. By week twelve it is coding the recurring eighty percent of your vendor base without intervention.

A rate that starts at ninety percent is a warning sign, not a feature. It means the model is guessing confidently on a chart of accounts it has never seen. We would rather be visibly cautious for a fortnight and earn the number.

How a model change is gated

Prompt and model changes run against a held-out set of your historical bills before they ship. A change that lowers straight-through rate, or raises the rate of confidently-wrong coding, does not deploy. That gate is the reason the number can be trusted, and it is why we are willing to publish it.

Authority

Where this agent sits, and who decides.

Level 1 · default

Draft everything

The agent prepares the bill in full and a person commits it. This is where every new customer starts, for every vendor.

Level 2 · earned

Post within policy

Enabled per vendor, per threshold, by your controller — typically once a vendor has thirty clean drafts behind it.

Level 3 · always

Payment release

Moving money is never delegated to an agent at any confidence. It requires a named human approver, without exception.

Questions

What people ask first.

Does it work if we keep QuickBooks?
Yes, and that is the common case. The agent reads and codes in erp.io and writes the finished bill back into QuickBooks, NetSuite, Sage Intacct, Acumatica, Dynamics, Odoo, or Xero. You do not have to move your ledger to get the automation.
What happens to a bill it is unsure about?
It goes to an exception queue with the reason stated — new vendor, no matching PO, variance outside tolerance, ambiguous coding, or low extraction confidence. Nothing is posted on a guess, and the queue is the agent telling you where it needs help rather than failing silently.
Can it pay the bill?
It can schedule and propose a payment run. It cannot release funds. Payment execution is a Level 3 action requiring a named human approver, and that is not configurable downward.
How does it learn our coding conventions?
From your history and your corrections. On connection it reads your posted bills to learn vendor-to-account patterns, and from then on every edit your team makes to a proposal becomes a labelled example specific to your business.
What does the audit trail capture?
Agent, model and version, the prompt context, every source record read, a reasoning summary, the confidence score, the policy applied, the approver, the timestamp, and the resulting journal entry. It is exportable and designed to be handed to an auditor.

See it code your own invoices.

Send fifty real bills. We will show you what the agent would have done next to what your team actually did — no connection required.