Mobile money reconciliation: the blind spot of West African SMEs
By 2026, a Dakar e-commerce SME or retail merchant collects on average 60-85% of revenue through Wave Business and Orange Money. Yet most accounting firms still operate on monthly bank-reconciliation logic, while mobile money demands near-daily reconciliation to stay reliable.
Symptoms of missing or broken reconciliation:
- Unexplained gaps between the merchant dashboard and the general ledger (sometimes 200-800 KFCFA/month for an SME with 25-60 M FCFA annual revenue).
- Customer refunds booked twice (as expense AND as revenue reduction).
- Collected VAT mis-computed because operator fees are mixed with the commission.
- Trouble justifying revenue during a tax authority (DGID) audit.
This guide lays out the 7-step process we apply at client SMEs (15-200 M FCFA revenue), the most common discrepancies, and the tools (Notion, Airtable, CSV scripts) that change an accounting firm's life.
H2: The 7 steps
Step 1 — Daily statement export. Export Wave Business CSV (Dashboard → Transactions → Export CSV, D-1 period) and OM Business statement (Merchant portal → Movements → Export). Automate via cron if the merchant API allows.
Step 2 — Pull the internal sales registry. Export from e-commerce back-office (Shopify, WooCommerce, custom Next.js) or retail POS (Sage 100, Cegid). Minimum columns: order_id, total_amount, payment_method, status, created_at.
Step 3 — Automated matching by reference. For each Wave/OM transaction, find the matching order_id on the sales side. Match by external_reference (the field you injected when creating the payment, e.g. KOL-ORD-2026-08731).
Step 4 — Discrepancy identification. Three categories: (a) operator transactions with no internal sale (= off-flow customer payments to investigate), (b) internal sales without an operator transaction (= pending/abandoned orders or missed webhooks), (c) amount mismatches (= operator fees, partial refunds, currency conversion).
Step 5 — Handling fees and commissions. Wave Business charges 1% per inbound transaction, OM Business 1.5-2%. Book separately: revenue (gross sales) in 706, bank charges (operator fees) in 627. NEVER offset fees against revenue on the same account.
Step 6 — Handling refunds. A Wave refund = reverse entry: debit 706 (cancel revenue) + credit 411 (cancel customer receivable) OR credit 521 (cash outflow). Keep traceability via the refund_id linked to the original transaction.
Step 7 — Daily closing + reconciliation marking. Mark each transaction as reconciled in your tracking tool (Notion DB, Airtable, custom table). Clear customer accounts (411) per cashed sale. Weekly report of unreconciled transactions (>48h) to the CFO.
H2: Most common discrepancies
| Discrepancy | Cause | Solution |
|---|---|---|
| Wave transaction +1% vs sales | Operator fees mixed with revenue | Separate fees (627) from revenue (706) at booking |
| Sale with no matching OM transaction | Missed webhook or endpoint timeout | Check webhook_events table, manual replay |
| OM transaction with no sale | Uncleaned internal test, off-channel payment | Mark out-of-scope or create manual sale |
| Invisible refund | Refund processed off-API (from merchant app) | Sync via daily GET /refunds API call |
| Inclusive vs exclusive amounts | VAT confusion in back-office | Standardize: Wave/OM always inclusive, VAT computed on capture |
| Duplicate transaction | Webhook delivered twice (no idempotency) | Cf the webhook-idempotency article in this batch |
| EUR/FCFA conversion | Diaspora customer paid via multi-currency gateway | Book at BCEAO daily rate |
H2: Recommended operational tooling
Tier 1 — SMEs 5-25 M FCFA revenue. Google Sheets + daily manual CSV import (15 min/day). One tab per month, discrepancies tab, refunds tab. Cost: 0 FCFA. Works up to ~400 transactions/month.
Tier 2 — SMEs 25-80 M FCFA revenue. Airtable or Notion DB with automation: daily import via Zapier/n8n, formula-based matching, unresolved discrepancies view. Cost: 35-85 KFCFA/month. Recommended up to ~1,500 transactions/month.
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
Tier 3 — SMEs 80-300 M FCFA revenue. Python or Node.js script pulling Wave API + OM + back-office, writing to a PostgreSQL table, emailing the daily report, exporting OHADA-compatible. Cost: 1.8-4.5 M FCFA upfront dev + 80-180 KFCFA/month hosting and maintenance. Mandatory beyond 1,500 transactions/month.
SYSCOHADA wiring. At every step: produce accounting entries in Sage 100 or Cegid format, using accounts 521 (mobile money bank), 706 (sales), 627 (banking services), 411 (customers), 4457 (collected VAT), 658 (refunds). Any Dakar accounting firm (Mazars, KPMG, FIDAFRICA, EYC) reads this format.
H2: Typical investment to structure
| Item | Upfront | Monthly recurring |
|---|---|---|
| Airtable + n8n automation setup | 350,000 to 650,000 FCFA | 65,000 FCFA |
| Accounting team training (1 day) | 180,000 FCFA | — |
| Documented process (runbook) | 220,000 FCFA | — |
| Monthly accounting audit by external CPA | — | 280,000 to 480,000 FCFA |
| API script (Tier 3) | 1,800,000 to 4,500,000 FCFA | 80,000 to 180,000 FCFA |
Total Tier 2: 750 KFCFA setup + 345-545 KFCFA/month. ROI: avoiding a single DGID tax reassessment on under-declared VAT (typically 1.5-8 M FCFA + late penalties) covers the investment many times over.
FAQ
Daily or monthly reconciliation?
Mobile money requires daily. Transaction volume is too high and refund windows too short to wait for month-end. Monthly = discrepancies accumulate and become impossible to investigate after 4 weeks (forgotten transactions on internal operator side).
Wave and OM in the same 521 account or separate?
Separate: 5212 Wave Business, 5213 Orange Money Business. Lets you track cash by channel and reconcile independently. If one channel has a dispute, the other stays readable.
How to justify revenue during a DGID tax audit?
Keep for 10 years: (a) monthly Wave and OM CSV exports, (b) internal sales registry, (c) OHADA-compatible accounting entries file, (d) annual certificates from Wave Business and Orange Senegal. The operator can issue a revenue certificate on its channel upon request.
Are Wave/OM fees tax-deductible?
Yes, as operating expense (627 banking services). 100% deductible like any banking commission. Document line by line in case DGID demands proof.
What about micro-discrepancies < 100 FCFA?
Create a technical account 658 — reconciliation differences and book micro-gaps there (rounding, forgotten fees, FX). As long as monthly cumulative stays < 0.5% of revenue, it's acceptable. Beyond, investigate.
Let's discuss your case
If your SME collects via Wave + OM and accounting reconciliation gives you headaches, we can set up the full process (tools + automation + team training). 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.
