runbookify
← All plans
Payroll & Timekeeping / Expense Reimbursement

Corporate Card Reconciler: End the Monthly Missing-Receipt Hunt

Import the corporate-card statement, auto-match every charge to a cardholder's receipt and coding, flag the gaps, and make each cardholder attest before finance closes the statement — no charge posts to the books unsubstantiated.

IntermediateA weekendBuilds onNext.jsSupabaseResend
What you'll build

A web tool where finance imports the card statement, the tool fuzzy-matches each charge to a cardholder-uploaded receipt and category, flags unmatched charges and missing receipts, each cardholder attests to their charges, finance approves the closed statement, and the tool exports a GL-coded CSV plus a missing-receipt report.

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 corporate-card statement export (CSV)
  • Your GL / expense category list
  • Claude Code or any AI coding agent

The problem this kills

Every month-end, someone in finance becomes a receipt detective. The corporate-card statement lands, and the hunt begins: whose charge is this $312 at some vendor nobody recognizes? Where's the receipt? What GL account does it hit? Is that a personal charge that slipped through? You ping cardholders one by one, chase the stragglers for days, eyeball a pile of receipt photos against statement lines, and re-key it all into a coded spreadsheet so the books — and the auditor — are satisfied.

It's slow, it's nagging, and the stakes are real: an unsubstantiated charge that can't survive an audit, a personal expense that should have been paid back, a charge coded to the wrong account, or a statement closed with three receipts still missing. You don't need to live in this loop, and you don't need to be a developer to fix it.

What you'll build

A simple internal web tool. Finance imports the card statement CSV. The tool dedupes by card + transaction ID, then fuzzy-matches each charge to a receipt and category the cardholder submitted — comparing amount, date, and merchant — and shows a confidence score so a human can confirm or reject each match. Anything that doesn't match lands on a clear exceptions list: charges with no receipt, receipts with no charge, possible personal charges, and transactions that need a split. Each cardholder logs in, reviews their own charges, uploads any missing receipts, picks the GL category, and attests (business purpose confirmed, receipt attached). Once a cardholder's charges are all attested, finance reviews the closed, fully-coded statement and clicks Approve. Only then does the tool export a GL-coded statement CSV ready to post and a missing-receipt report for anything still outstanding.

What's inside the Implementation Plan

The downloadable plan is a step-by-step file you paste into an AI coding agent. It opens by interviewing you about your business — which card program you export from and exactly what your statement columns are named, how cardholders are identified, your real GL/category list, your typical and peak monthly transaction counts, your attestation wording, your split and personal-charge rules, and your messy edge cases — and then it tailors the data model, the matching logic, and every later step to your answers. This is not a generic template; the agent reflects a short spec back to you and waits for your thumbs-up before it builds anything. From there it walks the agent through the statement import, the fuzzy-match engine with human confirmation, the cardholder attestation-and-coding screen, the finance review-and-approve gate, the GL-coded export, and the missing-receipt report — each step with a ready-to-copy prompt. There's also a fallback so you can build the whole thing today even with no card API.

The governance it includes (this is the point)

This is real finance tooling, so it ships with the controls an AP team needs: login so only your team can use it, row-level security so cardholders only ever see their own charges and finance sees the whole org, a complete audit trail of who matched, attested, edited, and approved what and when, a hard human-approval gate so no statement is closed and no GL export is produced until cardholders attest and finance signs off, and duplicate guards keyed on card + transaction ID so the same charge can't be imported or processed twice. The AI only proposes receipt matches; a person confirms every one before it counts.

Who it's for

AP leads, controllers, and finance teams who own the monthly corporate-card close and must substantiate every charge for the books and the auditor. If you can describe how your team matches receipts and codes charges today, you can build this.

You've got this — start with the plan, paste the first prompt, answer the interview, and you'll watch this month's statement match itself the same afternoon.

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.