Services Clients & Reviews Blog About Contact Chat on WhatsApp
Insight

How to Integrate MTN Mobile Money & Orange Money Payments in Cameroon (API Guide)

calendar_today {{ object.published_date|date:"M d, Y" }} schedule 5 min read

Accepting digital payments in Cameroon is the single most critical capability for any e-commerce store, mobile application, or SaaS platform. In this developer guide, we break down how to architect and implement robust MTN Mobile Money (MoMo) and Orange Money payment workflows.

Developer Guide Index:

  • Architecture Overview: Direct Telco APIs vs Unified Payment Gateways.
  • The USSD Push Flow: How user authorization works on mobile devices.
  • Webhook Security: Verifying callbacks and preventing double-spending.
  • Handling Network Timeouts: Implementing idempotent retry mechanisms.
  • Financial Reconciliation: Automating receipts, logs, and bank payouts.

1. Direct Telco APIs vs Unified Payment Gateways

When integrating Mobile Money in Cameroon, software developers have two primary architectural choices:

  1. Direct Telco API Integration (MTN MoMo API & Orange Money WebPay): Requires opening corporate merchant accounts directly with MTN Cameroon and Orange Cameroun. While this eliminates aggregator transaction fees, it requires negotiating two separate corporate contracts, maintaining two separate API codebases, and handling telco downtime independently.
  2. Unified Aggregator APIs (Campay, CinetPay, Notch Pay, Monetbil): A single unified REST API that accepts both MTN MoMo and Orange Money simultaneously. Highly recommended for 95% of startups and businesses due to rapid integration (typically 1–2 days), unified dashboards, and automatic failover routing.

2. The USSD Push Payment Workflow

The frictionless payment experience in Cameroon relies on the USSD Push (STK Push) mechanism:

  1. Your web or mobile checkout collects the customer's phone number and the transaction amount in FCFA (XAF).
  2. Your backend sends an authenticated POST request to initiate the collection.
  3. Within 2 to 5 seconds, the customer's phone vibrates and displays an official telco prompt: "Confirm payment of X,XXX XAF to [Your Business Name]? Enter Mobile Money PIN:".
  4. Once the user confirms with their PIN, the telco deducts the funds and notifies your server via an asynchronous webhook callback.
// Example: Initiating a payment request (Node.js / Express)
const response = await axios.post('https://api.gateway.cm/collect', {
    amount: 15000, // Amount in XAF
    currency: 'XAF',
    from: '237675456136', // Customer phone number
    description: 'Annual Subscription - Order #1042',
    external_reference: 'ORDER-2026-0906-ABC'
}, {
    headers: { 'Authorization': `Token ${API_KEY}` }
});

3. Webhook Security and Preventing Double-Crediting

Never mark an order as paid purely on the client-side redirect! Mobile connections can drop mid-transaction, and malicious actors can spoof client responses.

  • Asynchronous Webhook Listener: Expose a dedicated HTTPS endpoint (e.g. /api/payments/webhook/) that listens for verification callbacks.
  • Signature Verification: Verify the HMAC SHA-256 signature sent in the webhook header using your private webhook secret.
  • Idempotency: Ensure that receiving the same webhook callback twice does not duplicate user credits or double-ship products. Store the unique transaction_id and check database state before executing fulfillment.

4. Handling Network Timeouts & Edge Cases

In Cameroon, network conditions mean that up to 3% of USSD prompts may experience latency or temporary timeouts where the telco processes the transaction but the webhook is delayed by a few minutes.

To build a rock-solid FinTech experience:

  • Provide a background polling worker (e.g. Celery in Django) that queries the payment status if no webhook is received within 90 seconds.
  • Display an informative pending screen: "Please check your phone for the Mobile Money prompt. Once confirmed, this screen will update automatically."
  • Enable instant WhatsApp customer support on the checkout page so buyers can immediately share transaction IDs if they encounter connectivity issues.

5. Deploying FinTech & E-Commerce with NjokaLab

At NjokaLab, we have architected and deployed high-concurrency payment engines processing millions of FCFA across Cameroon and Central Africa.

From automated recurring billing and multi-vendor marketplace escrow to instant USSD checkout for mobile apps, our engineering team guarantees bank-grade security, full regulatory compliance, and rapid time-to-market.

Share Guide: WhatsApp Share
Reviewed by NjokaLab Engineering Team

Ready to Build or Host in Cameroon?

Discuss your project specs, tech stack, and timeline directly with our lead architects on WhatsApp.

Chat with Us Now
Direct WhatsApp Hotline

Build or Host in Cameroon

Have a mobile app to build or a website to host in Cameroon? Connect directly with our lead software architects on WhatsApp for instant technical scoping and estimates.

Chat on WhatsApp (+237)

Stay Updated

Get the latest articles, research, and community updates delivered straight to your inbox.