Skip to main content

Products

See what’s new at our product, check the updates below

featured-image

Open API Callback Host Certificate Authority List Updated

 Callback Host Certificate Authority List Updated for MoMoOpenAPI In our ongoing effort to improve your experience with MoMo Open API services, we have  updated new Certificate Authority (CA) support to facilitate seamless callbacks.For businesses striving to create effortless interactions with customers, callbacks are essential as they offer real-time transaction status updates. This enhancement ensures that your business applications can use more variety of CAs to provide timely and precise information to the customers. Updated Certificate AuthoritiesHere is the added list of Certificate Authorities supporting the MoMo Open API:Organization Intermediate Certificate Authorities Amazon Amazon RSA 2048 M03 DigiCert Inc Encryption Everywhere DV TLS CA - G2 DigiCert Inc GeoTrust TLS RSA CA G1 DigiCert Inc Thawte EV RSA CA G2 Gandi Gandi RSA Domain Validation Secure Server CA 3 GlobalSign nv-sa GlobalSign Atlas R3 DV TLS CA 2024 Q3 GlobalSign nv-sa GlobalSign GCC R6 AlphaSSL CA 2023 Google Trust Services WE1 Google Trust Services WR3 Google Trust Services WR4 Microsoft Corporation Microsoft Azure RSA TLS Issuing CA 03 Microsoft Corporation Microsoft Azure RSA TLS Issuing CA 07 Viking Cloud, Inc. Viking Cloud Organization Validation CA Level 1  Rate-Limit The rate limits have now been raised to 150 requests per second for Get status transactions. The responses from the Get status APIs follow the same format as Callbacks. It is recommended to handle Get Status calls while adhering to the 150 TPS per IP limit.For comprehensive instructions on configuring callback on production and existing Certificate Authority, please refer to the MoMo Developer Portal:MoMo Developer Portal - Certificate Configuration Guide We anticipate that this update will greatly improve the efficiency and dependability of your transaction processing workflows. We are grateful for your ongoing support and cooperation. The newly added CAs have been incorporated into the list of those already existing. Alias CN GTS_CA_1C3 CN=GTS CA 1C3; O=Google Trust Services LLC; C=US Go_Daddy_Secure_Certificate_Authority_-_G2 CN=Go Daddy Secure Certificate Authority - G2; OU=http://certs.godaddy.com/repository/; O=GoDaddy.com, Inc.; C=US R3 CN=R3; O=Let's Encrypt; C=US Sectigo_RSA_Domain_Validation_Secure_Server_CA CN=Sectigo RSA Domain Validation Secure Server CA; O=Sectigo Limited; C=GB AmazonRCA4 CN = Amazon Root CA 4,O = Amazon,C = US AmazonCA1B CN = Amazon,OU = Server CA 1B,O = Amazon,C = US Encryption_Everywhere_DV_TLS_CA_-_G1 CN=Encryption Everywhere DV TLS CA - G1; OU=www.digicert.com; O=DigiCert Inc; C=US cPanel,_Inc._Certification_Authority CN=cPanel, Inc. Certification Authority; O=cPanel, Inc.; C=US DigiCert_SHA2_Secure_Server_CA CN=DigiCert SHA2 Secure Server CA; O=DigiCert Inc; C=US GTS_CA_1D4 CN=GTS CA 1D4; O=Google Trust Services LLC; C=US Cloudflare_Inc_ECC_CA-3 CN=Cloudflare Inc ECC CA-3; O=Cloudflare, Inc.; C=US DigiCert_SHA2_High_Assurance_Server_CA CN=DigiCert SHA2 High Assurance Server CA; OU=www.digicert.com; O=DigiCert Inc; C=US ZeroSSL_RSA_Domain_Secure_Site_CA CN=ZeroSSL RSA Domain Secure Site CA; O=ZeroSSL; C=AT AlphaSSL_CA_-_SHA256_-_G2 CN=AlphaSSL CA - SHA256 - G2; O=GlobalSign nv-sa; C=BE RapidSSL_TLS_DV_RSA_Mixed_SHA256_2020_CA-1 CN=RapidSSL TLS DV RSA Mixed SHA256 2020 CA-1; O=DigiCert Inc; C=US Thawte_RSA_CA_2018 CN=Thawte RSA CA 2018; OU=www.digicert.com; O=DigiCert Inc; C=US GoGetSSL_RSA_DV_CA CN=GoGetSSL RSA DV CA; O=GoGetSSL; C=LV Gandi_Standard_SSL_CA_2 CN=Gandi Standard SSL CA 2; O=Gandi; C=FR GlobalSign_RSA_OV_SSL_CA_2018 CN=GlobalSign RSA OV SSL CA 2018; O=GlobalSign nv-sa; C=BE DigiCert_TLS_RSA_SHA256_2020_CA1 CN=DigiCert TLS RSA SHA256 2020 CA1; O=DigiCert Inc; C=US GeoTrust_RSA_CA_2018 CN=GeoTrust RSA CA 2018; OU=www.digicert.com; O=DigiCert Inc; C=US Microsoft_RSA_TLS_CA_02 CN=Microsoft RSA TLS CA 02; O=Microsoft Corporation; C=US SSL.com_RSA_SSL_subCA CN=SSL.com RSA SSL subCA; O=SSL Corporation; C=US RapidSSL_TLS_RSA_CA_G1 CN=RapidSSL TLS RSA CA G1; OU=www.digicert.com; O=DigiCert Inc; C=US Thawte_EV_RSA_CA_2018 CN=Thawte EV RSA CA 2018; OU=www.digicert.com; O=DigiCert Inc; C=US Microsoft_Azure_TLS_Issuing_CA_05 CN=Microsoft Azure TLS Issuing CA 05; O=Microsoft Corporation; C=US GeoTrust_TLS_DV_RSA_Mixed_SHA256_2020_CA-1 CN=GeoTrust TLS DV RSA Mixed SHA256 2020 CA-1; O=DigiCert Inc; C=US E1 CN=E1; O=Let's Encrypt; C=US Sectigo_ECC_Domain_Validation_Secure_Server_CA CN=Sectigo ECC Domain Validation Secure Server CA; O=Sectigo Limited; C=GB COMODO_RSA_Domain_Validation_Secure_Server_CA CN=COMODO RSA Domain Validation Secure Server CA; O=COMODO CA Limited; C=GB entrustl1k_.entrustrootca-g2 CN = Entrust Certification Authority - L1K,OU = (c) 2012 Entrust\, Inc. - for authorized use only,OU = See www.entrust.net/legal-terms,O = Entrust\, Inc.,C = US  

