M-Pesa Node API
Node.js wrapper for the M-Pesa Mozambique API.
Using the API
-
Install it using npm:
npm install mpesa-node-api
-
Create the configuration .env
file on your root directory based on .env.example
.
-
Use your favorite text editor to edit the .env
file and fill in the blank lines with configuration
you got from the M-Pesa Developer Portal. See an example:
MPESA_PUBLIC_KEY=example_public_key
MPESA_API_HOST=api.sandbox.vm.co.mz
MPESA_API_KEY=example_api_key
MPESA_ORIGIN=developer.mpesa.vm.co.mz
MPESA_SERVICE_PROVIDER_CODE=171717
-
In your JavaScript file, import the package using require()
:
const mpesa = require('mpesa-node-api');
Supported Transactions
All transactions return a Promise.
So you can either use then/catch
or async/await
to get the transaction response.
Responses match the ones specified on the M-Pesa API Documentation.
Example C2B response:
{
"output_ConversationID": "f02f957c19f4499faf6a6f19c0307e69",
"output_ResponseCode": "INS-0",
"output_ResponseDesc": "Request processed successfully",
"output_ThirdPartyReference": "ZXVM9H",
"output_TransactionID": "f449abol7j38"
}
Customer to Business (C2B)
const mpesa = require('mpesa-node-api');
mpesa.initiate_c2b( 10, 258843330333, 'T12344C', 'ref1')
.then(function(response) {
console.log(response);
})
.catch(function(error) {
});
Business to Customer (B2C)
const mpesa = require('mpesa-node-api');
mpesa.initiate_b2c( 10, 258843330333, 'T12344C', 'ref1')
.then(function(response) {
console.log(response);
})
.catch(function(error) {
});
Planned Support:
Using custom configuration
Optionally, you can also use custom configuration to initialize the API:
const mpesa = require('mpesa-node-api');
mpesa.initializeApi({
baseUrl: "YOUR_MPESA_API_HOST",
apiKey: "YOUR_MPESA_API_KEY",
publicKey: "YOUR_MPESA_PUBLIC_KEY",
origin: "YOUR_MPESA_ORIGIN",
serviceProviderCode: "YOUR_MPESA_SERVICE_PROVIDER_CODE"
});
mpesa.initiate_c2b( 10, 258843330333, 'T12344C', 'ref1');
Getting a copy for development
These instructions will get you a copy of the project up and running on
your local machine for development and testing purposes.
Prerequisites
Make sure you have installed Node.js, which comes with npm
.
Installing
- Fork the GitHub repository.
- Clone it to your local machine using
git clone https://github.com/<YOUR-USERNAME>/mpesa-node-api.git
- Navigate into the project's directory using
cd mpesa-node-api
; - Install dependencies using
npm run install
.
Contributing
Please read CONTRIBUTING.md for details on the process
for submitting pull requests to us.
License
This project is licensed under the MIT License - see the LICENSE file for
details.
Acknowledgments
Inspired by the mpesa-php-api created by
Abdul Mueid.