Introduction to Mobile Money

Mobile Money is one of the most popular payment methods in Africa, allowing customers to pay using their mobile phone accounts. With over 500 million registered accounts across the continent, Mobile Money has revolutionized financial inclusion and digital payments in regions with limited banking infrastructure.

What is Mobile Money?

Mobile Money is a service that allows users to store, send, and receive money using their mobile phones. Unlike traditional banking, Mobile Money doesn’t require a bank account, making it accessible to the unbanked population. Users can deposit cash at agent locations and convert it to digital currency stored in their mobile wallet.

Mobile Money has a higher adoption rate than credit cards in many African countries, making it essential for businesses targeting African markets.

Why Choose Mobile Money for Your Business?

  • Wide Reach: Access millions of customers who primarily use Mobile Money
  • High Success Rates: Typically 85-95% success rates for properly formatted transactions
  • Lower Fees: Often more cost-effective than card payments
  • Instant Confirmation: Real-time payment notifications
  • Reduced Fraud: Two-factor authentication built into the payment flow

How Mobile Money Payments Work

The Mobile Money payment flow with Notch Pay works as follows:

1

Initialize Payment

Create a payment with customer and transaction details

2

Customer Enters Phone Number

The customer enters their Mobile Money phone number

3

Payment Request

Notch Pay sends a payment request to the Mobile Money provider

4

Customer Confirmation

The customer receives a prompt on their phone to confirm the payment (USSD or app-based)

5

Payment Processing

The Mobile Money provider processes the payment (typically 5-30 seconds)

6

Confirmation

Notch Pay confirms the payment status and notifies your application via webhook

Integration Options

We offer multiple ways to integrate Mobile Money payments into your application, from no-code solutions to fully customizable API implementations.

The simplest way to accept Mobile Money payments is through Notch Pay Collect. This hosted payment page requires no coding and handles the entire payment flow.

Benefits of Using Collect

  • Quick Setup: Integrate in minutes with minimal code
  • Optimized UX: Mobile-responsive design with localized interfaces
  • Automatic Updates: Always up-to-date with the latest features
  • Reduced PCI Scope: Security handled by Notch Pay

How to Implement

// Create a payment session
fetch('https://api.notchpay.co/payment', {
method: 'POST',
headers: {
'Authorization': 'YOUR_PUBLIC_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
amount: 5000,
currency: 'XAF',
phone: '+237670000000'
callback: 'https://your-website.com/callback'
})
})
.then(response => response.json())
.then(data => {
// Redirect customer to the collect page
window.location.href = data.authorization_url;
});

Mobile Money Channel Codes

When processing a payment with Mobile Money, you need to specify the correct channel code based on the provider and country:

ProviderCountryChannel CodeCurrencyProcessing Time
MTN / OrangeCamerooncm.mobileXAF5-30 seconds
MTNCamerooncm.mtnXAF5-20 seconds
OrangeCamerooncm.orangeXAF10-30 seconds
MTNCôte d’Ivoireci.mtnXOF5-20 seconds
OrangeCôte d’Ivoireci.orangeXOF10-30 seconds
WaveSenegalsn.waveXOF5-15 seconds
OrangeSenegalsn.orangeXOF10-30 seconds
M-PesaKenyake.mpesaKES5-15 seconds
AirtelUgandaug.airtelUGX10-30 seconds
MTNGhanagh.mtnGHS5-20 seconds

Use the format {country_code}.{provider} when specifying channel codes. For example, cm.mtn for MTN Cameroon.

For a complete list of supported channels, use the Channels API.

Country-Specific Information

Mobile Money usage, regulations, and best practices vary significantly across different African countries. Below are specific details for key markets where Notch Pay operates.

Market Overview

  • Population: ~27 million
  • Mobile Money Penetration: ~40%
  • Primary Providers: MTN Mobile Money, Orange Money
  • Currency: CFA Franc (XAF)
  • Average Transaction Size: 5,000-50,000 XAF

Regulatory Information

  • Regulated by: BEAC (Central Bank)
  • KYC Requirements: Basic for small transactions, enhanced for larger amounts
  • Transaction Limits:
  • Daily: Up to 500,000 XAF
  • Monthly: Up to 5,000,000 XAF