Related products:Manage
featured-image

Cash Transfer Remittance API

Remittances enriched with the MoMo CashTransfer API Field Descriptions: Payer Identification Types Run in Postman  ### Error Insights Transitioning from Remittance Transfer to Remittance Cash Transfer MoMo Developer Portal - Go liveRemittances enriched with the MoMo CashTransfer API MoMo Dev Community   the Remittance API has been enriched and designed to facilitate the efficient capture of Know Your Customer (KYC) details for both the payer and payee involved in fund transfers. From the business and customer feedback with regulatory consultations, we have introduced the new MoMo CashTransfer API, set to replace the current remittance transfer API.The API offers comprehensive capabilities for B2B, C2B, and B2C, C2C transactions. Whether you're looking to invest in an overseas business, receive your salary on your local MoMo wallet from a foreign employer, or send financial support to your parents abroad, the API has you covered for these tasks and more.We highly recommend that businesses currently utilizing the remittance transfer API start planning to transition to the new MoMo Remittance CashTransfer API.The API includes several detailed fields to better support compliance and business needs.Below are the descriptions for the newly added fields:Field Descriptions:amount: This is the sum that the recipient will receive following currency conversion. currency: Specifies the type of currency in which the recipient will receive the amount. (ISO 4217 Currency Codes) payee: Contains information about the beneficiary. partyId: A unique identifier for the recipient, which could be a phone number, email, or a designated party code. partyIdType: The kind of identifier being used, such as MSISDN, EMAIL, or PARTY_CODE. externalId: This is the transaction ID used for business applications and is useful for reconciliation purposes. originatingCountry: The country from which the funds are being sent. originalAmount: The initial sum to be received before any currency conversion takes place. originalCurrency: The currency in which the original sum is denominated. (ISO 4217 Currency Codes) payerMessage: A message that will be delivered to the sender. payeeNote: A note that will be delivered to the beneficiary. payerIdentificationType: The type of identification used for the sender, with possible values including CPFA, SRSA, NRIN, etc.  Payer Identification Types CPFA - CPF account number  SRSA - SRS account number NRIN - National registration identification number OTHR - Other DRLC - Drivers license number  PASS - Passport number  SOCS - Social security number  AREG - Alien registration number  IDCD - Identity card number EMID - Employer identification number payerIdentificationNumber: The identification number that corresponds to the specified identification type. payerIdentity: The MSISDN utilized by the sender in the country where the remittance originates. Format: (ID:6873248686/MSISDN) payerFirstName / payerSurName: The given name and surname of the sender. payerLanguageCode: The linguistic code corresponding to the sender's nation. ISO_639-1 payerEmail: The sender's electronic mail address. payerMsisdn: The phone number of the sender. payerGender: The sex of the sender. (MALE, FEMALE, OTHER)Run in Postman  ​​​​​Run In Postman### Notes:Make sure to replace the example values with actual data when making API requests. Each field is marked as required, indicating that they must be included for the request to be valid. ### Error InsightsORIGINAL_PAYER_IDENTIFICATION_NOT_REGISTERED - This indicates that the identity number provided for the payer does not match the one used during their initial transaction.HTTP 400 Bad RequestPlease verify the following details:- payerIdentificationType must be one of the following: 'CPFA', 'SRSA', 'NRIN', 'OTHR', 'DRLC', 'PASS', 'SOCS', 'AREG', or 'IDCD'.- payerLanguageCode should comply with  ISO_639-1 standards.- originalCurrency must adhere to (ISO 4217 Currency Codes).- payerEmail should be a valid email address.HTTP 500 Server ErrorEnsure that payerGender values are correctly set to either MALE, FEMALE, or OTHER. Transitioning from Remittance Transfer to Remittance Cash Transfer What remains unchanged are the API User and Key, as well as the remittance subscription key. You can find these in your profile   User: Profile - MoMo Developer Portal – SandBox (mtn.com) or User: Profile - MoMo Developer Portal – Production (mtn.com)What’s altered is the Endpoint URL, which has been updated  from https://proxy.momoapi.mtn.com/remittance/v1_0/transfer  to https://proxy.momoapi.mtn.com/remittance/v2_0/cashtransfer Additionally, the content of the Body has been enhanced with new fields as previously mentioned. MoMo Developer Portal - Go liveRegister at  APISandbox - MoMo Developer Portal – SandBox (mtn.com) and discover more detailed information about the API. We trust this update will significantly enhance the efficiency and compliance of your fund transfer operations. Thank you for your continued support and cooperation.MoMo API Team 

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 SDKs

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 https://momodeveloper.mtn.com Navigate to the products page https://momodeveloper.mtn.com/products Select drop down on product that suits the business case and subscribe Once Done, Subscription Keys are found via https://momodeveloper.mtn.com/developer 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 (github.com)  Java Script SDKRequirements Any BrowserGit Hub MTN-Group/MoMoAPIs_Javascript_sdk (github.com) PHP SDKRequirements PHP 5.4+ cURL PHP Extension JSON PHP ExtensionGit Hub MTN-Group/MoMoAPIs_Php_sdk (github.com) Node.Js SDKRequirements Node.js 16.19.1 LTS or higherGit Hub MTN-Group/MoMoAPIs_Nodejs_sdk (github.com) 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 (github.com)