Mobile Money Integration

YnoPay reconciles mobile money payments in real time by parsing SMS notifications from collector phones. This guide explains how the flow works.

Architecture

  1. Merchant registers a Collector Device (Android phone with an active mobile money SIM)
  2. Customer sends a P2P transfer to the collector phone number
  3. The collector app reads the operator confirmation SMS
  4. The SMS is parsed by YnoPay's operator-specific parsers
  5. The parsed transaction is matched to a PaymentIntent
  6. A payment_intent.succeeded webhook fires

Supported operators

OperatorCountriesStatus
Orange MoneyMali, Burkina FasoLive
Moov MoneyMaliLive
WaveSenegal, Ivory CoastComing soon
MTN MoMoIvory Coast, GuineaComing soon

Setting up a collector

// 1. Create a collector device
const device = await ynopay.collectorDevices.create({
  label: 'Shop Phone - Orange',
});

// 2. Store the secret securely (shown once)
console.log(device.secret); // hmac_...

// 3. Install the YnoPay Collector app on the phone
// 4. Enter the device ID and secret during pairing
// 5. The app auto-starts SMS listening

Matching logic

YnoPay matches incoming payments to PaymentIntents using:

  • Amount — exact match to the PaymentIntent amount
  • Reference — merchant reference embedded in the SMS (if the customer included it)
  • Timing — payments received within the session window

Unmatched payments appear in the dashboard reconciliation view for manual matching.