Gateways
MTN MoMo
MTN Mobile Money Request to Pay - payer approves on their phone. Uganda, Ghana, Cameroon, Côte d'Ivoire, Zambia, Rwanda, Benin, Congo and more.
On this page
MTN Mobile Money Request to Pay - payer approves on their phone. Uganda, Ghana, Cameroon, Côte d'Ivoire, Zambia, Rwanda, Benin, Congo and more.
At a glance#
| Type | mtn_momo |
| Countries | Uganda, Ghana, Cameroon, Côte d'Ivoire, Zambia, Rwanda, Benin, Congo, Guinea, Liberia, Eswatini |
| Currencies | UGX, GHS, XAF, XOF, ZMW, RWF, GNF, LRD, SZL, EUR |
| Capabilities | Hosted checkoutOn-demand status verification |
| Gateway docs | momodeveloper.mtn.com/api-documentation |
Checkout experience#
No redirect. Request to Pay: the payer approves on their phone.
Configuration fields#
Enter these in the dashboard under Settings → Payment providers → MTN MoMo. Secret fields are encrypted at rest and masked after saving; leave a secret blank when editing to keep the stored value.
| Field | Type | Notes |
|---|---|---|
| Collection subscription key (Ocp-Apim-Subscription-Key)required subscriptionKey | Secret | – |
| API user (UUID)required apiUser | Text | – |
| API keyrequired apiKey | Secret | – |
| Target environment (live) targetEnvironment | Choice | X-Target-Environment for live. Sandbox mode always uses "sandbox". Options: Uganda (mtnuganda); Ghana (mtnghana); Cameroon (mtncameroon); Côte d'Ivoire (mtnivorycoast); Zambia (mtnzambia); Benin (mtnbenin); Congo (mtncongo); Eswatini (mtnswaziland); Guinea (mtnguineaconakry); Liberia (mtnliberia); Rwanda (mtnrwanda) Default: |
| Default dialling code countryCode | Text | Used to convert local numbers like 0772 123 456 to MSISDN format |
| Callback secret callbackSecret | Secret | Optional. Appended to the callback URL as ?secret= and checked on every callback. The callback host must match the providerCallbackHost of your API user. |
Every provider also has Enabled, Sandbox / test mode and Default checkout method switches.
Notification URL#
https://app.centrapoint.co.za/api/webhooks/mtn_momo?provider={providerId}Copy the exact URL, with your provider ID filled in, from Settings → Payment providers.
- Nothing to paste: CentraPoint sends the callback URL in the X-Callback-Url header of each request.
- The callback host must match the providerCallbackHost registered for your MTN API user.
- Optionally set a Callback secret; it is appended as ?secret= and checked on every callback.
How notifications are verified#
- MTN callbacks are not signed. Every callback is confirmed with GET /collection/v1_0/requesttopay/{referenceId} before a status is recorded.
- The amount and currency must match the transaction before it can be marked complete.
Going live#
- Test with sandbox credentials and Sandbox / test mode on, and confirm the notification appears as processed in the Webhook log.
- Replace the credentials with live ones and switch off Sandbox / test mode.
- Update any URL or secret configured in the gateway's portal for the live environment.
- Make a small live payment and confirm it with the Transactions API.