1.0.9 • Published 11 months ago

mtn-momo-api v1.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

MTN Momo Collections

A simple library for integrating with the MTN Momo Collections API.

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:

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 to install mtn-momo-api.

npm install mtn-momo-api --save

Usage

Here's an example of how you can use the MTN Momo Collections library in your project:

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

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.

1.0.9

11 months ago

1.0.8

11 months ago

1.0.7

11 months ago

1.0.6

11 months ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago