Home / Solutions / Invoice processing

Invoice processing automation: three-way matching that only escalates the exceptions.

Extraction is the part everyone demonstrates. Matching, tolerances and variance chasing are the part that actually costs your finance team its week.

38 / 38
invoices matched inside one Coastline run
698h
saved per month across that order flow
3 wk
typical pilot, scoping to live
$4K
published floor for a pilot

The same work, twice

Before — one supplier invoice, by hand
  1. 1Pull the invoice out of the shared inboxAP · 4m
  2. 2Key the header fields into the ledgerAP · 7m
  3. 3Find the purchase order it belongs toAP · 9m
  4. 4Compare line items, quantities and totalsAP · 11m
  5. 5Email the buyer about a price varianceAP · 6m
  6. 6Wait for the buyer to replyBuyer · hours
  7. 7Route for approvalAP · 5m
  8. 8Schedule payment and file the documentAP · 6m
8 steps · 48 minutes of handling · one open loop per variance
After — the same batch, automated
invoice-intake · run #2,318
06:00:04  41 invoices pulled from the ap@ inbox
06:00:11  header and line items extracted, 41/41
06:00:19  38 matched to a PO and receipt within tolerance
06:00:52  3 variances posted to #ap-exceptions with the PO attached
06:01:04  approvals requested, payment run staged
38 posted · 3 waiting on a person
1 trigger · 3 exceptions · 60 seconds

The shape of the run, drawn from the Coastline Logistics build. Your steps, timings and tolerances come out of the audit week.

Why this queue costs what it costs

Accounts payable is the most automatable process in most companies and the one most often half-automated. A tool reads the PDF, someone still opens the ledger, finds the purchase order, checks whether 96 units at a slightly different price is acceptable, and sends an email that will be answered tomorrow.

The saving is not in reading the invoice. It is in matching it against the purchase order and the goods receipt, applying your tolerances without a meeting, and turning the three that fail into a specific question sent to the person who can answer it.

Coastline Logistics ran invoice creation and matching as part of a wider order flow. In production, 38 of 38 invoices matched inside a run that finishes in under four minutes, and the flow as a whole returned 698 hours a month.

Three-way matching is where the hours actually go

An invoice on its own means nothing. It has to agree with what was ordered and what arrived, and the interesting cases are where those three documents disagree: a partial delivery, a substituted SKU, a unit of measure recorded as cases on one side and units on the other, a freight charge that appears on the invoice and nowhere else.

Automating this means writing your tolerances down, often for the first time. What price variance passes without a human, what quantity variance passes, which suppliers have negotiated terms that override the default, and what always needs approval regardless of size. That document is a deliverable of the audit week and it tends to outlive the automation.

Extraction is solved. Judgement is configured.

Reading fields off an invoice, including a photographed one, is now reliable enough to build on, provided low-confidence reads are treated as exceptions rather than facts. Nothing posts to the ledger from a field the extractor was unsure about.

What is not solved by a model is whether this particular variance is acceptable. That is a policy question, and we encode it as explicit rules you can read and change rather than as a prompt that behaves differently on Tuesday. The model reads; the rules decide; the log records which rule fired.

Exceptions get a person, on purpose

The goal is not zero human involvement. It is that a person only sees the three invoices out of forty-one that need a decision, with the purchase order, the receipt and the specific mismatch in front of them.

At Coastline, exceptions land in a channel with the context attached, and the team clears them in the time it takes to drink a coffee. That is a better outcome than a system that guesses, because a wrong payment costs far more to unwind than a two-minute question costs to answer.

Duplicate payments and the rails that prevent them

The failure everyone in finance has seen is the same invoice paid twice after a retry. Every run we build is idempotent and checkpointed: a failure stops at the step, alerts with context, and resumes from the checkpoint rather than from the beginning.

On top of that sits deduplication on supplier, invoice number and amount, plus a rule that no payment is released by the automation itself. The run stages the payment run; a person releases it. That line stays where it is regardless of how well the matching performs.

What it connects to

NetSuite, SAP, Xero, QuickBooks, Sage and most mid-market ledgers expose enough to read purchase orders and post invoices. Where a ledger does not, we use its supported import route on a schedule instead of automating its interface.

The inbox side is usually simpler than teams expect: a shared mailbox, a supplier portal that emails, and occasionally an EDI feed. The audit week confirms which sources are real and which are one supplier who still posts paper.

Cost, timeline and payback

A pilot on one supplier group starts at $4,000 and is usually live in three weeks. A full accounts payable flow with tolerances, approvals and ledger posting runs $12,000 to $30,000.

Payback is arithmetic you can do before calling us: invoices per month, minutes of handling each, loaded hourly cost. If that number is under a few thousand dollars a year, automate something else first, and we will say so on the call.

How the build runs

01 · week 1

Map and count

Twenty real invoices, including the awkward ones. Volumes, handling times and the exceptions nobody documented.

02 · week 1

Write the tolerances

Price and quantity variance rules, supplier overrides, approval thresholds. Signed off before anything is built.

03 · weeks 2–3

Build and shadow-run

The run works alongside the team on live invoices while nothing posts, so disagreements surface before go-live.

04 · handover

Cut over and hand back

Documentation, an editable workflow, exception routing your team owns, and 30 days of support.

Before and after, in numbers

MeasureBeforeAfter
Handling per invoiceabout 48 minutes with a variance0, unless it is an exception
Match rate in a runchecked by hand38 of 38 matched
Variance chasingan email thread per invoiceone message with PO and receipt attached
Duplicate payment riskmanual dedupeidempotent run plus supplier and number check
Payment releasemanualstill manual, by design
Month-end positionassembled from the spreadsheetcurrent after every run

Coastline Logistics, where invoice creation and matching sat inside the wider order flow. Measured over 90 days from their run logs.

Where we have built this

All work

Related reading

service

AI automation

The practice this sits in: map the process, build one run, route the exceptions.

industry

Logistics

Where invoice matching usually arrives attached to a bigger order flow.

tool

ROI calculator

Put your invoice volume and handling time in before you book a call.

compare

n8n vs Make vs Zapier

Where an AP workflow should live, and what each platform costs at volume.

Questions before a pilot

High enough that extraction is not the constraint, but we do not quote a single number because it depends on your supplier mix and document quality. What matters more is the confidence threshold: low-confidence fields never post, they become exceptions, so the failure mode is a question rather than a wrong entry.

Want to see this run on your own invoice processing?

Bring twenty real examples to the scoping call. The audit week counts the hours, writes the rules and comes back with a fixed price, and you keep the process map whatever you decide.

Get an estimate