Skip to main content
When a payment event occurs, the platform sends an HTTP POST request to your configured callback URL. Each request contains an event field identifying the notification type.
If your API token has a passphrase configured, every request includes a Pesahub-Signature header — an HMAC over the raw payload. See Verify a Checksum for validation steps.

Events

Payload Fields

string
required
The event type. One of payment.received or payment.failed.
string
required
Unique identifier for the transaction.
string
required
The payment method used, e.g. ussd.
string
required
ISO currency code, e.g. TZS.
object
required
object
required
object
required
object
Arbitrary key-value pairs provided at payment creation, echoed back as-is. Use these to correlate events with records in your system.
string
Human-readable reason for the failure. Only present on payment.failed.
string
required
ISO 8601 UTC timestamp of when the payment was created.
string
required
ISO 8601 UTC timestamp of the last status update.
string
required
ISO 8601 UTC timestamp of when this webhook was dispatched.

Example Payloads