The verdict in three sentences
Accepting MTN MoMo, Airtel Money and Moov on a single store means you collect more, but you receive three independent payout flows with different delays and formats. Without a reconciliation method, a Ugandan merchant lets 2 to 4 % of revenue slip into gaps that are never explained. The fix comes down to one key: a unique merchant reference pushed into every transaction, then pulled back from every settlement report.
Three operators, three payout calendars
The trap is believing that a payment confirmed on the customer side equals money in the bank. In reality each operator aggregates your sales and pays you the net after commission, on its own schedule.
| Operator | Settlement delay | Merchant commission | Report format | Merchant cap/day |
|---|---|---|---|---|
| MTN MoMo | T+1 (24h) | 1.5 % | API + CSV | UGX 20,000,000 |
| Airtel Money | T+2 (48h) | 1.5 % | CSV portal | UGX 15,000,000 |
| Moov | T+3 (72h) | 1.8 % | API (delayed) | UGX 10,000,000 |
These are 2026 orders of magnitude and vary with your merchant contract, but the logic holds: the slower the payout, the higher the commission tends to run, and the harder reconciliation gets because Monday's sale only lands on your account by Thursday.
The merchant reference: your through-line
The only reliable link between a transaction and its settlement line is the ID you generate. An operator ID is not enough because it differs from one report to the next.
| Field to store | Role | Example |
|---|---|---|
| merchant_ref | Unique matching key | ORD-2026-04821 |
| operator | Filter the right flow | mtn / airtel / moov |
| amount_gross | Customer amount | UGX 90,000 |
| amount_expected_net | Expected net after commission | UGX 88,650 |
| status | pending / confirmed / settled | settled |
Reconciliation becomes a simple LEFT JOIN between your orders table and the settlement CSV on merchant_ref. Any line without a match = a gap to investigate: higher-than-expected commission, late payout, or phantom transaction.
Mini case study
Grace runs a cosmetics shop in Kampala. In April she collects 180 orders worth UGX 16,200,000 split 55 % MTN, 30 % Airtel, 15 % Moov. Without reconciliation she only sees UGX 15,780,000 credited and assumes she's been robbed.
Applying merchant_ref matching, she breaks it down: legitimate commissions 8,910,000 x 1.5 % + 4,860,000 x 1.5 % + 2,430,000 x 1.8 % = UGX 250,290. That leaves UGX 169,710 of real gap, of which 3 Moov orders still at T+3 (UGX 120,000 arriving next day) and one genuine dispute of UGX 49,710 to claim. Without a method, she would have written off the full UGX 420,000.
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
FAQ
Why don't today's sales show up in my balance?
Because settlement is deferred: MTN pays at T+1, Airtel at T+2, Moov at T+3. A Friday Moov sale may only arrive Monday, a 72-hour cash-flow gap you must plan for.
What is a normal reconciliation gap rate?
A raw gap of 2 to 4 % is common before analysis, but after breakdown the truly unexplained gap should fall under 0.5 %. Beyond that, there is a merchant configuration issue or a truncated report.
Can I reconcile fully via API without CSV?
MTN and Airtel expose settlement APIs, but Moov often still relies on a CSV portal export in 2026. Plan a normalized CSV import alongside your API calls.
What do I do with a settlement line that has no matching order?
It is usually an order whose confirmation webhook was lost: the sale is real, only your system ignores it. Replay the event from the merchant_ref to mark it confirmed before classifying it as a dispute.
How long should I keep settlement reports?
Keep at least 24 months of CSVs and transaction logs to cover a tax audit and any late dispute. Structured storage saves you from digging through unreadable PDFs a year later.
Let's talk about your project. We wire your multi-wallet store with an automatic reconciliation dashboard keyed on merchant reference. 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.
