Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/musale/pesapal
Pesapal V3 API SDK
https://github.com/musale/pesapal
pesapal python sdk
Last synced: 21 days ago
JSON representation
Pesapal V3 API SDK
- Host: GitHub
- URL: https://github.com/musale/pesapal
- Owner: musale
- License: other
- Created: 2023-08-30T10:38:25.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2023-08-31T08:26:17.000Z (about 1 year ago)
- Last Synced: 2024-10-05T08:30:00.189Z (about 1 month ago)
- Topics: pesapal, python, sdk
- Language: Python
- Homepage: https://developer.pesapal.com/how-to-integrate/e-commerce/api-30-json/api-reference
- Size: 43.9 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pesapal
Unofficial SDK wrapper for the pesapal v3 payments API.## Requirements
- python version >= 3.8## Installation
```
pip install pesapal-v3
```## Usage
```python
from pesapal_v3 import Pesapalclient = Pesapal(consumer_key, consumer_secret)
```
## Supported endpoints
### Register IPN
```python
ipn_url = "https://example.com/ipn/notifications"
ipn = client.register_ipn_url(ipn_url=ipn_url)if ipn.status != "200":
# error occured registering your IPN
print(ipn.error)
else:
# IPN successfully registered
print(ipn)
```### List registered IPNs
```python
ipns = client.get_registered_ipns()
print(ipns)
```### Submit order request
```python
order_request = {
"id": "s945e4af-80a5-4ec1-8706-e03f8332fb04",
"currency": "KES",
"amount": 350.00,
"description": "Thank you for this SDK",
"callback_url": "https://example.com/cancellation",
"notification_id": "fe078e53-78da-4a83-aa89-e7ded5c456e6",
"billing_address": {
"email_address": "[email protected]",
"phone_number": "0723xxxxxx",
"country_code": "KE",
"first_name": "John",
"middle_name": "",
"last_name": "Doe",
"line_1": "Pesapal Limited",
"line_2": "",
"city": "",
"state": "",
"postal_code": "",
"zip_code": ""
}
}
request = client.submit_order_request(order_request=order_request)
```### Transaction status
```python
status = client.get_transaction_status(order_tracking_id="b945e4af-80a5-4ec1-8706-e03f8332fb04")
```### Subscriptions
```python
order_request = {
"id": "s945e4af-80a5-4ec1-8706-e03f8332fb04",
"currency": "KES",
"amount": 350.00,
"description": "Thank you for this SDK",
"callback_url": "https://example.com/cancellation",
"notification_id": "fe078e53-78da-4a83-aa89-e7ded5c456e6",
"billing_address": {
"email_address": "[email protected]",
"phone_number": "0723xxxxxx",
"country_code": "KE",
"first_name": "John",
"middle_name": "",
"last_name": "Doe",
"line_1": "Pesapal Limited",
"line_2": "",
"city": "",
"state": "",
"postal_code": "",
"zip_code": ""
},
"account_number": "555-678",
"subscription_details": {
"start_date": "24-01-2023",
"end_date": "31-12-2023",
"frequency": "DAILY"
}
}
request = client.submit_order_request(order_request=order_request, is_subscription=True)
print(request)
```### Refund
```
refund =
{
"confirmation_code": "AA11BB22",
"amount": "100.00",
"username": "John Doe",
"remarks": "Service not offered"
}client.refund(refund)
```## Support
For any issues, bugs you can raise an issue on the project issues board.
For compliments and _gigs_ you can reach out to the developer via email `[email protected]`.
For service level issues, reach out to Pesapal.
Lastly, I need the developer juice to produce more of these open source solutions. Be among the few who have supported these effort by _buying me a coffee_.
[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/musale)