Skip to content

Import a Mobile Money statement

SynkriaOps ships with a dedicated Mobile Money parser (Orange Money CM in production, MTN MoMo on the roadmap) that ingests Excel and PDF wallet exports in seconds. The parser automatically detects direction (debit/credit) from the sender and recipient of each line, and separates operation fees into a distinct accounting entry.

SourceFormatDirection detection
Orange Money Cameroon — web export.xlsxSender/recipient number vs tenant IDs
Orange Money Cameroon — PDF wallet.pdfSame (pdf-parse text extraction)
MTN MoMo CameroonRoadmap
Afriland Mobile / Wave / othersRoadmap

Before importing, configure the Mobile Money account credentials in the tenant settings:

  1. Settings → Banking & Mobile Money → Mobile Money accounts.

  2. Add an account:

    • Phone number linked to the wallet (e.g. 699787694)
    • Merchant code if you use a merchant account (optional)
    • Associated treasury accounting account (typically a 521xxxx sub-account from SYSCOHADA class 5)
  3. Save. The parser uses these credentials to distinguish transactions where you are the sender (wallet debit) vs the recipient (wallet credit).

  1. Banking & Treasury → Imports → New.

  2. Pick the Mobile Money account you created above.

  3. Drag & drop the .xlsx or .pdf file exported from your Orange Money wallet.

  4. SynkriaOps parses in a few seconds (depending on size — a 500-transaction statement takes ~3 s in .xlsx, ~15 s in .pdf).

  5. The preview shows:

    • Total parsed rows
    • “Failed” status rows (automatically filtered out)
    • Detected period (start/end dates)
    • Total debits / credits
    • Chronologically reconstructed balance variance (R5 — non-blocking warning)
  6. Confirm the import. Operations are created in DRAFT status in the bank/treasury journal. You can then reconcile them against your client/supplier invoices.

The Mobile Money parser enforces 5 business rules:

RuleBehaviour
R1 — Failed statusRows with Echec status are ignored (counted in lignesRejetees)
R2 — Direction detectionDEBIT if you are the sender, CREDIT if recipient; special rules for AFRefund (operator refund → CREDIT), Afriland (bank gateway → incoming CREDIT), ROLLBACK, Cash deposit
R3 — Fee separationIf the Operation fees column > 0, an additional DEBIT entry (fees) is generated — always at your expense
R4 — Total amount column ignoredSum already broken down into amount + fees, redundancy avoided
R5 — Chronological balance validationThe end-of-statement balance is reconstructed and compared to the displayed one; any variance is reported as a non-blocking warning

A 5,000 XAF withdrawal with 79 XAF fees generates 2 accounting entries:

DateLabelDebitCreditAccount
2026-05-19Cash withdrawal - CALL BOX5,000521xxxx (your MoMo account)
2026-05-19Fees - CALL BOX796271xxxx (bank charges)

Total debit = 5,079 — passes the D=C balance check when combined with the counter-entry (typically a cash account or a supplier on payment).

ErrorCauseSolution
”Unrecognized format”Excel file manually modifiedRe-export from the wallet without altering columns
”Direction indeterminable”Non-standard sender/recipientThe row is flagged — handle it manually in the bank journal
”Balance variance X XAF”Mismatch between shown and reconstructed balanceCheck no operation was deleted manually from the statement
  • Reconciling a Mobile Money transaction with a client invoice (coming soon)
  • Configuring the Mobile Money webhook for real-time import (coming soon)
  • Treasury forecasting (coming soon)