Python package for Vodacom Mpesa API Integration
Project description
pypesa
Python wrapper on Mpesa public API for mobile Payment Integration made with care to offer easy and elegant integration made by kalebu
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
- 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")
Contributing
Wanna contribute to Pypesa ? then please contributing.md to see how.
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.