UNPKG

mtn-momo-api

Version:

The MTN-Momo-API is an npm package that provides a convenient and simplified way to interact with the MoMo (Mobile Money) API for making financial transactions. It abstracts the complexities of the API and offers a streamlined interface for requesting pay

135 lines (96 loc) 4.45 kB
# MTN Momo Collections A simple library for integrating with the MTN Momo Collections API. - [Getting Your API Credentials](#getting-your-api-credentials) - [Installation](#installation) - [Usage](#usage) - [API Reference](#api-reference) - [Contributing](#contributing) - [License](#license) ## Getting Your API Credentials To use the MTN Momo Collections API, you need to generate your userId and userApiKey. Here's how you can generate them: ```bash npx momo-sandbox --callback-host <callbackHost> --primary-key <primaryKey> ``` Replace **`<callbackHost>`** with the URL of your callback host and **`<primaryKey>`** with your actual MTN Mobile Money API primary or secondary key. This command will generate a new user and display the **`userId`** and **`userApiKey`** in the console. **Note:** "These credentials are specifically intended for use in the sandbox environment. In a production environment, you will be provided with the necessary credentials through the MTN OVA management dashboard after fulfilling the necessary KYC (Know Your Customer) requirements." ## Installation Use the package manager [npm](https://www.npmjs.com/package/mtn-momo-api) to install `mtn-momo-api`. ```bash npm install mtn-momo-api --save ``` ## Usage Here's an example of how you can use the MTN Momo Collections library in your project: ```bash const { makeRequest } = require('mtn-momo-api'); makeRequest({ callbackHost: '<callbackHost>', userApiKey: '<userApiKey>', userId: '<userId>', primaryKey: '<primaryKey>', amount: '<amount>', currency: '<currency>', externalId: '<externalId>', partyIdType: '<partyIdType>', partyId: '<partyId>', payerMessage: '<payerMessage>', payeeNote: '<payeeNote>' }) .then(({ response, status }) => { console.log('Response:', response); console.log('Transaction Status:', status); }) .catch(error => { console.error('Error:', error); }); ``` ## API Reference **`makeRequest(options)`** Initiates a request to pay using the MTN Momo Collections API. - **`options`**: An object containing the following properties: - **`callbackHost`**: The callback URL for receiving payment notifications. - **`userApiKey`**: Your MTN Momo user API key. - **`userId`**: Your MTN Momo user ID. - **`primaryKey`**: Your MTN Momo primary key. - **`amount`**: The amount to be paid. - **`currency`**: The currency of the payment. - **`externalId`**: An ID generated by your system to uniquely identify the transaction. - **`partyIdType`**: The type of the party ID (e.g., MSISDN, EMAIL, etc.). - **`partyId`**: The party ID of the payer. - **`payerMessage`**: A message that will be displayed to the payer. - **`payeeNote`**: A note that will be displayed to the payee. Returns a promise that resolves to an object with the following properties: - **`response`**: The response from the API. - **`status`**: The transaction status. **`Controller`** Class The **`Controller`** class provides methods to interact with the MTN Momo Collections API. Constructor ```bash const { Controller } = require('mtn-momo-api'); const app = new Controller({ callbackHost: '<callbackHost>', userApiKey: '<userApiKey>', userId: '<userId>', primaryKey: '<primaryKey>', }); ``` **`requestToPay(amount, currency, externalId, partyIdType, partyId, payerMessage, payeeNote)`** Initiates a request to pay. - **`amount`**: The amount to be paid. - **`currency`**: The currency of the payment. - **`externalId`**: An ID generated by your system to uniquely identify the transaction. - **`partyIdType`**: The type of the party ID (e.g., MSISDN, EMAIL, etc.). - **`partyId`**: The party ID of the payer. - **`payerMessage`**: A message that will be displayed to the payer. - **`payeeNote`**: A note that will be displayed to the payee. Returns a promise that resolves to an object with the following properties: - **`responseCode`**: The response code from the API. - **`referenceId`**: The reference ID generated for the transaction. **`getTransactionStatus(referenceId)`** Retrieves the transaction status for a given reference ID. - **`referenceId`**: The reference ID of the transaction. Returns a promise that resolves to the transaction status object. ## Contributing Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request. ## License This project is licensed under the MIT License.