The verdict in three sentences
As soon as you collect through several mobile money operators, manual reconciliation becomes a time sink and a source of errors. In 2026, the reliable approach combines real-time webhooks, a transaction ↔ order matching engine by reference, and explicit handling of failures and timeouts. Result: from 15-30 hours/month of manual matching to under 2 hours of control, with a matching rate above 98%.
Where discrepancies come from and how to solve them
Unmatched payments aren't random: they follow recurring patterns. Identifying the source is already 80% of the solution.
| Discrepancy source | Common cause | Automated solution |
|---|---|---|
| Lost callback | Network timeout / URL down | Backup Transaction Status polling |
| Double payment | Customer retries after lag | Idempotency key per order |
| Partial amount | Incomplete payment | Tolerance rule + alert |
| Missing reference | Customer pays without note | Match by amount + time window |
| Orphan payment | No linked order | Targeted manual review queue |
| Untracked refund | B2C outside system | Payout webhook recording |
Manual vs automated cost
The hidden cost of manual reconciliation is measured in hours and errors. Here's a 2026 ballpark for a store handling ~2,000 transactions/month across 3 operators.
| Item | Manual | Automated |
|---|---|---|
| Matching hours / month | 15-30 h | 1-2 h |
| Labor cost / month | ~150,000 FCFA | ~15,000 FCFA |
| Matching rate | 95-98% | 98-99.5% |
| Monthly close delay | 3-5 days | Real time |
| Double-payment detection | Random | Immediate |
| Treasury error risk | High | Low |
Over a year, moving from manual to automated can represent ~1,600,000 FCFA in labor savings, not counting payments recovered thanks to backup polling.
Recommended architecture
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
The system's core: each operator sends a webhook to a dedicated URL, normalized into a common format (amount, reference, operator, status, timestamp). A matching engine links the transaction to the order via a unique reference injected at checkout. In parallel, a scheduled job queries the status of transactions left pending (lost callbacks). A treasury dashboard shows in real time: collected, pending, failed, to review.
Mini case study
Jason runs an e-commerce operation in Senegal and Côte d'Ivoire: 2,000 transactions/month across Wave, Orange Money and MTN MoMo. Before automation, his team spent 24 hours/month matching and left ~4% of transactions unmatched (80/month). After setting up webhooks + matching + polling, matching drops to 2 hours/month and the match rate rises to 99%. Gain: ~165,000 FCFA/month in labor and 76 transactions correctly linked each month.
FAQ
Is a webhook enough to reconcile? No. Webhooks can be lost (timeout, outage). You need backup polling via Transaction Status to guarantee 98%+ matching.
How do you link a payment to the right order? By injecting a unique reference at checkout, passed to the operator and returned in the webhook. As backup: matching by amount and time window.
What about orphan payments? Route them to a targeted manual review queue, usually less than 1% of volume, instead of matching everything by hand.
Does automation handle multiple countries? Yes, each operator/country has its config but feeds a single dashboard in a normalized currency (FCFA).
How long to set this up? Depending on the number of operators, plan 2 to 4 weeks for reliable, tested multi-operator reconciliation.
Let's talk about your project. We automate your multi-operator mobile money reconciliation with webhooks, matching and a real-time treasury dashboard. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.

