Common Error Codes

The complete definitions of error codes are found in the swagger documentation. Below is the list of error codes available.

Common Error Codes

HTTP Code Error Response Code Description Action
409 RESOURCE_ALREADY_EXIST Duplicated Reference ID. Every request must have a unique reference ID; using an ID of the previous request will result in this error response. Check X-Reference ID used is unique and is in UUID V4 format
401 ACCESS DENIED DUE TO INVALID SUBSCRIPTION KEY Authentication failed.Credentials invalid.Header Ocp-APIM-Subscription-Key value is incorrect. Check the User Profile Section to verify the related product subscription key is used. Collection, Disbursement and Remittance have different subscription keys. If the primary key doesn’t work, try the secondary key. Contact MTN support if both provided keys aren't working. Sandbox subscription key are located in https://momodeveloper.mtn.com/developer Production subscription key are located in https://momoapi.mtn.com/developer
404 RESOURCE NOT FOUND Reference ID not found. Requested resource does not exist. Predominantly occurs with Get Status API and implies that the requested reference ID does not exist. This results in the Request to Debit or Transfer transaction being unsuccessful. Check if the original request to pay or the transfer (disbursement) operation was successful with response code 202.
400 REQUEST REJECTED/ BAD REQUEST Bad request. Request does not follow the specification. This relates to any of the below scenarios:
- Incorrect/wrong values in the headers, and/or the X-ref ID does not meet UUID Version 4.
- Inputting a Body in an API that is not supported e.g. /Token API
- Having unsupported special characters in the Body request for example an apostrophe (').
- Invalid currency – needs to match the target environment currency.
- More than 160 characters in the note and message; explore utilizing the notification API for increased number of characters.
- The URL posted to needs to reviewed e.g. incorrect number of forward slashes (///).
403 FORBIDDEN IP Authorization failed. IP not authorized to utilize Disbursement API. Share your originating Public IP from which the APIs are called with your MTN Account Manager.
500 NOT_ALLOWED Authorization failed. User does not have permission.The account authenticated with the Request via Token is restricted. Contact your MTN Account Manager.
500 NOT_ALLOWED_TARGET_ENVIRONMENT Value passed in header X-Target-Environment is incorrect Use the correct X-targetenvironment corresponding to below country:
- MTN Uganda= mtnuganda
- MTN Ghana= mtnghana
- MTN Ivory Coast= mtnivorycoast
- MTN Zambia= mtnzambia
- MTN Cameroon= mtncameroon
- MTN Benin= mtnbenin
- MTN Congo= mtncongo
- MTN Swaziland= mtnswaziland
- MTN GuineaConakry= mtnguineaconakry
- MTN SouthAfrica= mtnsouthafrica
- MTN Liberia= mtnliberia
For Test Environment = sandbox
500 INVALID_CALLBACK_URL_HOST Callback URL with different host name to configured for API User.
Check the Host of the Call Back URL in the request header; this needs to match what was configured on the partner portal when creating the API user and Key.
Host needs to be configured using Hostname and not IP address.
500 INVALID_CURRENCY Currency not supported on the requested account Use Currency Code specific to the Country.
503 SERVICE_UNAVAILABLE Service temporary unavailable, try again later Enquire with MTN Support.

Error Responses

Common Error Responses with Action

Type Description Action
INTERNAL_PROCESSING_ERROR Default or Generic error code used when there is no specific error mapping. This predominantly occurs due to insufficient customer funds to complete the transaction.
Also related to service denied or Wallet Platform is not reachable.
Advice customer to ensure they have sufficient funds to complete the transaction. Also request the customer to retry the transaction. If the problem still occurs with sufficient customer funds, please contact your MTN Account Manager for further investigation.
PAYEE_NOT_FOUND The MSISDN being paid to is invalid. MSISDN format must include country code. MSISDN is not registered for Mobile Money Service.
PAYER_NOT_FOUND MSISDN of the number from whom the money was requested in invalid. MSISDN format must include country code.MSISDN is not registered for Mobile Money Service.
COULD_NOT_PERFORM_TRANSACTION This can be attributed to transaction timeout. This predominantly occurs with a delay to approve a transaction within the given time frame (5 minutes). Advise customer to try again and approve transaction within 5 minutes.

Other Error Responses

Type Description
NOT_ALLOWED Authorization failed. Insufficient permissions
NOT_ALLOWED_TARGET_ENVIRONMENT Access to target environment is forbidden
INVALID_CALLBACK_URL_HOST Callback URL does not match the configured value
INVALID_CURRENCY Currency not supported
SERVICE_UNAVAILABLE Service temporarily unavailable, try again later
NOT_ENOUGH_FUNDS The payer does not have enough funds
PAYER_LIMIT_REACHED The payer's limit has been breached
PAYEE_NOT_ALLOWED_TO_RECEIVE The payee is unable to receive funds
PAYMENT_NOT_APPROVED Payment was not approved
RESOURCE_NOT_FOUND Requested resource was not found
APPROVAL_REJECTED The approval was rejected
EXPIRED The requested resource has expired
TRANSACTION_CANCELED The transaction was canceled by the initiator
RESOURCE_ALREADY_EXIST Duplicated reference id. Creation of resource failed
TRANSACTION_NOT_COMPLETED Transaction is pending and not completed
TRANSACTION_NOT_FOUND The transaction could not be found
INFORMATIONAL_SCOPE_INSTRUCTION Informational scopes shall not have scope instructions
MISSING_SCOPE_INSTRUCTION Missing scope instruction
MORE_THAN_ONE_FINANCIAL_SCOPE_NOT_SUPPORTED More than one financial scope is not supported
UNSUPPORTED_SCOPE_COMBINATION The combination of scope types are not supported
CONSENT_MISMATCH A value in request mismatch with a value in consent
UNSUPPORTED_SCOPE The scope is not supported
NOT_FOUND Requested resource was not found