WooshPay OpenAPI
Product DocumentAPI ReferenceJS SDK ReferenceSaaS Platform Integration
Product DocumentAPI ReferenceJS SDK ReferenceSaaS Platform Integration
Back to WooshPay Website
  1. Mobile Money
  • Online payments
    • Quick Start
    • Integration overview
    • Wooshpay JS SDK
    • Wooshpay Checkout
    • Wooshpay Direct API
    • Payment Link
    • Authorize and capture
    • Build subscriptions integration
    • Testing cards
  • After the payment
    • Webhook
    • Check the webhook signatures
    • 校验webhook签名
  • Add more payment methods
    • Supported payment method
    • Cards
    • Wallets
      • Alipay
      • Alipay HK
      • Apple Pay
      • Google Pay
      • Wechat Pay
      • 微信支付
      • Kakao Pay
      • DANA
      • Boost
      • Grabpay
      • Mcash
      • Touch'n Go
      • ShopeePay
      • UnionPay
      • 9Pay
      • OVO
      • GCash
      • TrueMoney
    • Bank redirects
      • Bancontact
      • BPI
      • Trustly
      • EPS
      • Giropay
      • iDEAL
      • Przelewy24
      • FPX
    • Buy Now Pay Later
      • Klarna
    • Bank Debits
      • Sepa Direct Debit
    • Bank Transfer
      • Bank Transfer in Europe
      • Bank Transfer in United Kingdom
      • Bank Transfer in Indonesia
      • Bank Transfer in Nigeria
      • Bank Transfer in South Africa
    • QR Payments
      • QRIS
      • PromptPay
    • Real-time payments
      • PIX
      • PayNow
      • UPI
      • SPEI
    • Mobile Money
      • Mobile Money - Multi-Country Integration Guide
  • More payment scenarios
    • Set up future payments
    • Save payment method during payment
    • Save Card with Wooshpay Checkout
  • SaaS platform integration
    • Shopify Plugin
    • WooCommerce
    • Shoplazza 店匠
    • Shopastro 星盘
    • Shopline Plugin
    • Sage Connection
  • Payouts
    • Overview
    • Cameroon
    • Europe
    • Ghana
    • Kenya
    • Nigeria
    • Rwanda
    • South Africa
    • Tanzania
    • Uganda
    • United Kindom
    • United States of America
    • Monitor Your Payout Results
  • Resources
    • Supported currencies
  1. Mobile Money

Mobile Money - Multi-Country Integration Guide

This document consolidates all Mobile Money operators currently supported by WooshPay across Cameroon, Ghana, Kenya, Rwanda, Tanzania and Uganda.

Features (overview)#

CapabilityValue
Processing currenciesXAF, GHS, KES, RWF, TZS, UGX
Settlement currencyUSD
Refunds❌ Not supported
Chargebacks❌ Not supported

Supported operators & provider-codes#

CountryOperator / Brandprovider_codeCurrencyMSISDN prefix
CameroonMTN Mobile Moneymtn_cmXAF237
CameroonOrange Moneyorange_cmXAF237
GhanaMTN Mobile Moneymtn_ghGHS233
GhanaVodafone Cashvodafone_ghGHS233
GhanaAirtelTigoairtel_ghGHS233
KenyaSafaricom M-Pesampesa_keKES254
RwandaMTN Mobile Moneymtn_rwRWF250
RwandaAirtelTigoairtel_rwRWF250
TanzaniaAirtel Moneyairtel_tzTZS255
TanzaniaTigo Pesatigo_tzTZS255
TanzaniaVodacom M-Pesavodacom_tzTZS255
TanzaniaAzamPesaazampesa_tzTZS255
TanzaniaHaloPesahalopesa_tzTZS255
UgandaMTN Mobile Moneymtn_ugUGX256
UgandaAirtel Moneyairtel_ugUGX256
Enumeration value for this payment method is always mobile_money. The operator is selected via payment_method_data.mobile_money.provider_code.
Currency & Decimal Places (Minor Units)
CountryCurrency CodeDecimal Places (Minor Units)
UgandaUGX0
KenyaKES2
TanzaniaTZS2
RwandaRWF0
GhanaGHS2
CameroonXAF0
NigeriaNGN2
South AfricaZAR2

Integration methods#

MethodWhen to choose
Direct APIYou host your own checkout form or integrate server-to-server.
CheckoutFastest path; WooshPay hosts the payment page and handles operator selection.

Direct API#

Create a PaymentIntent#

