Building a Financial Reconciliation Platform, Not a Matching Engine
Most reconciliation projects start by trying to match two records. Then real financial data arrives and reconciliation stops being a matching problem and becomes a workflow problem.
Most reconciliation projects start with a simple assumption.
Find two records with matching references and mark them as reconciled.
That sounds reasonable until real-world financial data arrives.
The ERP says one thing. The payment provider says another. The settlement report says something else. The bank statement tells a different story.
And finance teams need answers before month-end closes.
At that point, reconciliation stops being a matching problem and becomes a workflow problem.
The Simplified View
Most discussions about reconciliation look something like this:
ERP
↕
BankThe expectation is straightforward.
An invoice exists in the ERP.
A payment appears in the bank.
Match them.
Done.
Unfortunately, real financial systems are rarely that simple.
The Real World
A single customer payment may appear across multiple systems.
ERP
CRM
Payment Provider
Settlement Report
Bank StatementEach system represents a different perspective of the same financial event.
The ERP represents what should happen.
The payment provider represents what was processed.
Settlement reports represent what is expected to settle.
The bank statement represents actual cash movement.
These views often disagree.
The goal of reconciliation is not just finding matches.
It is explaining those differences.
Payment Success Does Not Mean Settlement Success
One of the most common misconceptions is treating successful payment collection as the end of the workflow.
Consider a payment of ₹10,000.
Payment Provider:
Payment Success
₹10,000Settlement Report:
Gross Amount ₹10,000
Gateway Fee ₹250
GST ₹45
Net Settlement ₹9,705Bank Statement:
₹9,705A naive reconciliation system reports a mismatch.
A useful reconciliation system understands the relationship between gross collections, fees, taxes, and net settlements.
In financial operations, matching amounts is rarely enough.
Understanding the transaction lifecycle is far more important.
Reconciliation Is Not a Single Pass
Early reconciliation systems often assume a binary outcome.
Matched
Not MatchedIn practice, financial workflows need richer states.
Matched
Force Matched
Pending
Refund
Provider Charge
MismatchThis distinction becomes critical as transaction volume grows.
Some transactions can be matched immediately.
Others require additional context.
Others require human review.
And some become reconciled only after more data arrives.
This changes reconciliation from a one-time activity into an iterative workflow.
Why Pending Matters
One lesson that surprised me was how valuable the Pending state becomes.
Many transactions initially appear unmatched because:
- Settlement reports arrive later
- Exchange rates change
- References are missing
- External systems are delayed
- Additional provider data is not yet available
Treating these transactions as failures creates operational noise.
Instead, a better approach is:
Ingest
↓
Match
↓
Pending
↓
Enrichment
↓
Reconciliation AgainOver time, many pending transactions become valid matches without manual intervention.
The ability to revisit and re-evaluate decisions turned out to be more important than improving the matching algorithm itself.
Missing References Are Normal
Most matching examples assume a common identifier exists everywhere.
Reality is messier.
ERP:
INV-123Payment Provider:
PAY-456Bank:
UTR-789There is no shared key.
This forces reconciliation systems to combine multiple signals:
- Amount
- Date
- Customer
- Invoice
- Settlement Batch
- Payment Reference
A single field is rarely enough.
Successful reconciliation often depends on combining weak signals into a strong conclusion.
Exact Matching Is Not Enough
Another common mistake is relying entirely on exact matches.
Financial systems frequently require:
- Tolerance-based matching
- Many-to-one matching
- Partial settlement handling
- Refund reconciliation
- Fee reconciliation
A robust reconciliation platform usually employs multiple matching strategies rather than a single matching rule.
The challenge is not finding one algorithm.
The challenge is deciding which algorithm should be trusted under which circumstances.
Matching Is Only Half the Problem
Most engineering effort initially goes into matching.
Eventually, a different realization emerges.
Matching is not the product.
Exception management is.
The real questions become:
- Why did a match fail?
- Who should investigate it?
- What evidence exists?
- How should it be resolved?
- What audit trail should be preserved?
Without clear workflows around exceptions, even accurate matching engines become difficult to operate.
Finance teams care less about algorithm sophistication and more about explainability.
Reconciliation Ends in Accounting
Another lesson is that reconciliation does not end when records are matched.
Eventually the outcome needs to flow into downstream accounting systems.
Payment Data
↓
Reconciliation
↓
Review
↓
Approval
↓
Accounting ExportA technically correct match has little value if the result cannot be consumed by the rest of the financial workflow.
The export path is part of the architecture.
Not an afterthought.
Lessons Learned
Reconciliation Is a Workflow Problem
Matching is only one stage of the process.
Operational workflows matter just as much.
Payment Success and Settlement Success Are Different Events
Collection and settlement should be treated independently.
Pending Is a Valid State
Not every transaction can be resolved immediately.
Systems should be designed to accommodate uncertainty.
Explainability Builds Trust
Finance teams trust systems they can understand.
Opaque matching logic creates operational friction.
Data Quality Is Usually the Real Problem
Matching engines often get blamed for issues originating in source systems.
Exact Matching Scales Poorly
As transaction complexity grows, multiple matching strategies become necessary.
Final Thoughts
The hardest part of reconciliation is not matching records.
It is building a system that can explain why records did or did not match, accommodate incomplete information, support human review, and ultimately produce accounting-ready outcomes.
Once transaction volume grows, reconciliation stops being a data problem.
It becomes an operational platform.
And designing that platform is far more interesting than designing a matching engine.
