id, type, created_at, data) and is signed for authentication.
Webhooks are signed with HMAC-SHA256 — see Signature verification for details.
Transaction events
End-to-end lifecycle of a transaction.| Event | Description |
|---|---|
transaction.created | A transaction has been initiated |
transaction.completed | The transaction succeeded |
transaction.failed | The transaction failed (operator refusal, insufficient funds, etc.) |
transaction.expired | The transaction expired (customer did not confirm in time) |
transaction.cancelled | The transaction was cancelled |
Refund events
| Event | Description |
|---|---|
refund.created | A refund has been initiated |
refund.completed | The refund has reached the customer |
refund.failed | The refund could not be finalized |
Recurring payment events
Lifecycle of a one-off recurring payment schedule (see also Subscription events for continuous billing cycles).| Event | Description |
|---|---|
recurring.created | A recurring payment has been scheduled |
recurring.executed | A recurring payment occurrence has been executed successfully |
recurring.failed | An occurrence failed |
recurring.paused | The recurring payment has been paused |
recurring.cancelled | The recurring payment has been cancelled |
Payout events
Lifecycle of an outbound transfer to a Mobile Money or bank account.| Event | Description |
|---|---|
payout.initiated | The payout has been started by the partner |
payout.completed | The payout has reached the destination account |
payout.failed | The payout could not be finalized |
Subscription events
For SaaS subscriptions (continuous billing cycles — see Recurring payments).| Event | Description |
|---|---|
subscription.created | A subscription has been created |
subscription.activated | A subscription has been activated |
subscription.trial_ending | The trial period is ending soon |
subscription.renewed | The subscription has renewed successfully |
subscription.past_due | A subscription payment is past due |
subscription.payment_failed | A renewal payment attempt failed |
subscription.cancelled | The subscription has been cancelled |
Payment link events
| Event | Description |
|---|---|
payment_link.paid | A payment link was paid |
Checkout events
| Event | Description |
|---|---|
checkout.completed | A checkout session was completed |
checkout.expired | A checkout session expired |
Payload examples
transaction.completed
transaction.completed
transaction.failed
transaction.failed
payout.completed
payout.completed
subscription.renewed
subscription.renewed
Best practices
- Idempotency: use
event.idto deduplicate deliveries (Simiz may resend the same event if your endpoint fails) - Fast 2xx response: reply within 5 seconds, process asynchronously if needed
- Verify the signature before trusting the payload — see Signature verification
- Subscribe only to what you need — each endpoint can filter the event types it cares about from Settings → Webhooks

