MTN Mobile Money (MoMo)
MTN Mobile Money (MoMo)
MTN_MOMO collects through MTN’s MoMo Collections API. Centipid sends a
RequestToPay to the subscriber’s MoMo number, the subscriber approves it on
their handset, and Centipid verifies the result directly with MTN before
recording the payment or restoring service.
The gateway catalog offers MTN MoMo in Uganda, Ghana, Côte d’Ivoire, Zambia, Benin, and Cameroon.
Before you start
Your MTN account must be approved for the Collections product in the target market. Obtain these values from MTN:
| Value | Settings field |
|---|---|
| Collections subscription key | Collections subscription key |
| API user UUID | API user |
| API key issued for that user | API key |
The API user’s registered callback host must match the hostname shown on the Centipid gateway page. Production activation, credentials, settlement currency, and commercial approval are handled by the MTN operation in each country.
Connect MTN MoMo
Open the gateway
Go to Settings → Payments → MTN Mobile Money (MoMo).
Confirm the callback host
Copy the displayed callback URL when MTN asks for it. The callback host must be your current Centipid workspace hostname.
Enter the credentials
Enter the Collections subscription key, API user, and API key, then save. The subscription key and API key are handled as secret inputs.
Connect the gateway
Complete the payment-gateway change verification and connect MTN MoMo.
How settlement works
- Centipid saves the checkout reference and subscriber/package context before sending RequestToPay.
- MTN returns
202 Acceptedand prompts the subscriber’s handset. - MTN may call the workspace callback URL. Because that callback is unsigned, Centipid treats it only as a signal to query MTN.
- A background job polls MTN independently, so settlement still completes when the callback is missed or the payer closes the browser.
- Successful status creates one checkout-keyed payment and runs the normal exactly-once subscriber provisioning pipeline.
The captive payment screen also performs a throttled verified status query after the callback has been silent, so cancellation or failure can be shown promptly.
Sandbox and production
| Environment | API host | Target environment | Currency |
|---|---|---|---|
| Sandbox / non-production | https://sandbox.momodeveloper.mtn.com |
sandbox |
EUR (required by MTN sandbox) |
| Production | https://proxy.momoapi.mtn.com |
Country-specific MTN environment | Your country’s MTN settlement currency |
Sandbox payments use MTN’s published test numbers and outcomes. Never use a real subscriber wallet as a sandbox fixture.
Troubleshooting
| Symptom | What it means | What to do |
|---|---|---|
| Credentials are required when connecting | One or more Collections credentials are missing. | Re-enter all three values from the same MTN API user/subscription. |
| “Unable to authenticate with MTN Mobile Money…” | MTN rejected the subscription key, API user, or API key. | Confirm the product subscription and rotate the API key if necessary. |
| Request remains pending | The handset has not approved yet, MTN has not reached a terminal state, or MTN is temporarily unreachable. | Check the subscriber handset, then allow the built-in polling window to finish before initiating another request. |
| Callback does not arrive | MTN could not reach the registered host, or callback delivery was missed. | Confirm the API user’s callback host. Background polling still verifies settlement. |
| Production returns resource-not-found or access-denied | Sandbox credentials or the wrong country product are being used against production. | Ask the relevant MTN operation to confirm production activation and credentials. |
