How webhooks work
You subscribe a URL to a service. When a matching event occurs, Dojah sends an HTTPPOST with a JSON body to that URL. Respond 200 to acknowledge receipt.
Subscribe to a service
Register a callback URL against a service withPOST /api/v1/webhook/subscribe. You can also fetch and delete subscriptions.
cURL
kyc_widget, address, sms, and AML Monitoring, spanning verification, fraud, AML, and messaging events.
Event payload
Events arrive as JSON with the event fields at the top level — unlike REST responses, webhook payloads don’t use theentity wrapper. Always look the event up against your own records using its reference before acting on it.
Verify events are from Dojah
Before trusting a payload, confirm it came from Dojah using any of these:1
IP allowlisting
Accept webhook calls only from Dojah’s IP:
135.119.89.106.2
Signature with payload (x-dojah-signature)
HMAC SHA256 of the JSON body, signed with your secret key. Recompute and compare.
3
Signature, secret only (x-dojah-signature-v2)
HMAC SHA256 of just your secret key. Recompute and compare.
Node.js — verify x-dojah-signature
File links expire. Any file URLs inside a webhook payload are temporary — see File links & expiry.