The agent researches the purchase and assembles a structured purchase order draft: vendor name, item descriptions, quantities, unit prices, total amount, business justification, and the vendor's payment method or checkout URL.
The agent submits the PO draft to a review queue with a status of pending_approval; it does not contact the vendor or initiate payment at this stage.
The human approver reviews the PO in a structured UI that shows the draft alongside comparable pricing data if available; the approver can approve, reject, or request modification.
On approval, the system generates a scoped payment authorization token bound to the PO ID, vendor, and approved amount; this token is passed to the agent to execute the purchase.
The agent executes the purchase using only the scoped token; if the actual checkout total differs from the approved PO total (by more than a small tolerance, e.g., 2%), the agent must halt and re-queue for approval rather than proceeding.
After purchase, the agent captures the vendor's order confirmation and receipt, links them to the PO record, and closes the PO as fulfilled; the full PO lifecycle (draft, approved, executed, fulfilled) is stored in the audit log.
Known gotchas
Price drift between PO approval and checkout execution is common — prices change, taxes may not have been included in the draft, or the agent may have been looking at a promotional price that expired; always re-verify total at checkout before submitting payment.
Approvers can rubber-stamp POs without reading them if the approval UI makes it too easy — add friction for high-value POs (require typed confirmation of amount, require a business justification field) to maintain control value.
PO approval does not guarantee vendor availability or product in-stock status; the agent may need to handle a 'sold out' or 'price changed' state after the PO is approved and re-queue the task rather than substituting a different product without re-approval.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp