Webhook Events

Subscribe to HTTPS endpoints and receive real-time notifications for sessions and messages. List available events with GET /api/webhooks/events (no auth).

Delivery headers

  • X-Webhook-Event — canonical event name
  • X-Webhook-Signature — HMAC-SHA256 of the JSON body
  • X-Webhook-Delivery-Id — unique delivery UUID
  • X-Webhook-Attempt — retry attempt number
session_connectedSessions

Emitted when a WhatsApp session connects successfully.

{
  "event": "session_connected",
  "timestamp": "2026-01-01T12:00:00.000Z",
  "data": {
    "sessionId": "uuid",
    "phone": "+15551234567",
    "status": "connected"
  }
}
session_disconnectedSessions

Emitted when a session disconnects or is logged out.

{
  "event": "session_disconnected",
  "timestamp": "2026-01-01T12:00:00.000Z",
  "data": {
    "sessionId": "uuid",
    "reason": "logged_out"
  }
}
message_receivedMessages

Inbound message from a contact.

{
  "event": "message_received",
  "timestamp": "2026-01-01T12:00:00.000Z",
  "data": {
    "sessionId": "uuid",
    "from": "+15551234567",
    "text": "Hello",
    "messageId": "msg-id"
  }
}
message_sentMessages

Outbound message accepted for delivery.

{
  "event": "message_sent",
  "timestamp": "2026-01-01T12:00:00.000Z",
  "data": {
    "sessionId": "uuid",
    "to": "+15551234567",
    "messageId": "msg-id"
  }
}
message_deliveredMessages

Delivery receipt for an outbound message.

{
  "event": "message_delivered",
  "timestamp": "2026-01-01T12:00:00.000Z",
  "data": {
    "sessionId": "uuid",
    "messageId": "msg-id",
    "deliveredAt": "2026-01-01T12:00:00.000Z"
  }
}
message_readMessages

Read receipt for an outbound message.

{
  "event": "message_read",
  "timestamp": "2026-01-01T12:00:00.000Z",
  "data": {
    "sessionId": "uuid",
    "messageId": "msg-id",
    "readAt": "2026-01-01T12:00:00.000Z"
  }
}