The verdict in three sentences
Mobile money fees are deducted at source: you sell 10,000 FCFA but only receive 9,900 FCFA in the bank, and that difference must be booked as an expense. Reliable reconciliation rests on three matched sources — the provider statement, your internal order database, the settlement bank statement — with a clear status → entry mapping. With a monthly close workflow and a hunt for pitfalls (partial payments, refunds, webhook duplicates), the residual gap drops below 0.5 %.
Mapping provider status to accounting entry
Each technical status maps to a specific entry. 2026 reference (adapt to your SYSCOHADA chart):
| Provider status | Accounting sense | Typical entry |
|---|---|---|
| completed | Receipt | Debit bank, credit sales + collected VAT |
| fee | Expense | Debit bank fees, credit bank |
| refunded | Reversal | Debit sales/VAT, credit bank |
| partial | Partial receipt | Debit bank, residual receivable |
| processing | None | Pending, out of close |
| settled (T+1/T+2) | Matching | Reconcile bank statement |
Handling fees, VAT and settlement gaps
The three sources never match to the cent unless you neutralize fees and the settlement lag. Example on a Wave sale of 10,000 FCFA:
| Item | Amount | Note |
|---|---|---|
| Sale price incl. VAT | 10,000 FCFA | Shown to customer |
| Net of VAT base | 8,475 FCFA | Incl. VAT / 1.18 |
| Collected VAT (18 %) | 1,525 FCFA | To remit |
| Wave merchant fee (~1 %) | 100 FCFA | Deductible expense |
| Net received in bank | 9,900 FCFA | At T+1 |
| Settlement lag | T+1 | Date gap to match |
The classic pitfall: counting the net received as revenue. Revenue is the incl.-VAT amount (10,000), the 100 FCFA is a separate expense, otherwise VAT and margin are wrong.
Monthly close workflow
- Export the month's Wave and OM statements (CSV/API).
- Import into the internal database and match by transaction reference.
- Isolate fees line by line as expenses.
- Process refunds and partial payments.
- Deduplicate webhook duplicates via the event_id.
- Reconcile expected net against the settlement bank statement.
- Document the residual gap (target < 0.5 %).
Mini case study
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
Fatou, owner of a ready-to-wear SME in Thiès, processed 900 transactions/month and booked receipts as net received. Result: under-declared VAT and a 2.3 % gap between accounts and bank. Applying the mapping above, she reclassified about 162,000 FCFA/month of fees as expenses, corrected her collected VAT and brought the gap to 0.3 %. Close time: from 2 days to 4 hours thanks to automated import.
FAQ
Is the net received my revenue?
No. Revenue is the incl.-VAT amount paid by the customer (10,000 FCFA), not the net after fees (9,900 FCFA). Fees are a separate deductible expense.
How do I avoid webhook duplicates in accounting?
By relying on the unique event_id stored on the technical side: an already-booked event is ignored at import time.
How do I handle 18 % VAT on mobile money?
VAT is computed on the net-of-VAT base (incl. VAT / 1.18), regardless of provider. On 10,000 FCFA incl. VAT, you collect 1,525 FCFA of VAT to remit.
What about a partial payment?
Book the receipt collected and keep a residual receivable on the customer until the balance is paid; never mark the order as fully paid.
Let's talk about your project. We automate Wave/OM import and reconciliation into your accounting, fees and VAT included. 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.
