Payments — Python SDK
Create a transaction
transaction = client.transactions.create(
amount=5000,
currency="XAF",
payment_method="ORANGE_MONEY",
payer={
"phone": "237690000000",
"name": "John Doe",
"email": "john@example.com",
},
description="Order #12345",
reference="ORDER-123",
metadata={"order_id": "123"},
callback_url="https://your-site.com/webhooks/simiz",
return_url="https://your-site.com/success",
)
print(transaction.id) # tx_xxx
print(transaction.status) # PENDING
print(transaction.payment_url) # Payment URL
Retrieve a transaction
transaction = client.transactions.retrieve("tx_xxx")
if transaction.status == "COMPLETED":
print("Payment successful!")
List transactions
# With filters
transactions = client.transactions.list(
limit=20,
status="COMPLETED",
created_after="2024-01-01",
)
for tx in transactions.data:
print(f"{tx.id}: {tx.amount} {tx.currency}")
Create a refund
refund = client.refunds.create(
transaction_id="tx_xxx",
amount=2500,
reason="Item returned",
)
print(refund.status) # PENDING
Error handling
from simiz.errors import SimizError, APIError, AuthenticationError
try:
tx = client.transactions.create(...)
except AuthenticationError:
print("Invalid API key")
except APIError as e:
print(f"API error: {e.code} — {e.message}")
except SimizError as e:
print(f"Network error: {e}")

