Automated reconciliation that closes the books in minutes, not days.
STACK
Replaced a manual, spreadsheet-driven reconciliation process with an automated pipeline that matches transactions across providers, flags exceptions, and closes the books in minutes.
The finance team spent 2–3 full days every month manually matching transactions across three payment providers in spreadsheets, hunting down mismatches by eye. A single missed decimal or duplicate row could take hours to trace, and the process didn’t scale — every new provider added meant another spreadsheet tab and another day of manual work.
Built an automated matching pipeline that pulls transactions from every provider on a schedule, matches them against internal records using a tiered matching strategy (exact match, then fuzzy match on amount + date window), and surfaces only genuine exceptions for human review — instead of asking a human to check everything.
Exact matches (provider ID + amount) resolve automatically. Near-matches within a configurable date/amount tolerance get flagged for one-click human confirmation instead of a full manual hunt.
Each payment provider’s API is normalized into one internal transaction shape, so adding a new provider is a mapping function, not a new pipeline.
Built provider connectors and the normalized transaction schema.
Shipped the tiered matcher and the exception review queue for the finance team.
A tiered match strategy — exact, then fuzzy, then human — did more for finance’s trust in the system than any UI polish.
Provider APIs are never as consistent as their docs claim; the normalization layer needed far more edge-case handling than initially scoped.
If this project resonates with what you're building, let's talk. I take on a limited number of projects each quarter.
hello@martinsai.name.ng · Response within 24h