Developer Guide

MTN Mobile Money (MoMo) Integration Guide for Uganda (2025)

Collections, Disbursements, Remittances — everything you need to integrate MTN MoMo into your Ugandan app. Costs, sandbox, and production go-live.

SA
Steve Austine Opiyo
CEO, NeuraCreations
| April 20, 2025 | 15 min read

Quick MoMo Integration Summary

  • Integration cost: UGX 2,000,000 - 8,000,000 (~$530-$2,100)
  • Transaction fee: 1-2% for collections
  • Sandbox access: Free at momodeveloper.mtn.com
  • Production approval: 2-6 weeks from MTN
  • Development time: 1-3 weeks

MTN Mobile Money dominates Uganda's mobile payments with 70%+ market share. Over 20 million Ugandans use MoMo monthly, processing billions of UGX in transactions. If you're building any product for Uganda, MoMo integration is non-negotiable.

We serve Uganda through our Kampala service hub. For broader costs, see our Uganda software development guide.

MoMo Open API Products

Collections API

What it does: Request payment from a customer's MoMo wallet. The customer receives a prompt on their phone to authorize the payment.

Use case: E-commerce payments, bill payments, subscription charges, event tickets, school fees, SACCO deposits

Flow: Your server sends a "Request to Pay" → MTN prompts the customer → Customer enters PIN → MTN sends callback to your server

Fee: 1-2% per transaction (negotiable based on volume)

Disbursements API

What it does: Send money from your MoMo account to a customer's MoMo wallet.

Use case: Salary payments, loan disbursements, refunds, agent commissions, cashback rewards, SACCO withdrawals

Fee: Flat fee per transaction (varies by amount, typically UGX 500-2,000)

Remittances API

What it does: Cross-border money transfers between different MoMo markets.

Use case: International remittances, cross-border B2B payments

Note: Requires additional compliance approvals. Most Ugandan businesses use Collections + Disbursements.

Setup Process

Step 1: Sandbox Setup (Instant)

  1. Go to momodeveloper.mtn.com
  2. Create a developer account
  3. Subscribe to the products you need (Collections, Disbursements)
  4. Get your Primary Key and Secondary Key
  5. Create an API user and API key via the sandbox provisioning API
  6. Test with sandbox phone numbers

Step 2: Production Access (2-6 weeks)

  1. Contact MTN Uganda business team to apply for API access
  2. Submit business documentation (certificate of incorporation, TIN, bank details)
  3. MTN reviews your application and assigns a production API user
  4. Complete integration testing with MTN's team
  5. Go live with production credentials

MoMo vs M-Pesa: Key Differences for Developers

FeatureMTN MoMo (Uganda)M-Pesa Daraja (Kenya)
Auth MethodAPI Key + Subscription Key + OAuthConsumer Key + Secret + OAuth
Payment RequestRequest to Pay (async)STK Push (Lipa Na M-Pesa)
Callback StylePolling OR callback URLCallback URL only
Account TypeAPI user (provisioned)Paybill/Till shortcode
Sandbox QualityGood (full simulation)Good (some differences from prod)
Production Timeline2-6 weeks2-4 weeks
Error HandlingDetailed error codesResult codes + descriptions

For M-Pesa specifics, read our M-Pesa Daraja integration guide. For a full mobile money comparison, see M-Pesa vs MTN MoMo vs Tigo Pesa.

Integration Costs

ItemCost (UGX)Notes
Collections integration2,000,000 - 5,000,000Request to Pay + callbacks
Disbursements integration2,000,000 - 5,000,000Send money to wallets
Both (Collections + Disbursements)3,000,000 - 8,000,000Most common setup
Airtel Money add-on1,500,000 - 4,000,000Cover non-MTN users
Transaction fee1-2% per collectionNegotiable with MTN
Server hosting100,000 - 300,000/monthMust be HTTPS

Adding Airtel Money Uganda

To capture the full Ugandan market, you should also integrate Airtel Money (25%+ market share). Options:

  • Direct Airtel API: Separate integration, similar flow to MoMo. UGX 1.5M-4M additional
  • Aggregator (Beyonic, Yo! Payments, Flutterwave): One API handles both MTN and Airtel. UGX 3M-8M total. Slightly higher fees but simpler maintenance

We recommend starting with MTN MoMo direct (70%+ market share) and adding Airtel via aggregator.

Common MoMo Integration Pitfalls:
  • Sandbox vs Production differences: Sandbox auto-approves transactions; production requires real user interaction. Test flows carefully in production.
  • Request to Pay timeout: Users have 60 seconds to respond. If they don't, poll for the transaction status rather than assuming failure.
  • Currency code: Always use "UGX" — not "UG" or "Ugandan Shilling". The API is strict about currency codes.
  • Phone number format: Use format 256XXXXXXXXX (country code, no + prefix, no leading 0).
  • Idempotency: Use unique external IDs for every request. MoMo rejects duplicates, which is good for preventing double-charges.
  • Callback reliability: Callbacks can fail. Always implement polling as a fallback to check transaction status.

Frequently Asked Questions

Collections integration costs UGX 2M-5M. Both Collections + Disbursements cost UGX 3M-8M. Adding Airtel Money adds UGX 1.5M-4M. Sandbox access is free. Production approval takes 2-6 weeks from MTN.

No. MTN MoMo and Safaricom M-Pesa are completely different APIs with different authentication, endpoints, and flows. However, you can build a payment abstraction layer that presents a unified interface to your app while handling each provider separately. We do this for multi-country clients.

MTN production approval takes 2-6 weeks. Development takes 1-3 weeks in parallel using the sandbox. Total timeline from start to live: 3-8 weeks. We recommend starting the MTN application immediately while beginning development against the sandbox.

Need MoMo Integration?

We've integrated MTN MoMo for Ugandan businesses, SACCOs, and fintech startups. Get expert integration with proper error handling.

Get Free Quote
SA

Steve Austine Opiyo

Founder & CEO, NeuraCreations. Mobile money integration across East Africa.