A NodeJS library to simplify integration with Safaricom's Daraja M-Pesa API
const { Mpesa } = require('daraja');
// instantiate Mpesa with the organization's shortcode and app's Consumer Key
// and Consumer Secret
const mpesa = new Mpesa(123456, 'yourConsumerKey', 'yourConsumerSecret');
// then make the call to the API passing the required arguments
mpesa
.mpesaExpressRequest(
100,
254712345678,
123456,
'bfb279f9aa9bdbcf15...',
'CustomerPayBillOnline',
'INV001',
'Regular payment',
'http://callbackurl.com'
)
.then(response => {
// SUCCESS
// do something with the response
})
.catch(error => {
// FAILED
// handle the error
});
// you can also use async-await to handle the response and errors
try {
const response = await mpesa.mpesaExpressRequest(
100,
254712345678,
123456,
'bfb279f9aa9bdbcf15...',
'CustomerPayBillOnline',
'INV001',
'Regular payment',
'http://callbackurl.com'
);
// handle the response here
} catch (error) {
// handle any errors here
}
I developed this library to make it as painless as possible for JavaScript & TypeScript developers to integrate their web applications with Safaricom's Daraja M-Pesa API.
The emphasis is to make use of modern JavaScript & TypeScript syntax to provide a clean an easy to use interface. This library is under constant maintenance and more features will be added to simplify the integration even further and capture all common use cases.
-
Ensure you have Node & npm installed for your operating system.
node --version
npm --version
-
Open a command line and navigate to your project folder. Run the following command to install
daraja
as a project dependencynpm install --save daraja
Visit the documentation
This project is licensed under the MIT License.