MoMo API Error response enrichment

 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.   


MoMo API SDKs offer a streamlined approach for developers using Java, PHP, Android, JavaScript, Node.js to seamlessly integrate  with MoMo Open APIs. They can create either client or server applications capable of interacting with MoMo APIs. Every language SDK support API use cases such as Transfer Disbursements, Transfer Remittance Transfers, Debit Collections, Agent Services (inclusive of Cash-In and Cash-Out), Refund, validations.Each language SDK is equipped with all the necessary libraries, reference materials, code examples, and tools that developers need for the construction of their solutions. Step 1:Before using the SDks Obtain the Subscription key with the below steps   Sign up Navigate to the products page Select drop down on product that suits the business case and subscribe Once Done, Subscription Keys are found via Using the primary Keys update the SDK Configuration with the Keys.    Step 2: Find the SDK requirements and download links via Github  below. NOTE: Sandbox Provisioning Use case is a Onetime process generating API User and API Key for the sandbox.  Ask the Community, if faced with challenges  SDK Details Java SDKRequirements Java JDK-1.8 or higher Apache Maven 3 or higherGit Hub MTN-Group/MoMoAPIs_Java_sdk (  Java Script SDKRequirements Any BrowserGit Hub MTN-Group/MoMoAPIs_Javascript_sdk ( PHP SDKRequirements PHP 5.4+ cURL PHP Extension JSON PHP ExtensionGit Hub MTN-Group/MoMoAPIs_Php_sdk ( Node.Js SDKRequirements Node.js 16.19.1 LTS or higherGit Hub MTN-Group/MoMoAPIs_Nodejs_sdk ( Android SDKRequirements Android Studio 4.0 or newer Android Platform Version: API 32 Build gradle: 7.3.0 Git Hub MTN-Group/MoMoAPIs_Android_sdk (