Capability | Value |
---|---|
Processing currencies | XAF, GHS, KES, RWF, TZS, UGX |
Settlement currency | USD |
Refunds | ❌ Not supported |
Chargebacks | ❌ Not supported |
Country | Operator / Brand | provider_code | Currency | MSISDN prefix |
---|---|---|---|---|
Cameroon | MTN Mobile Money | mtn_cm | XAF | 237 |
Cameroon | Orange Money | orange_cm | XAF | 237 |
Ghana | MTN Mobile Money | mtn_gh | GHS | 233 |
Ghana | Vodafone Cash | vodafone_gh | GHS | 233 |
Ghana | AirtelTigo | airtel_gh | GHS | 233 |
Kenya | Safaricom M-Pesa | mpesa_ke | KES | 254 |
Rwanda | MTN Mobile Money | mtn_rw | RWF | 250 |
Rwanda | AirtelTigo | airtel_rw | RWF | 250 |
Tanzania | Airtel Money | airtel_tz | TZS | 255 |
Tanzania | Tigo Pesa | tigo_tz | TZS | 255 |
Tanzania | Vodacom M-Pesa | vodacom_tz | TZS | 255 |
Tanzania | AzamPesa | azampesa_tz | TZS | 255 |
Tanzania | HaloPesa | halopesa_tz | TZS | 255 |
Uganda | MTN Mobile Money | mtn_ug | UGX | 256 |
Uganda | Airtel Money | airtel_ug | UGX | 256 |
Enumeration value for this payment method is always mobile_money
. The operator is selected viapayment_method_data.mobile_money.provider_code
.
Country | Currency Code | Decimal Places (Minor Units) |
---|---|---|
Uganda | UGX | 0 |
Kenya | KES | 2 |
Tanzania | TZS | 2 |
Rwanda | RWF | 0 |
Ghana | GHS | 2 |
Cameroon | XAF | 0 |
Nigeria | NGN | 2 |
South Africa | ZAR | 2 |
Method | When to choose |
---|---|
Direct API | You host your own checkout form or integrate server-to-server. |
Checkout | Fastest path; WooshPay hosts the payment page and handles operator selection. |
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"
}
{
"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",
}
next_action.redirect_to_url.url
where they:return_url
.{
"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
}
]
}
{
"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",
}