request:
POST /v1/payment_intents
{
  "amount": 300000,           
  "currency": "UGX",               
  "confirm": true,
  "payment_method_data": {
    "type": "mobile_money",
    "mobile_money": {
      "phone_number": "256777000001", // MSISDN prefix without "+" sign
      "provider_code": "mtn_ug"       // see table above
    }
  },
  "merchant_order_id": "order_12345",
  "return_url": "https://yourwebsite.com"
}
response:
{
    "id": "pi_1953748853609988096",
    "object": "payment_intent",
    "created": 1754645000000,
    "livemode": false,
    "currency": "UGX",
    "amount": 300000,
    "status": "requires_action",
    "merchant_order_id": "order_12345",
    "client_secret": "pi_1953748853609988096_secret_yPSfRXfOSMs1ZApE8H7A1Rak",
    "next_action": {
        "type": "redirect_to_url",
        "redirect_to_url": {
            "url": "https://XXXXXXXXX"
        }
    },
    "payment_method_types": [
        "mobile_money"
    ],
    "confirmation_method": "automatic",
    "return_url": "https://yourwebsite.com",
    "payment_method": "pm_1953748853467381760",
    "capture_method": "automatic",
}
The customer is sent to next_action.redirect_to_url.url where they:
1.
Review the transaction details shown by the operator.
2.
Approve via STK Push, USSD, or in-app confirmation.
3.
Are redirected back to return_url.

Checkout#

38768569-aa5a-4fd1-812b-6d818dd58e59.png

Create a Session#

request:
{
    "mode": "payment",
    "success_url": "https://yourwebsite.com/success",
    "cancel_url": "https://yourwebsite.com/cancel",
    "payment_method_types": [
        "mobile_money"
    ],
    "line_items": [
        {
            "price_data": {
                "currency": "KES",
                "unit_amount": 1000,
                "product_data": {
                    "name": "Kettle",
                    "images": [
                        "https://appletservice.oss-accelerate.aliyuncs.com/checkout_0517/icon0720/pic.png"
                    ]
                }
            },
            "quantity": 1
        }
    ]
}
response:
{
    "id": "cs_1953751544205672448",
    "object": "checkout.session",
    "created": 1754645642000,
    "currency": "KES",
    "mode": "payment",
    "status": "open",
    "url": "https://checkouttest.wooshpay.com/pay/cs_test_1953751544205672448?key=cGtfdGVzdF9OVEUzTnpBM01qazBNVE14TnpJNU1qUTBNVFl4T25ORFFVVjRZMUZFVlVWdWMwRjBUMHBXT1dGdWFsQTRRakUzTVRFd01EazNOekF5TlRF",
    "cancel_url": "https://yourwebsite.com/cancel",
    "line_items": {
        "object": "list",
        "data": [
            {
                "id": "li_1953751544209866752",
                "object": "item",
                "currency": "KES",
                "description": "Kettle",
                "price": {
                    "id": "price_1953751544209870848",
                    "object": "price",
                    "created": 1754645642000,
                    "livemode": false,
                    "active": true,
                    "currency": "KES",
                    "product": {
                        "id": "prod_1953751544214061056",
                        "object": "product",
                        "created": 1754645642000,
                        "livemode": false,
                        "active": true,
                        "name": "Kettle",
                        "updated": 1754645642000,
                        "images": [
                            "https://appletservice.oss-accelerate.aliyuncs.com/checkout_0517/icon0720/pic.png"
                        ]
                    },
                    "type": "one_time",
                    "unit_amount": 1000,
                    "billing_scheme": "per_unit"
                },
                "quantity": 1,
                "amount_subtotal": 1000,
                "amount_total": 1000
            }
        ]
    },
    "payment_intent": "pi_1953751544658657280",
    "payment_method_types": [
        "mobile_money"
    ],
    "local_payment_method_types": [],
    "payment_status": "unpaid",
    "success_url": "https://yourwebsite.com/success",
    "amount_subtotal": 1000,
    "amount_total": 1000,
    "amount_original_subtotal": 1000,
    "amount_original_total": 1000,
    "billing_address_collection": "auto",
    "expires_at": 1754732041744,
    "client_secret": "pi_1953751544658657280_secret_toXJ74QFiFwLR2RF1WS2dvlZ",
}

Next step#

You can add more features to your integration as needed

Webhook#

Listen to events on your WooshPay account so your integration can automatically trigger reactions. Create a webhook that mainly focuses on enabled_events and url.
Modified at 2025-08-08 09:42:46
Previous
SPEI
Next
Set up future payments
Built with