Live system demo - Project 1
PayFlow
Invoice verification that flags mismatched vendor bank details before payout.
Receives structured invoice data, runs automated vendor and bank verification, and blocks ledger posting until both checks pass.
Control. Nothing posts to the ledger without server-owned verification evidence from both checks - vendor match against the registry, and bank routing against the approved profile.
StackPython, FastMCP, Next.js, SSE
System brief
- Challenge
- A slightly altered routing number can send money to the wrong account before anyone catches it, especially when vendor checks are informal.
- Solution
- An invoice verification path that matches vendors to the registry, checks bank routing against approved profiles, and holds mismatched payouts for AP manager review.
- Business impact
- Unknown vendors and routing mismatches are held before money moves, with an explicit AP manager release or reject path.
Exception pathHold / review
- Mismatch path
- Unknown or low-confidence vendors fail the registry gate. Exact tax-ID match can allow name variation; a routing mismatch against the approved profile fails the bank check.
- Payment held
- A routing mismatch opens a persisted demo hold. Ops console status moves to held - nothing posts without fresh evidence.
- Who reviews
- AP manager reviews the hold in the ops console, with reason and audit trail on resolution.
- How it is released
- Release requires applying the approved profile routing, re-running both checks, and posting with fresh evidence. Reject closes the hold without posting.
Architecture and trade-offs
- 01BrowserInvoice scenario
- 02Next.js routeSSE stream
- 03Tool runtimeHosted MCP or embedded fallback
- 04ERP registryVendor + bank checks
Pass
Fresh evidence - ledger post
Both checks issue single-use evidence bound to the invoice data. Ledger posting rejects missing, stale, or replayed evidence.
Fail
Hold - AP manager review
Routing mismatch opens a hold. Release requires corrected approved routing, both checks re-run, then post. Reject closes without posting.
Each step streams into the ops console over SSE. Hosted FastMCP is preferred when reachable; otherwise the embedded tool runtime enforces the same evidence gate. Pass posts; fail opens an AP manager hold.
Trade-offs
- Demo/session hold storage is in-memory - fine for a portfolio run, not durable across serverless cold starts.
- Deterministic tool sequence over an open-ended LLM agent - clearer demos and safer money decisions.
- Embedded MCP fallback when HTTP MCP is down keeps the public demo accurate; local FastMCP is the fuller integration story.
Live system demo
1 Choose a scenario · 2 Run the system · 3 Inspect how it works
Operations console
Incoming invoice
- Vendor
- Acme Global Enterprise Inc.
- Tax ID
- XX-XXX4910
- Routing
- 021000021
- Amount
- $14,500
Master vendor profile
- Official name
- Waiting for check...
- Approved routing
- -
- Bank check
- Pending
Pick an invoice on the left and hit Run invoice check to fill the match score and security banners.