Best Practices

  • Ensure phone numbers use the format +237XXXXXXXX
  • MTN has higher market share in anglophone regions
  • Orange has higher market share in francophone regions
  • Consider offering both MTN and Orange options
  • Peak processing times: 8-10 AM and 5-8 PM

Common Issues

  • Network congestion during evenings
  • USSD session timeouts (advise customers to respond promptly)
  • Occasional service outages during system maintenance (typically late night)

Best Practices

Integration Best Practices

Technical Implementation

  • Validate Phone Numbers: Ensure phone numbers are in the correct international format (e.g., +237XXXXXXXXX)
  • Implement Idempotency: Use unique reference IDs for each transaction to prevent duplicate payments
  • Handle Timeouts Properly: Set appropriate timeout values (we recommend 60 seconds minimum)
  • Implement Webhooks: Set up webhooks for real-time payment status updates instead of polling
  • Store Transaction References: Save all transaction IDs and references for reconciliation
  • Implement Proper Error Handling: Display user-friendly error messages based on error codes

User Experience

  • Clear Instructions: Provide step-by-step guidance on how to complete the payment
  • Local Language Support: Offer instructions in relevant local languages
  • Progress Indicators: Show clear payment status and processing indicators
  • Fallback Options: Offer alternative payment methods if Mobile Money fails
  • Confirmation Messages: Send SMS or email confirmations after successful payments
  • Save User Preferences: Remember the customer’s preferred Mobile Money provider

Security Best Practices

Fraud Prevention

  • Monitor Unusual Patterns: Watch for multiple failed attempts from the same number
  • Implement Rate Limiting: Limit the number of payment attempts per user/session
  • Verify Phone Ownership: Consider implementing OTP verification for high-value transactions
  • Keep Logs: Maintain detailed logs of all transaction attempts for auditing

Data Protection

  • Secure Storage: Never store sensitive customer data in plaintext
  • Minimize Data Collection: Only collect information necessary for the transaction
  • Use HTTPS: Ensure all API calls are made over secure connections
  • Rotate API Keys: Regularly update your API keys and keep them secure

Operational Best Practices

Business Operations

  • Test Thoroughly: Use test credentials to simulate different payment scenarios before going live
  • Monitor Success Rates: Track success rates by provider and country to identify issues
  • Reconcile Daily: Perform daily reconciliation between your system and Notch Pay dashboard
  • Customer Support: Train your support team on common Mobile Money issues and resolutions
  • Stay Updated: Keep informed about changes to Mobile Money services in your target countries

Troubleshooting

Common Issues and Solutions

Error Codes

Here are some common error codes you might encounter when processing Mobile Money payments:

Error CodeDescriptionRecommended Action
INVALID_PHONEPhone number format is incorrectValidate phone number format
UNREGISTERED_PHONEPhone not registered with providerSuggest customer to register or use different number
INSUFFICIENT_BALANCECustomer has insufficient fundsPrompt customer to top up account
TRANSACTION_LIMIT_EXCEEDEDTransaction exceeds daily/monthly limitsSuggest smaller transaction or alternative method
TIMEOUTCustomer did not respond to promptPrompt customer to check their phone
PROVIDER_ERRORError from Mobile Money providerRetry after a few minutes
CANCELLED_BY_USERCustomer rejected the paymentAsk customer if they want to try again
DUPLICATE_TRANSACTIONSame transaction attempted multiple timesCheck if previous transaction was successful

Testing Mobile Money Payments

Testing is a critical part of implementing Mobile Money payments. Notch Pay provides a comprehensive sandbox environment that allows you to simulate various payment scenarios without processing real transactions.

For detailed information on testing Mobile Money payments, including test phone numbers for all supported providers across different countries, test scenarios, webhook testing, and best practices, please refer to our comprehensive Testing Guide.

The Testing Guide includes everything you need to thoroughly test your Mobile Money integration, including test phone numbers, test scenarios, webhook testing, fraud detection information, and best practices.

Next Steps

  • Collect - Use our hosted payment page for a quick integration
  • Direct Charge - Build a custom payment experience
  • Invoices - Create and manage professional invoices
  • Webhooks - Set up webhooks for payment notifications
  • Dashboard - Learn how to use the Notch Pay Dashboard to manage transactions