How do webhooks work?
Overview
Webhooks let Dyva push events to your server in real-time. Instead of polling the API for changes, you register a URL and Dyva sends HTTP POST requests whenever specified events occur.
Setting Up Webhooks
1. Go to Settings → API → Webhooks
2. Click Add Webhook
3. Enter your endpoint URL (must be HTTPS)
4. Select the events you want to receive
5. Save — Dyva sends a test ping to verify your endpoint is reachable
Available Events
message.created — a new message was sent in any conversation
message.updated — a message was edited
conversation.created — a new conversation was started
conversation.deleted — a conversation was deleted
character.updated — a character's settings were changed
character.published — a character was published to the marketplace
memory.created — a new memory was stored for a user
voice.session.started / voice.session.ended — voice session lifecycle events
Payload Verification
Every webhook payload is signed with a shared secret (provided when you create the webhook). Verify the X-Dyva-Signature header to ensure the request is genuine and has not been tampered with.
The signature is an HMAC-SHA256 hash of the raw request body using your webhook secret as the key.
Retry Policy
If your endpoint returns a non-2xx status code or times out (10-second limit), Dyva retries:
- 3 retries with exponential backoff (10s, 60s, 300s)
- After all retries fail, the event is marked as failed
- 10 consecutive failures automatically disable the webhook — you will receive an email notification
Re-enable disabled webhooks from Settings → API → Webhooks.
Full documentation at dyva.ai/docs/webhooks.
Use a service like RequestBin or ngrok during development to inspect webhook payloads before building your production handler.
Not finding it?
AI answers instantly. Humans follow up within 24 hours.