Delivery and retry rules
- Success = any 2xx response within 10 seconds. The response body is ignored.
- Retried: timeouts, network errors, 408, 425, 429 and 5xx — up to 9 attempts over about 24 hours (waiting 10s, 1m, 5m, 30m, 1h, 3h, 6h and 12h). A Retry-After header on 429/503 is honoured, up to 15 minutes.
- Not retried: other 4xx responses. Redirects (3xx) are not followed and count as a failure — register the final URL.
- Auto-disable: after 50 consecutive events fail all their attempts, the webhook is disabled and workspace owners are notified. Fix the endpoint, then re-activate it.
- Delivery logs (one row per attempt, with status code and error) are kept for 30 days, and any failed delivery can be sent again from the dashboard or with the Redeliver Webhook Event endpoint.
Which events can I subscribe to?
Event names are lowercase — the same value arrives as `event` in the payload. They cover messages (message_received, message_status_update, first_message, template_updated, raw_whatsapp), conversations (chat_assigned, conversation_opened, conversation_closed and more), contacts (tags, custom fields, notes), WhatsApp Flows, WhatsApp calls and WooCommerce orders — 41 in all. The full list with an example of every payload is in the Webhooks Guide.
Good to know
- Opted-in contacts who haven't shared their phone number arrive with bsuid and username instead of waId and phone.
- Messages are identified by messageId (the WhatsApp wamid). New fields may be added at any time — ignore fields you don't recognise.
- The plan limit counts active webhooks only; Growth includes unlimited webhooks. Webhooks & API →

