Skip to main content

A python library that interfaces safaricoms mpesa apis

Project description

Django-Mpesa is a generic python library that interfaces the safaricom MPESA APIs to enable easy payments to your python application.

Detailed documentation is in the “docs” directory.

View the module from the official pypi site

Quick start

  1. Install the package with pip like this:

    pip install django-mpesa
  2. Add “mpesa” to your INSTALLED_APPS setting like this:

  3. Add Mpesa Config variables to your project’s file


    … ‘CONSUMER_KEY’: ‘<Your consumer key from daraja>’, ‘CONSUMER_SECRET’: ‘<Your consumer secret from daraja>’, ‘HOST_NAME’: ‘<Your hostname e.g https://myhostname>’, ‘PASS_KEY’: ‘<Your pass key from daraja>’, ‘SAFARICOM_API’: ‘’, ‘SHORT_CODE’: ‘174379’


    Check below for full setting variables description

  4. Include the polls URLconf in your project like this:

    from django.urls import path, include
    from mpesa.urls import mpesa_urls
    path('mpesa/', include(mpesa_urls)),
  5. Run python migrate to create the mpesa models.

  6. Start the development server and visit

  7. Visit to checkout the library features.


This module exposes some API endpoints that enable you work with MPESA API

  1. mpesa/submit/
    This endpoint allows you to submit a post request to initiate an STK push
  2. mpesa/confirm/
    This endpoint is used as the callback endpoint on which MPESA will return a transaction response/status
  3. mpesa/check-transaction/
    This endpoint allows you to manually check for the status of an mpesa transaction

Check out the test module for more elaborate examples

Project details

Download files

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

Files for django-mpesa, version 2.0.5
Filename, size File type Python version Upload date Hashes
Filename, size django_mpesa-2.0.5-py3.9.egg (22.5 kB) File type Egg Python version 2.0.5 Upload date Hashes View
Filename, size django_mpesa-2.0.5-py3-none-any.whl (11.6 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size django-mpesa-2.0.5.tar.gz (10.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page