Response Codes

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

  • With Async Payouts, 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

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 requiredCheck 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 invalidgenerated mfsSign is not correct(refer section 4.1.1 to see how its generated
BatchId is requiredCheck batchId should be set in the request
BatchId is DuplicatedSend new batch with unique batchId
Transaction already exist with given ThirdPartySend transaction with new unique thirdparty
ThirdParty is requiredCheck 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 requiredAmount currency should be set from the request
Amount currency code must be less or equal to 3Currency code is in format(ISO 4217)
Recipient Account number is requiredIf destAcctType is set to 2(bank) Recipient Account number should be set in the request
Invalid Account number providedAccount number is numeric value(may be mobile wallet account or bank account) e.g 534677268
MFS Bank code is requiredIf 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 permittedCheck destAcctType can only be either set to 1(Mobile Wallet) or 2(bank)
Amount type value not permittedCheck amountType can only be either 1(Send amount) or 2(Receive (payout) amount)
Send Fee is requiredIf amountType is set to 1(Send amount) then sendFee Object needs to be set
Send Fee Amount currency is requiredIf amountType is set to 1(Send amount) then sendFee currency needs to be set
Send Fee Amount currency must be equal to 3Currency code is in format (ISO 4217)
Send Fee Amount is requiredIf amountType is set to 1(Send amount) then sendFee amount needs to be set
InstructionType is requiredCheck instructionType object should be set in the request
FromCountry is requiredCheck fromCountry should be set in the request
Invalid fromCountrycountry must be in format fromCountry should be in format (ISO-31662)
Sender Name is requiredCheck sender Name should be set in the request
Sender Surname is requiredCheck sender Surname should be set in the request
Sender is requiredCheck Sender object missing in the request
Recipient msisdn is requiredif destAcctType is set to 1(mobile wallet) then recipient Msisdn needs to be set
Recipient msisdn has invalid formatmsisdn passed in ITU-T E.164 GSM DCS 1800 format, e.g. 250700800900
ToCountry is requiredCheck toCountry should be set in the request
Invalid To Countrycountry must be in format toCountry should be in format (ISO 3166-2)
Recipient Name is requiredCheck recipient name should be set in the request
Recipient Surname is requiredCheck recipient surname should be set in the request
Recipient is requiredCheck Recipient Object missing in the request
Exceeded Tx LimitTransactions 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
MR101SuccessThe transaction has been successfully executed to the destination platform.No further action is required.
ER103Partner corridor not activeThe attempted corridor is inactive.Contact Onafriq 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 Onafriq 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 Onafriq platform.Contact Onafriq Support.
ER202Blacklist errorThe log failed as the subscriber matched to a blacklist itemContact Onafriq 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 Onafriq 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 Onafriq Support.