Skip to main content

What are webhooks?

Webhooks are HTTP notifications that sends to your server when events happen on a channel — such as a message received, delivery status, or connection change. Instead of your system periodically polling the API, pushes events to you as they happen.
Customer sends message → Hub Message → POST to your URL → Your system processes it
Webhooks require the ENTERPRISE role on your account. If your account does not have this role, webhook CRUD calls return 422. Contact support to enable it.

Available events

EventWhen it is triggered
MESSAGE_RECEIVEDA message was received on the channel
MESSAGE_DELIVERYDelivery confirmation for a sent message
MESSAGE_STATUSMessage status update (read, failed, etc.)
RECEIVED_STATUSCombined received and status
RECEIVED_AND_DELIVERYCombined received and delivery
CONNECTEDThe channel was connected
DISCONNECTEDThe channel was disconnected
PRESENCE_CHATContact presence or typing indicator
INITIAL_DATAInitial data sync when channel connects
BLOCKContact block event

Payload formats

supports three payload formats:
FormatDescription
DEFAULTStandard Hub Message format
Z_APIZ-API compatible format — ideal for migration or systems already integrated with Z-API

Webhook authentication

You can configure how authenticates when calling your URL:
TypeHow it works
NONENo authentication (not recommended in production)
BEARERSends Authorization: Bearer <token>
API_KEYSends a configured API key
BASICHTTP Basic Authentication (username:password)
CUSTOM_HEADERSends a custom header with a name and value you define

HMAC signing

To ensure requests received are genuinely from and have not been tampered with, enable HMAC signing by setting signing: true when creating the webhook. When enabled:
  • A 64-character hexadecimal secret is generated and returned only once on create/update.
  • Each request sent to your webhook includes a header with an HMAC-SHA256 signature computed over the payload.
  • You verify the signature on your server using the stored secret.
The secret is shown only in the POST /webhooks (create) or PATCH /webhooks/{id} (update with signing: true) response. Store it securely — it cannot be retrieved afterwards.

Per channel

Each webhook is associated with a specific channel via channelId. A single channel can have multiple webhooks with different configurations — for example, one for messages and another for connection events.

Management

Create webhook

Register a new webhook endpoint on a channel.

List webhooks

View all webhooks for a channel.

Update webhook

Update URL, events, authentication, or status.

Delete webhook

Remove a webhook from a channel.

Payload structure

Real payload examples received for each message type.