A NodeJS library to simplify integration with Safaricom's Daraja M-Pesa API
const { Daraja } = require('daraja');
// instantiate Daraja with the organization's shortcode and app's Consumer Key
// and Consumer Secret
const daraja = new Daraja([SHORTCODE], '[CONSUMER_KEY]', '[CONSUMER_SECRET]');
// create an MPesa instance configured according to the API's you will consume
// e.g to consume MPesa Express (Lipa Na M-Pesa Online) API
const mpesa = daraja
.configureMPesaExpress('[PASSKEY]', '[CALLBACK_URL]')
.build();
// finally make the call to the API passing the required arguments
mpesa
.mPesaExpressRequest(
[AMOUNT],
[SENDER],
[RECIPIENT],
'[TRANSACTION_TYPE]',
'[ACCOUNT_REFERENCE]',
'[TRANSACTION_DESCRIPTION]'
)
.then(response => {
// if the call was successfull, you can do something with the response here
})
.catch(error => {
// if any error occurs, you can handle it here
});
// you can also use async-await to handle the response and errors
try {
const response = await mpesa.mPesaExpressRequest(
[AMOUNT],
[SENDER],
[RECIPIENT],
'[TRANSACTION_TYPE]',
'[ACCOUNT_REFERENCE]',
'[TRANSACTION_DESCRIPTION]'
);
// 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.