Skip to main content

Python package for Vodacom Mpesa API Integration

Project description

pypesa

Pypesa banner PyPI version Releases Downloads Downloads Downloads License: MIT

Python wrapper on Mpesa public API for mobile Payment Integration made with care to offer easy and elegant integration made by kalebu

Become a patron

Implemented Features

The following are the features that are supported by the Mpesa public API and require the python implementation.

  • Customer to Bussiness (C2B) Single Payment
  • Bussiness to Customer (B2C)
  • Bussiness to Bussiness (B2B)
  • Payment Reversal
  • Query Transaction status
  • Direct debit creation and Payment

Documentation

Full documentation can be found on pypesa

Getting started

Getting started with pypesa is pretty straight forward and can be categorized

into steps shown below.

  • Sign up for Mpesa Developer portal

  • Install the pypesa package using pip

  • Build your services with pypesa

Signing up

To sign up for Mpesa public API visit Mpesa-API and then

you can go through getting started Mpesa Developer portal by alphaolomi to see how.

Installation

To install the pypesa package to your machine you can either

install directly from github or use pip to install it.

  • Using github
$~ git clone https://github.com/Kalebu/pypesa
$~ cd pypesa
$ pypesa ~ python setup.py install 
  • Using pip
pip install python-pesa

Usage

To begin using the package is pretty straight forward

  1. You need to have a json file named keys.json on your project directly and then fill put in it your public and api keys in json format shown below
  {
   'api_key': 'xxx', 
   'public_key': 'xxxxxxxxxxxxxx' 
  }

2.Once done you're ready to go, just make sure you have active internet connection

Example of Usage (Customer to Bussiness Transaction)

>>> import pypesa
>>> mpesa = pypesa()
>>> transaction_query = {"input_Amount": "10", 
                        "input_Country": "TZN", 
                        "input_Currency": "TZS", 
                        "input_CustomerMSISDN": "000000000001", 
                        "input_ServiceProviderCode": "000000", 
                        "input_ThirdPartyConversationID":'2edf7a0206d848f6b6fedea26accdc3a', 
                        "input_TransactionReference": 'T23434ZE5',
                        "input_PurchasedItemsDesc": "Python Book"
}
>>> mpesa.customer_to_bussiness(transaction_query)

Request processed successfully   INS-0
{'output_ResponseCode': 'INS-0', 'output_ResponseDesc': 'Request processed successfully',
 'output_TransactionID': 'uGnPxFoXT2W0', 'output_ConversationID': '1d1e38495dc946729a8cffb136ab8391', 'output_ThirdPartyConversationID': '2edf7a0206d848f6b6fedea26accdc3a'}

Naming the authentication json

If you named your authentication json in other name than keys you might to specify it while creating an instance for mpesa just as shown below;

>>> import pypesa
>>> mpesa = pypesa(auth_path = filename)

production environmnent

The package run by default using sandbox environmnent, If you wanna use it to real production environmnent you can specify it while creating an instance as shown below

>>> import pypesa
>>> mpesa = pypesa(environmnent="production")

To do list

  • Adding a well structured documentation
  • Adding a detailed test case to the implementation
  • Fixing rising bugs

Contributing

Wanna contribute to Pypesa ? then please contributing.md to see how

Give it a star

If you found this repository useful, give it a star, You can also keep in touch with on twitter.

Bug bounty?

If you encounter issue with the usage of the package, feel free raise an issue so as we can fix it as soon as possible(ASAP) or just reach me directly through my email isaackeinstein(at)gmail.com

Credit

All the credits to kalebu and all the future contributors

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

python-pesa-0.7.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

python_pesa-0.7-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file python-pesa-0.7.tar.gz.

File metadata

  • Download URL: python-pesa-0.7.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5

File hashes

Hashes for python-pesa-0.7.tar.gz
Algorithm Hash digest
SHA256 12d9555c4d8d92a0343bc7106e45227264d9ee46f77a1298c7ffe9bd538da47f
MD5 8bc3165063eb2ef963c469b3bd940c88
BLAKE2b-256 17eddf17fdffd5496cbd8b62f89975d77f0fd854d9f2a39b757f8e354cd97edf

See more details on using hashes here.

File details

Details for the file python_pesa-0.7-py3-none-any.whl.

File metadata

  • Download URL: python_pesa-0.7-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5

File hashes

Hashes for python_pesa-0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 88e6098b42ccd040e647d278edac7d64c78f6aa371a7e6e263d17b9f6c94761d
MD5 4609cd335b6b51c4ca6eba4613b4262d
BLAKE2b-256 b30a4c11213047a35c26e5bfa920562f9f8d55e9751fd327b29fd768b3d57ede

See more details on using hashes here.

Supported by

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