14h→22min
end-to-end reconciliation time
99.98%
match-rate accuracy
-60%
manual exception reviews
0
missed settlement windows since go-live
The Client
A FinTech scale-up providing payment processing and merchant services to mid-market businesses across North America. Processing volume had grown past several million transactions per day across multiple acquirers, card networks and bank partners — each with its own file formats, cut-off times and quirks.
The Challenge
Reconciliation ran as a nightly batch job written years earlier: settlement files from a dozen sources were parsed, matched against internal ledger entries, and exceptions were dumped into spreadsheets for the finance team. As volume grew, the batch window stretched to 14 hours. On high-volume days it overran into business hours, delaying merchant payouts and finance close. Match logic lived in thousands of lines of undocumented SQL, and every new payment partner meant weeks of brittle custom parsing.
The finance operations team was manually reviewing hundreds of exceptions a day, most of which turned out to be timing artifacts rather than genuine discrepancies. The company needed reconciliation that kept pace with the business — without pausing partner onboarding while it was rebuilt.
What We Did
Dillo scoped the rebuild as a fixed-bid outsourcing project with a defined cutover plan, running the new pipeline in shadow mode against the legacy batch until the numbers agreed. The delivery team combined senior C#/.NET engineers, a data engineer, and a QA engineer with payments-domain experience.
- Replaced the nightly batch with an event-driven pipeline on Kafka: ledger events and normalized settlement records flow into topic-per-source streams and are matched continuously as files arrive.
- Built C#/.NET matching services with explicit, versioned match rules — tolerance windows, multi-leg matching, FX handling — replacing the undocumented SQL.
- Designed a PostgreSQL reconciliation store with full audit history for every match decision, supporting the client's PCI-DSS-aware practices: encrypted data at rest and in transit, tokenized PANs only, least-privilege access, and complete audit logging.
- Added an exception triage UI that classifies breaks (timing, amount, missing leg) and auto-clears self-resolving timing exceptions instead of queueing them for humans.
- Ran six weeks of shadow-mode parallel runs, reconciling the new pipeline against the legacy batch daily before cutover.
- After go-live, transitioned to an augmented follow-on team of three engineers who now own new partner onboarding and pipeline evolution inside the client's org.
The Results
- End-to-end reconciliation dropped from a 14-hour batch to roughly 22 minutes after the last settlement file lands — finance starts the day with reconciled books.
- Automated matching reached 99.98% match-rate accuracy during parallel runs and has held at that level in production.
- Manual exception reviews fell by about 60%, freeing the finance ops team from spreadsheet triage.
- New settlement sources are onboarded through configuration and a normalization adapter in days, not weeks.
- No missed merchant settlement windows since cutover, through two peak seasons.
Figures reflect outcomes reported for this engagement; they are project results, not audited benchmarks.
Tech Stack
Services Used
Software Outsourcing (fixed-bid platform rebuild) followed by IT Staff Augmentation for the embedded follow-on team.