When querying for the status of a financial transaction, the result can either be SUCCESSFUL, FAILED, or PENDING.
A successful outcome means the MoMo subscriber has authenticated the transaction with the correct PIN, whereas a pending status means the MoMo subscriber is yet to approve the transaction with their PIN.
Although the labels 'successful' and 'pending' are self-explanatory, a failed response could be due to a variety of factors, such as the customer entering an incorrect PIN or their wallet lacking sufficient funds to finalize the transaction.
Developers have experienced difficulty understanding some of these error messages, particularly the INTERNAL_PROCESSING_ERROR which is a generic encompassing numerous errors with the most prevalent being a lack of sufficient funds in the MoMo subscriber's wallet.
To address this issue, our team has devised a revised error response procedure that will provide specific reasons for failure, such as insufficient funds.
This revision process is ongoing and developers who are part of our community platform will receive regular updates on these errors as they are implemented.
Please note that while HTTP Codes remain unchanged, reasons for failure will be included in the response body by the team.
Generic
{
"externalId": "04822b2a-0896-4612-9e9e-15ce749b7883", "amount": "500000000",
"currency": "UGX",
"payer": {
"partyIdType": "MSISDN",
"partyId": "25677000000"
},
"payerMessage": "test",
"payeeNote": "test",
"status": "FAILED",
"reason": "INTERNAL_PROCESSING_ERROR"
}
From the Snipped, the Reason field will be updated only.