Set up
1
Build an HTTPS endpoint
A
POST route on your server, for example https://merchant.co.ke/webhooks/tanda.2
Register it in the dashboard
Go to Webhooks in the dashboard. Sandbox and production each have their own URL.
3
Generate a webhook secret
Under Developers → API keys. You’ll use it to verify every request.
4
Test it
Create a sandbox transaction and call Simulate webhook to send yourself an event.
Delivery
Write a reliable handler
Verify, queue, acknowledge. Do the slow work in the background so you always answer within the timeout.Node.js (Express)
- Key on
transactionId(or yourexternalReference) so a duplicate does nothing. - Never move backwards. Ignore a
pendingthat arrives aftersuccessfulorfailed. - Acknowledge events you don’t use. Return
2xxfor unknown event types so they aren’t retried. - Double-check before irreversible actions. For high-value orders, confirm with Get transaction before you ship.
Inspect and replay
Verify webhooks
Reject requests that didn’t come from Tanda.
Events and payloads
Every event, field and status.

