This python module provides a simple way to integrate the Safaricom MPESA Daraja 2.0 API into your Python projects. It is designed to handle common operations like generating access tokens, formatting phone numbers, and sending STK Push requests.
Project description
MPESA Daraja 2.0 API Python Client Module
This python module provides a simple way to integrate the Safaricom MPESA Daraja 2.0 API into your Python projects. It is designed to handle common operations like generating access tokens, formatting phone numbers, and sending STK Push requests.
Features
- Generate access tokens securely.
- Format and validate phone numbers.
- Send STK Push requests for payments.
- Easily configurable with environment variables.
🛠️ Installation
From PyPI
Install the library directly from PyPI:
pip install daraja-client
From Source
-
Clone the repository:
git clone https://github.com/anomalous254/daraja_client.git
-
Navigate to the project directory:
cd daraja_client
-
Install dependencies:
pip install -r requirements.txt
Configuration
Add the following variables to your .env
file in the root directory of your project:
DARAJA_API_CONSUMER_KEY='your_consumer_key'
DARAJA_API_CONSUMER_SECRET='your_consumer_secret'
DARAJA_API_PASS_KEY='your_pass_key'
DARAJA_API_SHORT_CODE='your_shortcode'
Usage
Import the Library
from daraja_client.core import DarajaClient
from decouple import config
# Configuration
auth_url = "https://sandbox.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials"
stk_push_url = 'https://sandbox.safaricom.co.ke/mpesa/stkpush/v1/processrequest'
call_back_url = 'https://your-callback-url.com' #
phone_number = '+254769507699' # person to receive the prompt
# Initialize the client
cl = DarajaClient(
auth_url=auth_url,
consumer_key=config('DARAJA_API_CONSUMER_KEY'),
consumer_secret=config('DARAJA_API_CONSUMER_SECRET'),
pass_key=config('DARAJA_API_PASS_KEY'),
shortcode=config('DARAJA_API_SHORT_CODE'),
phone_number=phone_number,
call_back_url=call_back_url
)
# Send STK Push
response = cl.send_stk_push(stk_push_url=stk_push_url)
print(response)
Response Examples
Success
{
"message": "success",
"stkpushID": "ws_CO_blahblahblah",
"info": "You can use and store this stkpushID in your db model to be used for payment confirm during callback from Safaricom"
}
Failure
{
"message": "failed",
"error": "Wrong credentials"
}
Acknowledgment
This library was developed by Peter Nyando, a passionate software engineer dedicated to creating scalable and efficient solutions. Check out more of my work on my portfolio.
Ensure your .env
file is properly configured.
Contributing
- Fork the repository.
- Create a new branch.
- Make your changes and commit them.
- Push to your fork and submit a pull request.
License
This project is licensed under the MIT License. See the LICENSE
file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file daraja_client-0.1.2.tar.gz
.
File metadata
- Download URL: daraja_client-0.1.2.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ef998c26a145334ca2815d713380d182d0e27b90e970b2e402a341ec9f65b1a |
|
MD5 | bf4693063ed6e7c04cb21f799400b349 |
|
BLAKE2b-256 | e99601364289de3ff6e9c171117be204da8214cd0c18cdb4432b18b186840d26 |
File details
Details for the file daraja_client-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: daraja_client-0.1.2-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecc4e6c3a0e040a98f0a0eeb14c7569223007a38b8ed6dacc9ec42a5dfddf98f |
|
MD5 | 9a69b77fb82fe93c9c8f1e8c8e106d64 |
|
BLAKE2b-256 | b608e79cc166243da14e884a040caab22118188a4e69956a8ce5732c5d5e1742 |