Skip to content
luftflow
Everywhere
Start free

Connectors · Payments

MTN Mobile Money

Collect a payment the caller approves on their handset, with the sandbox keys to try it and the live ones to run it.

Collections through MTN's MoMo Open API. The caller approves the payment on
their own handset, so a collection is asked for and then checked; the
momo_collect template shows the whole conversation.

Sandbox

Set it up step by step on the connector's page asks for one key at a time
and checks each with MTN as it is pasted. In the sandbox it makes the API user
and its key from the subscription key, then tries a payment. By hand:

  1. Sign up at https://momodeveloper.mtn.com and subscribe to Collections.
    The primary key of that subscription is the subscription_key secret.
  2. Create an API user: POST /v1_0/apiuser with a fresh UUID as
    X-Reference-Id and { "providerCallbackHost": "luftflow.com" }. That
    UUID is the api_user secret.
  3. Create its key: POST /v1_0/apiuser/{api_user}/apikey. The apiKey in
    the answer is the api_key secret.

The sandbox takes EUR, its target environment is sandbox, and every number
but MTN's documented test numbers is approved at once.

Live

MTN issues production keys per country once the business is onboarded. The
host is https://proxy.momoapi.mtn.com, the target environment names the
operating company (mtnzambia, mtnuganda), and the currency is the
country's own. Each secret is the live subscription's, never the sandbox's.

Outcomes

  • Collect a payment answers 202 once the prompt is on the handset, 409
    when this session already asked, and 4xx/5xx when MTN refuses.
  • Check a payment reads SUCCESSFUL, PENDING or FAILED; MTN's own
    status field sits under body, since status at the top is the HTTP
    status.