The problem
Accounts payable spends most of its time on invoices that match perfectly, and not enough on the few that don’t.
How the workflow runs
An email with an attachment starts the run. Extraction pulls vendor, amounts, tax and line items into a typed schema, and a tool step fetches the matching purchase order. If totals match within tolerance, the entry is posted with an idempotency key built from vendor and invoice number.
When something is off, the run pauses and posts the mismatch to the finance channel: which line, by how much, and the original PDF. The approver can correct the amount in the message and the run carries on with the corrected value.
What changes
Duplicates can’t be posted twice, every exception has a named approver, and the audit trail is the trace itself.



