Python SDK for Acoriss Payment Gateway
Project description
Acoriss Payment Gateway SDK (Python)
A lightweight Python SDK to create payment sessions with the Acoriss payment gateway.
Installation
Using pip:
pip install acoriss-payment-gateway
Quick Start
from acoriss_payment_gateway import PaymentGatewayClient
client = PaymentGatewayClient(
api_key="your-api-key",
api_secret="your-api-secret", # enables automatic HMAC-SHA256 signing
environment="sandbox", # or "live"
)
session = client.create_session(
amount=5000,
currency="USD",
customer={
"email": "john@example.com",
"name": "John Doe",
"phone": "+1234567890"
},
description="Payment for Order #1234",
callback_url="https://example.com/api/callback",
cancel_url="https://example.com/cancel",
success_url="https://example.com/success",
transaction_id="order_1234",
services=[
{
"name": "express_delivery",
"price": 1500,
"description": "Express delivery service",
"quantity": 1
}
]
)
print("Checkout URL:", session["checkout_url"])
Retrieve Payment Status
payment = client.get_payment("pay_1234567890")
print("Payment Status:", payment["status"]) # 'P' | 'S' | 'C'
print("Amount:", payment["amount"])
print("Expired:", payment["expired"])
print("Services:", payment["services"])
Payment status values:
'P'- Pending: Payment is awaiting completion'S'- Succeeded: Payment was successful'C'- Canceled: Payment was canceled or failed
Signature
By default the SDK computes X-SIGNATURE as HMAC-SHA256(body, apiSecret) if you provide api_secret.
If your gateway uses a different signing algorithm, you can:
- Provide a custom signer:
from acoriss_payment_gateway import PaymentGatewayClient
from acoriss_payment_gateway.signer import SignerInterface
class CustomSigner(SignerInterface):
def sign(self, data: str) -> str:
return my_custom_signature(data)
client = PaymentGatewayClient(
api_key="...",
signer=CustomSigner()
)
- Or override per call:
client.create_session(payload, signature_override="precomputed-signature")
Configuration
api_key: str (required)api_secret: str (optional; enables default HMAC-SHA256 signature)signer: SignerInterface (optional; custom signer)environment: "sandbox" | "live" (default: "sandbox")base_url: str (optional override of base URL)timeout: float (default: 15.0 seconds)
API
Methods
create_session(payload, signature_override=None)
Creates a new payment session.
Parameters:
amount: int - Amountcurrency: str - Currency code (e.g., "USD")customer: dict - Customer info with email, name, and optional phonedescription: str (optional) - Payment descriptioncallback_url: str (optional) - Webhook callback URLcancel_url: str (optional) - Cancel redirect URLsuccess_url: str (optional) - Success redirect URLtransaction_id: str (optional) - Merchant reference IDservices: list (optional) - List of service itemssignature_override: str (optional) - Custom signature
Returns: dict - Session details with checkout URL
get_payment(payment_id, signature_override=None)
Retrieves payment status and details by payment ID.
Parameters:
payment_id: str - The payment ID (e.g., 'pay_1234567890')signature_override: str (optional) - Custom signature
Returns: dict - Payment details including status, services, and customer info
Error Handling
Errors raise APIError with status, data, and headers from the HTTP response when available.
from acoriss_payment_gateway.errors import APIError
try:
session = client.create_session(...)
except APIError as e:
print(f"Status: {e.status}")
print(f"Message: {e.message}")
print(f"Data: {e.data}")
Development
# Install dependencies
pip install -r requirements-dev.txt
# Run tests
pytest
# Run tests with coverage
pytest --cov=acoriss_payment_gateway --cov-report=html
# Type checking
mypy acoriss_payment_gateway
# Linting
ruff check acoriss_payment_gateway
License
MIT
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file acoriss_payment_gateway-0.1.2.tar.gz.
File metadata
- Download URL: acoriss_payment_gateway-0.1.2.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bcb1eb4fc6941adfbd0c8da8ba68d039d04cb688353ce2c135b2600137205ac
|
|
| MD5 |
bbab493eec1111aba31b41706efe1e97
|
|
| BLAKE2b-256 |
52323c3d4888f30abff2e2183bd0f02bba9bbfab5e5752bf6a81b9fd55a999aa
|
File details
Details for the file acoriss_payment_gateway-0.1.2-py3-none-any.whl.
File metadata
- Download URL: acoriss_payment_gateway-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
487dfa21af1ed2095c417d95de66aeb326eebbb9fb89316de8785c40a89b6475
|
|
| MD5 |
1fd5fef8a901f189c6f107dfe57b0f8e
|
|
| BLAKE2b-256 |
8436ba419c5301c975e7ebb044bc9fd713812c3fd0ee97c5ae5cc80f70fa199e
|