PHPackages                             stephencoduor/mpesa - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. stephencoduor/mpesa

ActiveLibrary[Payment Processing](/categories/payments)

stephencoduor/mpesa
===================

Mpesa daraja api library

v2.1.0.1(3y ago)140MITPHPPHP &gt;=7.4

Since Sep 10Pushed 3y ago1 watchersCompare

[ Source](https://github.com/stephencoduor/mpesa)[ Packagist](https://packagist.org/packages/stephencoduor/mpesa)[ Docs](https://github.com/stephencoduor/mpesa)[ RSS](/packages/stephencoduor-mpesa/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (1)Versions (16)Used By (0)

Introduction
============

[](#introduction)

Mpesa library which you can use with various framework like laravel ,codeigniter ,cakephp and many more This package seeks to help php developers implement the various Mpesa APIs without much hustle. It is based on the REST API whose documentation is available on .

Installation using composer
===========================

[](#installation-using-composer)

```
  composer require stephencoduor/mpesa
```

Or add the following line to the require block of your `composer.json` file.

```
"stephencoduor/mpesa": "^1.0.*"

```

You'll then need to run `composer install` or `composer update` to download it and have the autoloader updated.

Once Laravel Mpesa is installed, you need to register the service provider. Open up `config/app.php` and add the following to the `providers` key.

```
'providers' => [
    ...
    Stephencoduor\Mpesa\MpesaServiceProvider::class,
    ...
]
```

> If you use **Laravel &gt;= 5.5** you can skip this step and go to [**`configuration`**](#)

- `Stephencoduor\Mpesa\MpesaServiceProvider::class`

Also, register the Facade like so:

```
'aliases' => [
    ...
    'Mpesa' => Stephencoduor\Mpesa\Facades\Mpesa::class,
    ...
]
```

Configuration
-------------

[](#configuration)

You can publish the configuration file using this command:

```
php artisan vendor:publish --provider="Stephencoduor\Mpesa\MpesaServiceProvider"
```

A configuration-file named `mpesa.php` with some sensible defaults will be placed in your `config` directory:

```
#  Usage example

  ```require_once('vendor/autoload.php')```
  use the above statement if it procedural app else if its codeigniter 3.x go config enable $config['composer_autoload'] = 'vendor/autoload.php';
  if vendor is root folder if vendor file are on application it should be $config['composer_autoload'] = true ,
  for laravel and other framework they have no problem

    use Stephencoduor\Mpesa\Mpesa;

A

    $mpesa = new Mpesa();

---------------Now you can call functions on Mpesa as Below ----------------

    echo " Token : " . $mpesa->oauth_token();
    $mpesa = new Mpesa();
    $mpesa->express()->stkPushQuery('ws_CO_DMZ_297481201_09042019174418021');
    $mpesa->express()->stkPush('1','254708374149','pay now','test',''https://example.com/callback_url/);

    $mpesa->c2b()->register_url('https://example.com/$confirmation_url/','https://example.com/validation_url/');
    $mpesa->c2b()->c2bPay('1000', '254708374149', 'account');

    $mpesa->b2c()->b2cSend('200', 'BusinessPayment', '254708374149', 'payment','b2c_timeout','b2c_result'); // last two parameter define callback https://example.com/result_url.php/b2c_timeout/ or https://example.com/result_url/b2c_result/

    $mpesa->b2c()->b2bSend('10000','BusinessPayBill','60000','4','4','paytest','cool','b2b_timeout','b2b_result');

    $mpesa = new Mpesa()
    $mpesa->accountbalance('600443','4','remarks','acc_timeout','acc_result');
    $mpesa->reversal('2','254708374149','1','NCR7S1UXBT','PAY NOW');
    $mpesa->transaction_status('NCR7S1UXBT','254708374149','4','apitest');

 # get responses
    echo $mpesa->getResponseData();

# Callback json data received from safaricom
    for call back you can use you own implementation
    this is for testing.

    use Stephencoduor\Mpesa\Callback;

    $callback = new Callback;
    $callback::processSTKPushRequestCallback();
    $callback::processC2BRequestConfirmation();
    $callback::processC2BRequestValidation();
    $callback::processB2CRequestCallback();
    $callback::processB2BRequestCallback();
    $callback::processAccountBalanceRequestCallback();
    $callback::processReversalRequestCallBack();
    $callback::processTransactionStatusRequestCallback();

  ## Contributing

## Security

## Credits

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
```

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 54.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Recently: every ~26 days

Total

15

Last Release

1248d ago

Major Versions

v1.0.0.2 → v2.0.0.p2022-09-20

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4972940?v=4)[stephen](/maintainers/stephencoduor)[@stephencoduor](https://github.com/stephencoduor)

---

Top Contributors

[![stevenkamanu](https://avatars.githubusercontent.com/u/27777012?v=4)](https://github.com/stevenkamanu "stevenkamanu (36 commits)")[![stephencoduor](https://avatars.githubusercontent.com/u/4972940?v=4)](https://github.com/stephencoduor "stephencoduor (30 commits)")

---

Tags

gatewaympesalipa-na-mpesapaybillreverse moneycustomer to businessbussines to bussinescodeigniter mpesa library

### Embed Badge

![Health badge](/badges/stephencoduor-mpesa/health.svg)

```
[![Health](https://phpackages.com/badges/stephencoduor-mpesa/health.svg)](https://phpackages.com/packages/stephencoduor-mpesa)
```

###  Alternatives

[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k656.1k38](/packages/neuron-core-neuron-ai)[shetabit/multipay

PHP Payment Gateway Integration Package

293361.0k4](/packages/shetabit-multipay)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M46](/packages/tencentcloud-tencentcloud-sdk-php)[chargebee/chargebee-php

ChargeBee API client implementation for PHP

758.5M9](/packages/chargebee-chargebee-php)[bitpay/sdk

Complete version of the PHP library for the new cryptographically secure BitPay API

42361.9k4](/packages/bitpay-sdk)[sebdesign/laravel-viva-payments

A Laravel package for integrating the Viva Payments gateway

4851.0k](/packages/sebdesign-laravel-viva-payments)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
