Companies lose money on supplier invoices in three quiet ways: paying the same invoice twice, paying for goods that never arrived or at a price nobody agreed, and paying a fraudster who swapped the bank details on an invoice. In a small finance team these checks are manual and easy to miss. PayablesPilot is an accounts-payable operations agent that runs the pre-payment control workflow end to end. Invoices arrive by web form or JSON API and are evaluated immediately. A deterministic three-way match compares each invoice with its purchase order and goods receipt: quantities are summed across all invoices on a PO, so it can never be billed beyond goods received, and unit prices are checked within a configurable tolerance (2% or £1.00). An exact invoice-number resubmission is blocked; a same-amount invoice from the same supplier within 7 days is held as a possible duplicate. The bank account on the invoice must equal the supplier master record — a mismatch is held as a possible payment-diversion attempt. Every failure lands in an exception queue with the rule, the observed value and the expected value, plus a drafted supplier follow-up (draft only). Matched invoices are grouped into a payment pack ordered by due date for HUMAN approval; the agent never executes payments. Every decision is written to an audit trail; each invoice page shows every check, so a decision can be re-performed by hand. On the live demo (fictional data, labelled): 9 invoices, 2 payable, 6 held with exact reasons, 1 duplicate blocked; payment pack £860.00, human approval recorded in the audit trail. Approval is simulated and initiates no transfer. Vultr usage: a Vultr Cloud Compute VM in London (1 vCPU / 1 GB) is the central control point — it hosts the app, database and audit trail and serves the public demo. Python 3 standard library only, SQLite, integer cents, 14 unit tests. Serverless Inference is intentionally not used: payment verdicts must be deterministic, never an LLM's opinion.
Category tags: