DEV Community

Cover image for Mobile money is the API you're missing: shipping payments in Cameroon with CamPay
Agbor Thomas Ayuk Carmelo
Agbor Thomas Ayuk Carmelo

Posted on

Mobile money is the API you're missing: shipping payments in Cameroon with CamPay

Cover

Every tutorial assumes your users have a credit card. In Cameroon, that assumption quietly drops most of your market before the first payment screen ever renders.

I build small AI products for the Cameroonian market, and both of them — CVBoost (AI CV tailoring) and WardWatch (civic issue reporting) — take payments through CamPay, a gateway that connects your app to MTN Mobile Money and Orange Money. No cards required.

The product decision that changes everything

The usual path is: Stripe → "we don't support Cameroon" → a side quest into payment politics. The pragmatic path is CamPay.

  • CVBoost lets users pay per use with MTN MoMo or Orange Money.
  • WardWatch takes city subscriptions through the same rails — plus an ads marketplace and promotions, all mobile-money backed.

Same gateway, two very different products, one lesson: in Cameroon, mobile money is the payment API. It has ~tens of millions of users and it's how people actually pay for things every day.

What you touch when you integrate mobile money

Compared to card rails, the pattern you're signing up for is a redirect flow:

  1. User hits "pay" → your backend creates a payment request
  2. They authorize on their phone (USSD or app) with MoMo or Orange Money
  3. A webhook confirms the transaction → you fulfill the order

The parts that quietly take time: sandbox testing, idempotent webhook handling (the same webhook will arrive twice), and receipt UX that matches what users expect from mobile money — short confirmations, not invoices.

Payments are a feature your AI product inherits

Neither product ships payments as an afterthought bolted on after launch:

  • CVBoost tailors a CV against a job description using Groq's LLaMA 3.1 70B — paying users are waiting mid-application, so inference speed is part of the product.
  • WardWatch's flow includes AI categorization, priority scoring, duplicate detection, and moderation before anything is ever shown on a map.

The paid tier existed before the product was polished to death — because in this market, the ability to pay is a feature, not an admin chore.

Practical notes if you do the same

  • Offer the local payment method first — card support is a nice-to-have, mobile money is the default.
  • Webhooks are messages, not commands — make fulfilment idempotent.
  • Localize the receipt — French-first copy for Cameroon beats English boilerplate.
  • Price in the local economy — per-use pricing with mobile money beats monthly subscription friction.

Both products are live if you want to see the flows:

Feedback welcome — especially from developers who have shipped payments in markets their payment-provider docs forgot.

Top comments (0)