Python SDK for Chapa API https://developer.chapa.co
Project description
Chapa
Unofficial Python SDK for Chapa API.
Introduction
This document provides a comprehensive guide to integrating and using the Chapa Payment Gateway SDK in your application. Chapa is a powerful payment gateway that supports various payment methods, facilitating seamless transactions for businesses. This SDK simplifies interaction with Chapa’s API, enabling operations such as initiating payments, verifying transactions, and managing subaccounts.
Installation
To use the Chapa SDK in your project, you need to install it using pip, as it is a dependency for making HTTP requests it will also install httpx
as a dependency.
pip install chapa
Usage
To begin using the SDK, import the Chapa
class from the module and instantiate it with your secret key.
Initializing the SDK
from chapa import Chapa
# Replace 'your_secret_key' with your actual Chapa secret key
chapa = Chapa('your_secret_key')
Async Support
The Chapa SDK implements async support using the AsyncChapa
class. To use the async version of the SDK, import the AsyncChapa
class from the module and instantiate it with your secret key.
from chapa import AsyncChapa
# Replace 'your_secret_key' with your actual Chapa secret key
chapa = AsyncChapa('your_secret')
All of the below methods are available in the async version of the SDK. So you can just use it as you would use the sync version.
response = await chapa.initialize(
...
)
Making Payments
To initiate a payment, use the initialize
method. This method requires a set of parameters like the customer's email, amount, first name, last name, and a transaction reference.
response = chapa.initialize(
email="customer@example.com",
amount=1000,
first_name="John",
last_name="Doe",
tx_ref="your_unique_transaction_reference",
callback_url="https://yourcallback.url/here"
)
print(response)
Verifying Payments
After initiating a payment, you can verify the transaction status using the verify
method.
transaction_id = "your_transaction_id"
verification_response = chapa.verify(transaction_id)
print(verification_response)
Creating Subaccounts
You can create subaccounts for split payments using the create_subaccount
method.
subaccount_response = chapa.create_subaccount(
business_name="My Business",
account_name="My Business Account",
bank_code="12345",
account_number="0012345678",
split_value="0.2",
split_type="percentage"
)
print(subaccount_response)
Bank Transfers
To initiate a bank transfer, use the transfer_to_bank
method.
transfer_response = chapa.transfer_to_bank(
account_name="Recipient Name",
account_number="0987654321",
amount="500",
reference="your_transfer_reference",
bank_code="67890",
currency="ETB"
)
print(transfer_response)
Verifying Webhook
The reason for verifying a webhook is to ensure that the request is coming from Chapa. You can verify a webhook using the verify_webhook
method.
from chapa import verify_webhook
# request is just an example of a request object
# request.body is the request body
# request.headers.get("Chapa-Signature") is the Chapa-Signature header
verify_webhook(
secret_key="your_secret_key",
body=request.body,
chapa_signature=request.headers.get("Chapa-Signature")
)
Getting Testing Cards and Mobile Numbers
For testing purposes, you can retrieve a set of test cards and mobile numbers.
from chapa import get_testing_cards, get_testing_mobile
# Get a list of testing cards
test_cards = get_testing_cards()
print(test_cards)
# Get a list of testing mobile numbers
test_mobiles = get_testing_mobile()
print(test_mobiles)
Get Webhook Events
You can get webhook events details with description like below
from chapa import WEBHOOK_EVENTS, WEBHOOKS_EVENT_DESCRIPTION
# Get a list of webhook events
print(WEBHOOK_EVENTS)
# Get a list of webhook events with description
print(WEBHOOKS_EVENT_DESCRIPTION)
Conclusion
The Chapa Payment Gateway SDK is a flexible tool that allows developers to integrate various payment functionalities into their applications easily. By following the steps outlined in this documentation, you can implement features like payment initialization, transaction verification, and sub-account management. Feel free to explore the SDK further to discover all the supported features and functionalities.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. After that free to contribute to this project. Please read the CONTRIBUTING.md file for more information.
Please make sure to update tests as appropriate.
Run Locally
Clone the project
git clone https://github.com/chapimenge3/chapa.git
Go to the project directory
cd chapa
Install dependencies
pip install -r requirements.txt
License
Author
Temkin Mengistu
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
Built Distribution
File details
Details for the file chapa-0.1.2.tar.gz
.
File metadata
- Download URL: chapa-0.1.2.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a5c13057b13064001b35cc12197a07f8461eb4d9b27fd1546f6f47eb4cc1427 |
|
MD5 | aaa069f6735f629d063942f147997363 |
|
BLAKE2b-256 | 68dd75f813fd6c6e236e67f02755a751067e10feda106b43dd7fcd3663ac416f |
File details
Details for the file chapa-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: chapa-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bd14885849862c9624c266601cf2a906e3e99c0d5f0b721331c899c9d082632 |
|
MD5 | a90fc358a913415cc7732f85e18686ca |
|
BLAKE2b-256 | 29c5455f55e538c8dcd25192986703d03c14b7ba3edf6b83b826672802cb17da |