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}")