PHPackages                             brotechsploit/daraja - 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. [API Development](/categories/api)
4. /
5. brotechsploit/daraja

ActiveLibrary[API Development](/categories/api)

brotechsploit/daraja
====================

Safaricom Daraja API PHP SDK

v2.6(1mo ago)09PHP ^8.1

Since Jul 6Compare

[ Source](https://github.com/brotechsploit/daraja)[ Packagist](https://packagist.org/packages/brotechsploit/daraja)[ RSS](/packages/brotechsploit-daraja/feed)WikiDiscussions Synced 1w ago

READMEChangelog (1)Dependencies (1)Versions (8)Used By (0)

brotechsploit daraja APi intergration
-------------------------------------

[](#brotechsploit-daraja-api-intergration)

mpesa stk push made easy , b2c , b2b
------------------------------------

[](#mpesa-stk-push-made-easy--b2c--b2b)

Daraja API PHP SDK
==================

[](#daraja-api-php-sdk)

A lightweight Object-Oriented PHP SDK for integrating with the Safaricom Daraja API for effecient mpesa payments

This package simplifies working with Daraja services such as STK Push, STK Push Query, OAuth token generation, and other supported endpoints.

---

Features
--------

[](#features)

- Object-Oriented API
- Composer compatible
- OAuth Access Token generation
- STK Push
- B2c payments
- B2B Payments
- B2Pochi payments
- Configurable using PHP configuration files
- Simple and easy to integrate

---

Requirements
------------

[](#requirements)

- PHP 8.1 or later
- Composer
- Safaricom Daraja API credentials

---

Installation
------------

[](#installation)

Install the package using Composer:

```
composer require brotechsploit/daraja-api
```

---

Project Structure
-----------------

[](#project-structure)

```
daraja/
│
│
│
├── callback/
│   └── (Callback responses)
│
├── .env
│
├── example/
│
│── composer.json
│── composer.lock
│── src/
│   └── Daraja.php
│── vendor/
│   ├── autoload.php
│   ├── composer/
│   │   ├── autoload_psr4.php
│   │   ├── autoload_real.php
│   │   └── ...
│   └── vlucas/

```

---

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

[](#configuration)

edit the .env file with the valid safaricom daraja credentials and place it in the home directory folder to prevent read file errors

Example: MPESA\_CONSUMER\_KEY=qP50LHCHnaIJajKsOMZAxbC3v0PoGvaj4GhQa02pszLy0e00 MPESA\_CONSUMER\_SECRET=i7dP8GRQJ4G6avPzM4GfUBKvAJ4pdaRUT0SajUPuEfnUhjAhSScGR4YHcIwnwPKW MPESA\_PASSKEY=bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919 MPESA\_SHORTCODE=174379 MPESA\_CALLBACK\_URL=MPESA\_INITIATOR\_USERNAME=apiuser MPESA\_SECURITY\_CREDENTIALS=i7dP8GRQJ4G6avPzM4GfUBKvAJ4pdaRUT0SajUPuEfnUhjAhSScGR4YHcIwnwPKW QueueTimeOutURL=ResultURL=

```
$config = [
    'consumerkey'    => $_ENV['MPESA_CONSUMER_KEY'],
    'consumersecret' => $_ENV['MPESA_CONSUMER_SECRET'],
    'shortcode'      => $_ENV['MPESA_SHORTCODE'],
    'passkey'        => $_ENV['MPESA_PASSKEY'],
    'callbackurl'    => $_ENV['MPESA_CALLBACK_URL'],
    'sandbox'        => true,
    'apiusername'    => $_ENV['MPESA_INITIATOR_USERNAME'],
    'apipassword'    => $_ENV['MPESA_SECURITY_CREDENTIALS'],
    'timeouturl'     => $_ENV['QueueTimeOutURL'],
    'resulturl'      => $_ENV['ResultURL']
];
```

---

Basic Usage
-----------

[](#basic-usage)

```
