runbookify
← All plans
Procurement & Purchasing / 3-Way Match & AP Handoff

Supplier Statement Reconciliation Tool

Match a supplier's monthly statement against your own invoice ledger, automatically surface missing invoices, paid-but-still-open items, and amount mismatches, then let a reviewer approve the right action on each gap before any email goes out.

IntermediateA weekendBuilds onNext.jsSupabaseResend
What you'll build

A web tool where you import a supplier's statement and your own invoice ledger for that supplier, match line by line on normalized invoice number and amount, and get a clean list of gaps grouped into missing-on-our-side, paid-but-open-on-theirs, and amount-mismatch. A reviewer picks the action for each gap (request the missing invoice, send remittance proof, or dispute), approves, and only then are the supplier emails drafted and sent — with a reconciliation report and CSV export for your records.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.

Before you start

  • A Supabase account (free)
  • A Vercel account (free)
  • A Resend account (free)
  • A supplier statement and your invoice ledger for that supplier (CSV or Google Sheet is fine)
  • Claude Code or any AI coding agent

The problem this kills

Once a month the supplier statement lands in your inbox: their version of every invoice, credit, and balance on your account. Somewhere in that list is a problem — an invoice they show that never reached you, a bill you paid weeks ago that they still have sitting open, or a number that just doesn't match yours. But you have no fast way to answer the only question that matters: do our records agree?

So you do it by hand. You print their statement, pull up your ledger for that supplier, and tick line by line down two lists that never quite line up — their invoice number has a leading zero yours doesn't, a credit note offsets two invoices, a partial payment makes the balance look wrong even though nothing is actually broken. It is slow, it is mind-numbing, and the failure modes are expensive: miss a real invoice and you get a dunning letter or a supply hold; pay something twice because nobody caught that it was already settled; or fire off an angry "you billed us wrong" email that turns out to be your own data-entry typo.

This is exactly the kind of rules-based, two-list reconciliation a small internal tool does far better than a spreadsheet — and you do not need to be a developer to build it.

What you'll build

A simple internal web tool for AP and procurement. You import two files — the supplier's statement and your invoice ledger for that supplier and period. The tool normalizes the invoice numbers and currency on both sides, matches them up, and sorts every line into one of three buckets: missing on our side (they show it, you don't have it), paid but open on theirs (you've settled it, their statement still shows it open), and amount mismatch (you both have the invoice but the numbers disagree). It handles the things that trip people up by hand — credit notes, partial payments, and rounding — so the gaps it shows you are real gaps, not noise.

Then comes the part that makes it safe. A reviewer opens the gap list and chooses an action for each one — request the missing invoice, send remittance proof, or dispute the amount — edits the draft wording if they want, and clicks Approve. Only then does the tool send the supplier email(s) and produce a tidy reconciliation report plus a CSV export. Nothing reaches the supplier until a person has signed off.

What's inside the Implementation Plan

The plan is a single file you paste into an AI coding agent. It opens by interviewing you about your business — which suppliers and systems you deal with, what a statement actually looks like, how your invoice numbers are formatted, how you handle credit notes and partial payments, and your nastiest reconciliation edge cases — and then tailors the data model, the matching logic, and every later step to your answers. This is a tool shaped around your AP process, not a generic template.

From there it walks the agent through the database schema, the two CSV imports with their duplicate guards, the normalize-and-match engine, the three-way gap categorization, the reviewer's decide-and-approve screen, the approved supplier emails, and the reconciliation report with CSV export. Every step ends with a ready-to-copy prompt. Because the whole thing runs on CSV in and CSV out, you can build and use it this weekend even if you have no API into your ERP or your suppliers' portals.

The governance it includes (this is the point)

This tool talks to your suppliers, so it is built like it matters: login so only your AP team can use it, row-level security so you only ever see your own organization's data, and a complete audit trail of every import, match, decision, approval, and email — who did what, and when. Nothing goes out automatically: each reconciliation is a draft until a reviewer approves the outcome and the action on every gap, and that approval is the hard human-in-the-loop gate before a single email reaches the supplier. Duplicate guards — keyed on supplier plus normalized invoice number, and on the statement period — mean the same statement can't be reconciled twice and the same invoice can't be matched against itself twice.

Who it's for

AP clerks, accounts payable leads, and procurement staff who receive supplier statements every month and have no fast, defensible way to confirm that their records agree — and who want to stop chasing phantom discrepancies and start catching the real ones. If you can explain how you tell a real gap from a harmless one, you can build this.

You've got this — open the plan, paste the first prompt, and let it interview you about your AP process.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.