Mismatches caught pre-payment
Three-way matching on every bill — the $1,140 of over-billed material gets caught by the bot, not by month-end forensics.
Automation / Chat
AP receives every vendor bill, validates it against the PO and receiving records, routes it for approval based on your amount-and-category rules, and schedules payment — never a dollar without your sign-off above the threshold you set. The mismatches get caught before the money moves, not on the bank statement.
Workflow concept and scripted demonstration. The descriptions below preserve the original workflow scope; channels, integrations, response times, and actions must be agreed and tested for your setup. Sample dialogue is not a customer result.
Bills arrive by email, portal, or photo. The bot extracts vendor, line items, totals, and terms — no manual keying.
Quantities, prices, and totals are checked against the purchase order and receiving records. Mismatches get flagged with the math shown.
Amount and category determine who approves. Under threshold with a clean match? Queued automatically. Over it — or off by a line item — it waits for a human.
Approved bills are scheduled to capture early-pay discounts or hold cash to terms — your policy, applied consistently.
Every bill carries its validation result, who approved it, and when it was paid. Month-end reconciliation starts 90% done.
A supplier bill lands with a quantity that doesn't match the PO. Watch the bot catch it, show the math, and hold payment until you've signed off on the corrected amount.
Illustrative sample only. Playback sends no messages and connects to no accounts.
Bill needs you: Bayside Supply $9,840 — qty mismatch vs PO-2210
Bayside Supply invoice BS-30188 received this morning: $9,840, net 30, against PO-2210 (camera install materials). Validation: ⚠️ one line off. • 4MP turret cameras — PO says 10 @ $570; invoice bills 12 @ $570 (+$1,140) • Receiving log: 10 received, signed by Marco, May 28 • All other lines match ✓ (cable, mounts, connectors — $4,140) This is over your $2,500 sign-off threshold AND has a mismatch, so payment is held. Suggested action: dispute the two-unit difference with Bayside — draft attached asking them to reissue at $8,700. Approve the dispute?
Re: Bill needs you: Bayside Supply
Good catch. Send the dispute. If they reissue at 8,700, approve it and pay on terms — no early pay this month, keep the cash.
Re: Bayside Supply — dispute sent ✓
Dispute sent to Bayside AR with the PO and signed receiving log attached ✓ Standing instruction noted: if they reissue at $8,700, I'll validate, mark it approved per this thread, and schedule for the net-30 date (June 27) — skipping their 2% early-pay offer per your cash-hold call. Anything other than $8,700 comes back to you.
Bayside reissued at $8,700 — validated, scheduled June 27 ✓
Bayside reissued: invoice BS-30188-R, $8,700 — "our count error, apologies." Re-validated: every line now matches PO-2210 and receiving ✓. Marked approved per your standing instruction and scheduled for June 27 (net-30). You saved $1,140 on this one. Month so far: 23 bills processed, 21 clean-matched and auto-queued under threshold, 2 needed you, $1,140 in billing errors caught.
Three-way matching on every bill — the $1,140 of over-billed material gets caught by the bot, not by month-end forensics.
Above-threshold payments cannot move without explicit approval. Not policy-on-paper — the bot physically will not schedule them.
Early-pay discounts taken when worth it, cash held to terms when not. The policy you set runs on every single bill.
Validation result, approver, timestamps, and artifacts attached to every payment. Your bookkeeper reconciles in minutes.
The complete sample handoff, ready to inspect alongside the conversation. The actual record format is scoped to your systems.
{
"record": "ap_bill",
"bill": {
"vendor": "Bayside Supply",
"original": "BS-30188 $9,840",
"reissued": "BS-30188-R $8,700",
"terms": "net30"
},
"validation": {
"po": "PO-2210",
"method": "three_way_match",
"mismatch": {
"line": "4MP turret camera",
"po_qty": 10,
"billed_qty": 12,
"received_qty": 10,
"variance": 1140
},
"evidence": "receiving_log signed Marco May 28",
"final": "clean_match_on_reissue"
},
"approval": {
"threshold": 2500,
"held": true,
"approver": "owner",
"mode": "standing_instruction $8,700 exact"
},
"payment": {
"scheduled": "June 27",
"policy": "net30_no_early_pay",
"discount_skipped": "2% (cash hold)"
},
"savings": 1140,
"month_to_date": {
"bills": 23,
"auto_queued": 21,
"escalated": 2,
"errors_caught_value": 1140
},
"audit": {
"artifacts": [
"po",
"receiving_log",
"dispute_thread",
"reissued_invoice"
],
"transcript_ref": "email-ap-30188"
}
}Start with your inputs, systems, approval owners, and exceptions. We agree the permitted actions, test dry runs, and define who can pause the workflow.
Let’s talk about the work
Show us the spreadsheet, the website, or the task you keep explaining. That’s enough to start a useful conversation. Start a project