Skip to content
Wazapin
Esc
navigateopen⌘Jpreview
On this page

Webhook event catalog

Subscribable webhook event types, when they fire, and sample JSON bodies.

Pick events when you configure Developer → Webhooks or POST /v1/settings/developer/webhooks/endpoints (filterTypes / enabled events in the app).

Messaging (most integrators)

Subscribe to these for send/receive automation.

Event When it fires Sample body (fields may include more in production)
message.new New message in a conversation (inbound from a contact, or certain outbound echoes). See below
message.sent Outbound message was sent from your workspace. conversation_id, message_id, channel_id
message.status_update Delivery/read/failed status changed for a sent message. message_id, status, often conversation_id, organization_id
conversation.updated Conversation metadata changed (assignment, status, preview, tags). conversation_id, status
contact.updated Contact profile linked to conversations was updated (also emitted on some creates). contact_id, name, organization_id
template.status_update WhatsApp template approval status changed. template_id, status

message.new (inbound text)

{
  "message_id": "9f1fd66d-c37a-4b50-a8c2-b4dca523f9c8",
  "conversation_id": "0f89b0f9-74b4-44f9-b9b6-48f6d4de57aa",
  "contact_id": "c1a2b3c4-d5e6-7890-abcd-ef1234567890",
  "channel_id": "wzp_abc123",
  "direction": "inbound",
  "from_phone": "6281234567890",
  "msg_type": "text"
}

message.status_update

{
  "message_id": "9f1fd66d-c37a-4b50-a8c2-b4dca523f9c8",
  "conversation_id": "0f89b0f9-74b4-44f9-b9b6-48f6d4de57aa",
  "status": "delivered",
  "organization_id": "org_123"
}

status values align with message records from GET /v1/messages/{messageID} (sent, delivered, read, failed, …).

More narrative examples: Webhook payload examples.

Commerce

Event When it fires
commerce.order.updated Order or payment state changed in Commerce.
{
  "order_id": "ord_01h2",
  "order_no": "INV-1042",
  "status": "paid",
  "payment_status": "paid"
}

Was this page helpful?