Skip to main content

Python wrapper for Mpesa's Daraja API

Project description

pydaraja

PyPI version Wheel Status License: MIT

Description

This Python wrapper allows developers to seamlessly interact with the MPESA's Daraja API and manage payment requests within their Python applications.

It streamlines and abstracts the complexity of integrating with the MPESA's Daraja API, providing developers with a convenient and efficient means of handling payment transactions

Daraja API services offered by pydaraja are:

  • Lipa na M-PESA online API also known as M-PESA express (STK Push/NI push)
  • STK push query API -> Used to check the status of Lipa na Mpesa online payment

More services will come soon.

Installation

pip install -U pydaraja

Usage

  1. Lipa na Mpesa Online API (STK push) and STK push query API.
from pydaraja import MpesaPaymentGateway

# Create MpesaPaymentGateway instance
mpesa = MpesaPaymentGateway(
    api_host="https://sandbox.safaricom.co.ke",
    consumer_key="consumer_key",
    consumer_secret="consumer_secret",
    business_shortcode="business_shortcode",
    passkey="passkey"
    callback_url="your_callback_url"
    account_reference="account_reference" # name of your business
)

# Trigger STK push prompt
response = mpesa.trigger_stk_push(phone_number="+254700000000", amount=1)

print(response.json())
# Output
{
    'MerchantRequestID': '2654-4b64-97ff-b827b542881d164797',
    'CheckoutRequestID': 'ws_CO_18072024175449513769356298',
    'ResponseCode': '0',
    'ResponseDescription': 'Success. Request accepted for processing',
    'CustomerMessage': 'Success. Request accepted for processing'
}


# use checkout_request_id from the above stk push as parameter for the function below
response = mpesa.query_stk_push(checkout_request_id=your_checkout_request_id)

print(response.json())
# Output
{
    'ResponseCode': '0',
    'ResponseDescription': 'The service request has been accepted successsfully',
    'MerchantRequestID': '2654-4b64-97ff-b827b542881d164797',
    'CheckoutRequestID': 'ws_CO_18072024175449513769356298',
    'ResultCode': '0',
    'ResultDesc': 'The service request is processed successfully.'
 }

Daraja API Environments

Sandbox(Test environment) - https://sandbox.safaricom.co.ke

Production(Live environment for real transactions) - https://api.safaricom.co.ke

Contributing

To contribute to this project, we kindly request you to review the CONTRIBUTING.md file for detailed guidelines.

License

This python package is available as open source under the terms of the MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydaraja-1.0.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydaraja-1.0.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file pydaraja-1.0.0.tar.gz.

File metadata

  • Download URL: pydaraja-1.0.0.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for pydaraja-1.0.0.tar.gz
Algorithm Hash digest
SHA256 60e3b8da9f5e68446d4ae3922298e49d54ae534110ac18c29bc1e32d671b5c44
MD5 43828e44c21dd61fc93ce643c7cd0412
BLAKE2b-256 52253b999218c0cdcf31250162fb7b2f7959b6756420d6a54aaf5e9e78213b4a

See more details on using hashes here.

File details

Details for the file pydaraja-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pydaraja-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for pydaraja-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aca584d5574b81a2d37393148ae1b9133b64fa5d38a319c946f65ccaec090696
MD5 7b9f9bef2a8552e226ec0bd45df94507
BLAKE2b-256 8d6d641d42acccc846f370f56eca5703bdd68c6bc7869665517488af32825d04

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page