Response Codes

We have a set of response and status codes at both the acknowledgement and callback level.

  • With the Async Payments API, the instructions will be acknowledged and the webhook will share status changes as the transaction is updated.

Successful response code

If you get a successful response with code MR101, then you know that is the final status and it was successful.

Failure response codes

If you get any ER response then the transaction has failed and the status will never change. The partner should re-initiate the transaction following resolution of the issue highlighted in the ER status description.

A transaction that receives a clear error response (any ER code) is considered failed and will not be reprocessed. Where the sender has already been charged, the partner can safely refund the sender. Where the sender has not been charged, no refund is necessary.

Pending response code

The pending response code is MR103.

A pending result may occur due to downstream systems are processing the transaction.

❗️

Note:

For pending responses, a call back will be sent to the partner when final status is confirmed.

callService Response Codes - Acknowledgement

The table below describes the available response codes in the acknowledgement level

CodeMessageDescription
100SuccessInstruction Successful
101FailInstruction unsuccessful

The status code 101 will never change status; once instruction is unsuccessful, the partner should re-initiate the transaction following resolution of the issue returned in the fail message.

The following table shows you what to do based on the fail message you get.

Fail MessageAction
Invalid CredentialsCheck password or corporate code provided if valid
Credentials required Check either password or corporateCode should be set in the request if missing
MfsSign is requiredCheck MfsSign should be set the request if missing
MfsSign is invalid generated mfsSign is not correct(refer section 4.1.1 to see how its generated
BatchId is required Check batchId should be set in the request
BatchId is Duplicated Send new batch with unique batchId
Transaction already exist with given ThirdPartySend transaction with new unique thirdparty
ThirdParty is required Check thirdParty should be set in the request
Amount is requiredAmount must be greater than zero or amount object should be set from request
Amount currency is required Amount currency should be set from the request
Amount currency code must be less or equal to 3 Currency code is in format(ISO 4217)
Recipient Account number is required If destAcctType is set to 2(bank) Recipient Account number should be set in the request
Invalid Account number provided Account number is numeric value(may be mobile wallet account or bank account) e.g 534677268
MFS Bank code is required If destAcctType is set to 2(bank) ,check MfsBankCode should be set in the request
Destination type is requiredCheck destAcctType should be set in the request
Destination type value not permitted Check destAcctType can only be either set to 1(Mobile Wallet) or 2(bank)
Amount type value not permitted Check amountType can only be either 1(Send amount) or 2(Receive (payout) amount)
Send Fee is required If amountType is set to 1(Send amount) then sendFee Object needs to be set
Send Fee Amount currency is required If amountType is set to 1(Send amount) then sendFee currency needs to be set
Send Fee Amount currency must be equal to 3 Currency code is in format (ISO 4217)
Send Fee Amount is required If amountType is set to 1(Send amount) then sendFee amount needs to be set
InstructionType is required Check instructionType object should be set in the request
FromCountry is requiredCheck fromCountry should be set in the request
Invalid fromCountry country must be in format fromCountry should be in format (ISO-31662)
Sender Name is required Check sender Name should be set in the request
Sender Surname is required Check sender Surname should be set in the request
Sender is requiredCheck Sender object missing in the request
Recipient msisdn is required if destAcctType is set to 1(mobile wallet) then recipient Msisdn needs to be set
Recipient msisdn has invalid format msisdn passed in ITU-T E.164 GSM DCS 1800 format, e.g. 250700800900
ToCountry is required Check toCountry should be set in the request
Invalid To Country country must be in format toCountry should be in format (ISO 3166-2)
Recipient Name is required Check recipient name should be set in the request
Recipient Surname is requiredCheck recipient surname should be set in the request
Recipient is required Check Recipient Object missing in the request
Exceeded Tx Limit Transactions size should not exceed the agreed amount of transactions per batch

callService Callback - Response Codes

The table below describes the available response codes in the callback sent to share status changes as the transaction is updated.

CodeMessageDescriptionAction
MR101 SuccessThe transaction has been successfully executed to the destination platform.No further action is required.
MR103PendingThe transaction was not confirmed likely due to response not being received in the expected time from the destination platform. A call back will be triggered when final status is confirmed.Call get trans status.
A call back will be triggered when final status is confirmed.
ER103Partner corridor not activeThe attempted corridor is inactive.Contact MFS Support.
ER108Subscriber not foundSubscriber not registered on destination platform.Double check the mobile number, and/or inform sending customer that the recipient account cannot be found on the destination platform, thus the transfer cannot proceed.
ER109Subscriber not authorized to receive amountAmount being sent exceeds the limit allowed for the client.Contact recipient before retry, alternatively try smaller amount.
ER110Insufficient fund in merchant accountThe transaction failed due to insufficient funds on the on the E-wallet merchant account to process the transaction.Contact MFS Support
ER111Transaction could not be executedThe requested transaction cannot be executed.Failure on receiving wallet. Refund sender.
ER200E-Wallet System errorThe transaction failed due to an error occurring on the E-Wallet platform.Failure on receiving wallet. Refund sender.
ER201MFS System errorThe transaction failed due to an error occurring on the MFS platform.Contact MFS Support.
ER202Blacklist errorThe log failed as the subscriber matched to a blacklist itemContact MFS Support.
ER203Daily Sender Velocity Limit ExceededThe log failed as the request causes the daily velocity limit to be exceeded for the senderRetry next day.
ER204Daily Recipient Velocity Limit ExceededThe log failed as the request causes the daily velocity limit to be exceeded for the recipientRetry next day.
ER205Weekly Sender velocity Limit ExceededThe log failed as the request causes the weekly velocity limit to be exceeded for the senderRetry next week.
ER206Weekly Recipient velocity Limit ExceededThe log failed as the request causes the weekly velocity limit to be exceeded for the recipientRetry next week.
ER207Monthly Sender velocity Limit ExceededThe log failed as the request causes the monthly velocity limit to be exceeded for the senderRetry next month.
ER208Monthly Recipient velocity Limit Exceeded for RecipientThe log failed as the request causes the monthly velocity limit to be exceeded for the recipientRetry next month.
ER209Transaction Max Amount exceededThe log failed as the max transaction amount will be /has been exceeded.Confirm max transaction limit, amend amount and retry.
ER212Invalid bank account numberThe bank account number provided is invalid.Confirm and provide valid bank account number and retry. Or inform sending customer that the recipient bank account number provided is invalid, thus the transfer cannot proceed.
ER213Invalid MFS Africa bank codeThe MFS Africa bank code provided is invalid.Correct mfs bank code and retry.
ER500Internal server errorThe transaction failed due to an error in the processing flow.Contact MFS Support.