Bonaventure OgetoBy Bonaventure Ogeto|

How to Accept Mobile Money Payments on a Website in Rwanda

To accept mobile money payments on a website in Rwanda, you have two main approaches: (1) integrate directly with the MTN MoMo API and Airtel Money API for maximum control and lower per-transaction fees, or (2) use a payment aggregator like IntouchPay, RwandaPay, or Paypack that handles both MoMo and Airtel Money through a single API. Direct integration gives you more control but requires more development work. Aggregators are faster to implement but charge higher fees. For most small to medium websites, an aggregator is the practical starting point.

The Mobile Money Payment Options in Rwanda

If you are building a website for a Rwandan business, your customers expect to pay with MoMo, Airtel Money, or both. Credit card adoption in Rwanda is low. Bank transfers are cumbersome for small purchases. Mobile money is how most Rwandans pay for things digitally.

You have three paths to accepting these payments on a website:

Path 1: Direct API integration. You integrate directly with the MTN MoMo API and the Airtel Money API. You handle each provider separately: different APIs, different credentials, different callback endpoints. This gives you the most control and the lowest per-transaction fees. It also requires the most development work and two separate approval processes.

Path 2: Payment aggregator. You integrate with one aggregator (IntouchPay, RwandaPay, Paypack, or similar) that handles both MoMo and Airtel Money behind a single API. You build one integration and support all providers. The trade-off: higher per-transaction fees and one more dependency in your payment chain.

Path 3: E-commerce plugin. If your website is on WordPress or Shopify, some aggregators offer plugins that add a mobile money payment button without custom code. This is the fastest option but the least flexible. See our guide on adding a MoMo payment button to WordPress or Shopify.

Direct API Integration: How It Works

Direct integration means your website communicates directly with the MoMo and Airtel Money APIs. Here is the flow your website needs to implement:

  1. Checkout page: Customer selects their mobile money provider (MoMo or Airtel) and enters their phone number.
  2. Payment request: Your server sends a payment request to the selected provider's API.
  3. Waiting state: Your website shows a "waiting for confirmation" screen. The customer receives a USSD prompt on their phone.
  4. Customer confirms: They enter their PIN on their phone.
  5. Callback received: The provider sends a callback to your server with the transaction result.
  6. Confirmation: Your website updates to show payment success (or failure) and proceeds with the order.

The challenge with direct integration is that you build and maintain this flow separately for each provider. MoMo and Airtel Money have different APIs, different authentication methods, and different callback formats. It is like building two payment integrations instead of one.

For a deep technical guide on each API: see our MoMo integration guide and Airtel Money integration guide.

Payment Aggregator Approach: One API, All Providers

Payment aggregators in Rwanda provide a single API that routes payments to MoMo, Airtel Money, and sometimes bank transfers. You build one integration and the aggregator handles the provider-specific complexity.

IntouchPay: One of the established aggregators in Rwanda. Supports MoMo and Airtel Money. Provides API documentation and SDKs.

RwandaPay: Another aggregator option.

Paypack: Payment aggregator serving the Rwandan market.

The aggregator approach is the right choice for most small and medium businesses in Rwanda. The slightly higher per-transaction fee is worth the dramatically reduced development time and maintenance burden. You focus on building your product while the aggregator handles the payment infrastructure.

For a detailed comparison of these options, read our IntouchPay vs RwandaPay vs direct MoMo API comparison.

Choose direct integration only if: you process high volumes (where per-transaction fee savings add up), you need maximum control over the payment flow, or you have a developer on your team who can maintain the integration long-term.

Getting the User Experience Right

The technical integration is half the work. The other half is making the payment experience smooth for your customer. A confusing payment flow leads to abandoned carts and lost sales.

Make the provider choice obvious. Show clear buttons or tabs for MoMo and Airtel Money. Use the official brand colors and logos (with permission) so customers recognize their provider instantly.

The phone number field matters. Accept Rwandan phone numbers in any common format (078XXXXXXX, +250XXXXXXXX, 250XXXXXXXX) and normalize them before sending to the API. Customers should not have to guess which format you expect.

Show a clear waiting state. After the customer submits, show a spinner or progress indicator with text like "Check your phone for a MoMo prompt." The customer needs to know they should look at their phone, not keep staring at your website.

Handle timeouts gracefully. If the customer does not confirm within a reasonable time (60 to 120 seconds), show a message explaining what happened and let them retry. Do not leave them on a loading screen indefinitely.

Confirm success clearly. When payment succeeds, show an unambiguous confirmation with the transaction reference. Send an SMS or WhatsApp confirmation if possible. Rwandan customers are accustomed to receiving transaction confirmations.

Getting Started

If you are a developer building this for a client or your own project, start with the aggregator approach. Pick one aggregator, read their documentation, and build a basic integration in the sandbox. Once the sandbox works, apply for production credentials.

If you want to learn mobile money integration from the ground up, McTaba's M-Pesa Integration course (KES 9,999, approximately RWF 100,000) teaches the complete pattern: API authentication, request handling, callback processing, error management, and going live. The course uses M-Pesa and Airtel Money, and the pattern applies directly to MoMo and to aggregator APIs (which use the same request-callback architecture internally).

The Deployment and Going Live course (KES 4,999, approximately RWF 50,000) covers the production considerations: environment management, security, monitoring, and deployment workflows that keep your payment integration reliable.

Rwandan businesses need this. The developer who can add a working mobile money payment button to a website is solving one of the most common and highest-value technical problems in the local market.

Key Takeaways

  • Rwanda has two main mobile money providers: MTN MoMo and Airtel Money. A complete payment solution should support both.
  • Direct API integration gives you full control and lower fees but requires significant development work and separate approvals from each provider.
  • Payment aggregators (IntouchPay, RwandaPay, Paypack) handle multiple providers through one API. Faster setup, higher per-transaction fees.
  • The user experience matters: customers enter their phone number on your website, receive a prompt on their phone, confirm with their PIN, and see a confirmation on your site. The flow must be clear and fast.
  • Regardless of which approach you choose, you need a server-side component. Mobile money payments cannot be processed entirely from the browser (client-side) because of security and callback requirements.

Frequently Asked Questions

Which is better for a small Rwandan business: direct API or aggregator?
Aggregator. The setup is faster, you support MoMo and Airtel Money with one integration, and the slightly higher per-transaction fee is worth the reduced development and maintenance time. Direct integration makes sense only at higher transaction volumes.
How much do mobile money payment fees cost in Rwanda?
Fees vary by provider and volume. MTN MoMo and Airtel Money charge the merchant a percentage of each transaction. Aggregators add their own margin on top. Exact rates depend on your agreement and transaction volume. Contact providers directly for current pricing.
Can I accept MoMo payments without a Rwandan business registration?
For the sandbox and development, no business registration is needed. For production, both direct integration and aggregators require some form of business verification or registration. The specific requirements vary by provider.
Do I need a server to accept mobile money payments?
Yes. Mobile money payments use a callback (webhook) pattern where the provider sends transaction results to your server. This requires a server-side component. A static website or purely client-side application cannot process mobile money payments directly.

Ready to build real-world apps?

Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.

Apply to the McTaba Marathon