Overview
Fingo Pay delivers asynchronous events (e.g., final transaction results) via HTTP POST to your endpoint.Registering webhook URLs
- Provide a per-request
webhookUrl(as in C2B/B2C endpoints), and/or - Configure an account-level default webhook with our team (recommended for reliability).
Security — Signature verification
We sign every webhook with an HMAC SHA‑256 signature using your webhook secret. Headers:v1 = hex(hmac_sha256(secret, t + ”.” + raw_body)) and require timestamp t within 5 minutes.
Delivery & retries
- Expect 2xx within 10 seconds.
- Retries use exponential backoff for up to 24 hours.
- Each event is delivered at least once; de‑duplicate using
X-Fingo-Event-Id.
Event types
-
transaction.created -
transaction.processing -
transaction.succeeded -
transaction.failed -
transaction.creation_failed -
transaction.reversed -
payout.succeeded -
payout.failed -
balance.updated
Webhook Event Reference
View detailed webhook event schemas and examples for all event types
Example payloads
C2B (M-Pesa Charge) Webhooks
- Transaction Succeeded
- Transaction Failed - User Cancelled
- Transaction Failed - Creation Error
Sent when the customer successfully completes the STK Push payment.
B2C (M-Pesa Payout) Webhooks
- Creation Failed - Business Logic Error
- Payout Succeeded
- Payout Failed - Provider Error
Sent when transaction creation fails due to non-retriable errors like insufficient balance, duplicate transaction, or account not found.
Other error code examples
Other error code examples