Event type (for example
message.new) is determined by your endpoint subscription and delivery metadata, not by a top-level event_type field on every body. The JSON body contains the fields below.svix-id (or webhook-id) header on each delivery. See Message lifecycle and idempotency.
Inbound text (message.new)
Task guide: Handle inbound text
User sent a text message to your WhatsApp number.
Example body
Example body
Interactive button reply (message.new)
Task guide: Handle interactive replies
User tapped a quick-reply button from your buttons message.
Example body
Example body
GET /v1/messages/{messageID} when you need button id / title.Interactive list reply (message.new)
Task guide: Handle interactive replies
User picked a row from a list message.
Example body
Example body
Location shared by user (message.new)
After a location request, the user may share coordinates.
Example body
Example body
Delivery status (message.status_update)
Task guide: Handle delivery status
When an outbound message moves through sent, delivered, read, or failed:
Example body
Example body
Subscribe to
message.status_update on your endpoint. Status values match message records from GET /v1/messages/{messageID}.