README
epayghMomo



This is an unofficial nodejs wrapper for epaygh mobile money. This package will help you to charge your customers mobile money wallet on all networks.
NOTE: This package will only take care of sending the mobile money prompt to your customers phone.
Installation
npm i -s @bigboblittle/epaymomo
Setup
Please head over to
epaygh website to create account for yourself, on your dashboard, click integrations to create your keys. You'll need it in order to use this package.
Required Fields
merchant_key: "YOUR-MERCHANT-KEY-HERE",
app_id: "APP_ID",
app_secret: "APP-SECRET"
For security reasons, please load your keys from your .env file
Example using express js
const app = require('express')();
const epayMomo = require('@bigboblittle/epaymomo');
app.post('/testEpay', async(req,res,next) => {
try {
//load your keys here... remember it's a good practice to save such keys in your .env
let epayConfig = {
merchant_key: "YOUR-MERCHANT-KEY-HERE",
app_id: "APP_ID",
app_secret: "APP-SECRET"
};
//pass in username, amount, phonenumber, email, and config
epayMomo("username", 1, "0543892565", "email", epayConfig).then((value) => {
//wait for a response when the promise is resolved
console.log(value);
})
} catch (error) {
console.log(error)
}
})
app.listen(process.env.PORT || 3000);
Errors
i have customized the errors from this package starting with BIGBOBLITTLE followed by the error itself

Note
The epaygh momo API
- requires you to re-generate your
Authorization Tokenafter every 3600(1hr). This package takes care of that, by first creating theAuthorization Tokenfor you and saves its expiration time in a file calledyourtoken. it then checks if the Token is expired and re-generate a new one before sending your momo request to the epaygh API. You can check the generated token and expiration time in a file calledyourtoken`
**the actual api required parameters of epaygh**
{
amount: 1.0,
customer_email: "customer@email.com",
customer_name: "Customer Name",
customer_telephone: "057XXXXXXX",
mobile_wallet_network: "tigo",
mobile_wallet_number: "057XXXXXXX",
payment_method: "momo",
reference: "000000"
}
the API requires you to provide the above information as parameters to the momo API
Not all the information here matches my use case when creating the package. so i've set the
customer_telephone: "057XXXXXXX",` and `mobile_wallet_number: "057XXXXXXX",
to thephonenumberof the user you're charging.Also, i've used shortid to auto generate the reference for you.
I've also taken care of the
mobile_wallet_network: "tigo"For this reason, you have to always make sure the phonenumber you pass to this package is always a10 digit string. Without it, you will get an error.I realized my use case dont really need my customers email ::::
customer_email: "customer@email.com",however, i've provided that field, but without it, you can still charge your customers.Finally, you'll need your
referenceto get yourtransaction status. Its always part of thesuccess responsefrom the api