NodeJS library for M-Pesa API (🇲🇿 Mozambique)
# M-Pesa Node API
Node.js wrapper for the M-Pesa Mozambique API.
## Using the API
1. Install it using npm:
```shell
npm install mpesa-node-api
```
1. Create the configuration `.env` file on your root directory based on `.env.example`.
1. 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:
```shell
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
```
1. In your JavaScript file, import the package using `require()`:
```js
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:
```json
{
"output_ConversationID": "f02f957c19f4499faf6a6f19c0307e69",
"output_ResponseCode": "INS-0",
"output_ResponseDesc": "Request processed successfully",
"output_ThirdPartyReference": "ZXVM9H",
"output_TransactionID": "f449abol7j38"
}
```
#### Customer to Business (C2B)
```js
const mpesa = require('mpesa-node-api');
mpesa.initiate_c2b(/* amount */ 10, /* msisdn */ 258843330333, /* transaction ref */ 'T12344C', /*3rd party ref*/ 'ref1')
.then(function(response) {
// logging the response
console.log(response);
})
.catch(function(error) {
// TODO: handle errors
});
```
#### Business to Customer (B2C)
```js
const mpesa = require('mpesa-node-api');
mpesa.initiate_b2c(/* amount */ 10, /* msisdn */ 258843330333, /* transaction ref */ 'T12344C', /*3rd party ref*/ 'ref1')
.then(function(response) {
// logging the response
console.log(response);
})
.catch(function(error) {
// TODO: handle errors
});
```
### Planned Support:
- [ ] B2B
- [ ] Reversal
- [ ] Query Transaction Status
### Using custom configuration
Optionally, you can al …