Python wrapper on Mpesa public API for mobile Payment Integration made with care to offer easy and elegant integration made by kalebu
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
Full documentation can be found on pypesa
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
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.
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
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
>>> from pypesa import Mpesa
>>> mpesa = Mpesa()
>>> 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'}
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;
>>> from pypesa import Mpesa
>>> mpesa = Mpesa(auth_path = filename)
The package run by default using sandbox environment, If you wanna use it to real production environment you can specify it while creating an instance as shown below
>>> from pypesa import Mpesa
>>> mpesa = Mpesa(environment="production")
- Adding a well structured documentation
- Adding a detailed test case to the implementation
- Fixing rising bugs
Wanna contribute to Pypesa ? then please contributing.md to see how
If you found this repository useful, give it a star, You can also keep in touch with on twitter.
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
All the credits to
- kalebu
- SentielWarren
- and all the future contributors