Mesha
Recon
AI invoice reconciliation
A Mesha agent that matches bank transactions to unpaid invoices, cutting reconciliation time by 80% for client accountants.
- 80%
- reduction in reconciliation time
- 95%
- reconciliation match rate
Problem
Accountants reconciled invoices against bank activity by hand every month: pull the transactions, pull the unpaid invoices, and eyeball which payment settles which invoice.
Solution
Built the Invoice Recon agent end to end. It pulls bank transactions from Plaid connections or file uploads, fetches unpaid invoices from the Stripe-synced store, matches them with LLMs, and shows the user a preview modal before anything is reconciled.
Architecture
TypeScript/Express services on AWS sit behind a Next.js frontend. Bank transactions come from Plaid or parsed statement uploads; invoices come from the MongoDB store synced from Stripe. A matching service combines both datasets in a prompt against OpenAI and Anthropic models, and the proposed matches return through a REST endpoint to a review modal before reconciliation.
Engineering decisions
- A human reviews matches in a preview modal before reconciling, since the output touched client finances
- Combined extracted transactions and invoice data in one structured prompt instead of chaining separate classification steps
- Accepted both Plaid connections and file uploads so clients without linked bank accounts could still reconcile
Technology
TypeScript · Express · Next.js · MongoDB · PostgreSQL · AWS · OpenAI
Results
- 80% reduction in reconciliation time
- 95% match success rate on invoice recon
What Daniel learned
Matching accuracy was only half the job. The preview modal before reconciliation is what made accountants trust the agent with client books.