Contractor Invoice Intake
Build a portal where contractors submit invoices, the tool matches them to a PO or agreed rate, blocks duplicates, and routes each one for approval before it exports to AP - so contractor invoices stop getting lost in an inbox.
A login-protected intake portal where contractors upload invoices, the tool auto-matches to a PO or agreed rate, hard-blocks duplicates, routes to the budget owner for approval, exports approved invoices to AP, and emails the contractor their status.
Before you start
- A free Supabase account
- A free Resend account (or any email sender) for status notifications
- A Vercel account for deploying the web app
- Your PO / rate-agreement data and a sample of past contractor invoices
The problem this kills
Right now your contractor invoices arrive as random PDFs in a shared inbox. Someone has to notice the email, figure out which PO or rate it belongs to, eyeball whether it's a duplicate of one you already paid, chase the budget owner for a yes, and then re-key it into your AP system. Things slip. Contractors email "did you get my invoice?" three times. The same invoice number sneaks through twice and you overpay. Nobody can tell you, six weeks later, who approved what.
This Implementation Plan replaces that inbox with a real intake portal - one front door for every contractor invoice, with matching, duplicate blocking, and an approval gate built in.
What you'll build
A small, login-protected web app where:
- Contractors submit invoices through a simple form - upload the PDF and key the amount, period, and PO or reference number.
- The tool matches each invoice to its purchase order or agreed rate, and flags anything that exceeds the PO amount or the agreed rate.
- A hard duplicate guard stops the same invoice number from the same vendor being submitted - or paid - twice.
- The budget owner reviews and approves each invoice (matched to PO/rate, work confirmed) before anything leaves the system.
- Approved invoices export to AP in exactly the columns your accounting system expects.
- Contractors get notified of their status automatically - received, approved, on hold, or rejected.
What's inside the Implementation Plan
The plan is a single markdown file you paste into Claude Code. It walks the AI agent through the whole build, step by step, with a ready-to-copy prompt at the end of each step.
Crucially, the plan opens by interviewing you about your business - your current intake process, your AP system and its export columns, how you name vendors and POs, your typical and peak invoice volumes, your approval and over-PO rules, and your messy edge cases (partial invoices, retainers, expenses, credit notes). It reflects a short tailored spec back to you and waits for your thumbs-up before building anything. The result is a tool shaped to how you actually pay contractors - not a generic template.
You also get a "No API yet?" fallback: even if you can't connect to your AP system today, the tool imports your PO/rate data from a Google Sheet or CSV and produces a clean approved-invoice CSV in your AP system's exact columns - so it's fully buildable and usable this weekend.
The governance it includes (this is the point)
This isn't a toy form. The plan builds in the controls finance actually needs:
- Login so only your team and your invited contractors can use it.
- Row-level security so each contractor sees only their own invoices, and your org's data stays yours.
- A complete audit trail - who submitted, who matched, who approved, and exactly when.
- A hard human-in-the-loop approval gate - the tool drafts the match, but a person confirms the work and approves before anything exports to AP.
- Duplicate guards - vendor + invoice number can't be processed twice, full stop.
Who it's for
AP and finance teams that pay contractors and 1099 vendors and today receive invoices as scattered email PDFs. If you're the person who reconciles "did we already pay this?" and chases approvals by hand, this is for you. No developer required.
You've got this - paste the first prompt and let the agent interview you.