Skip to main content
A webhook is your server’s doorbell: when something happens in Notifique (message sent, delivered, customer reply…), we ring it with a JSON POST to your URL.

What is a webhook?

It’s an HTTPS URL on your system that receives automatic alerts from Notifique. Instead of polling the API asking “was it delivered?”, you wait for the alert to arrive. Think of it like a push notification, but for your backend.

What is it for?

With webhooks you can:
  • Know right away when a message was sent, delivered, read, or failed
  • Automate orders, CRM, billing, and bots without checking the dashboard
  • Process messages customers send you (WhatsApp, Telegram, SMS)
  • Monitor instance connection (QR, connected, disconnected)
  • Track short-link clicks and Forms events

When to use?

How to set up

1. Prepare your endpoint

Create an HTTPS route that accepts POST JSON and responds 2xx quickly. Example: https://yoursite.com/webhooks/notifique If processing is heavy, queue on your side and return 200 immediately. Like answering the doorbell and handling the visit later.

2. Register in the dashboard

Open Developer → Webhooks, create a webhook, and select the events that matter to you. You can also register via the API with scopes webhooks:manage and webhooks:read. Need a key? See API Keys.
Store the secret from the response. You use it to validate each POST.

3. Validate the signature

Each POST includes X-Notifique-Signature and X-Notifique-Timestamp. Compute HMAC-SHA256 of the secret with {timestamp}.{raw body} and reject timestamps outside 5 minutes. Details in the Headers and signature section below.

4. Handle retries

If your endpoint fails, we retry at 5 min, 30 min, and 2 h. Respond 2xx quickly.

Sandbox vs production

  • Sandbox (sk_test_...): same event names; payload includes sandbox: true
  • Production (sk_live_...): real events from live traffic
Simulate events in Developer → Sandbox inbox. More in Sandbox mode.

Payload format

All requests are POST with Content-Type: application/json. The body follows this structure:

Headers and signature

  • HMAC calculation: hash = HMAC-SHA256(secret, timestamp + "." + body) (body = raw POST body).
  • Anti-replay: Reject requests with a timestamp outside a window (e.g. 5 minutes).

Inbound messages

To process what the customer sent (WhatsApp, Telegram, SMS):
  1. Subscribe to the event on the webhook
  2. Configure inbound in Settings → Received messages
The webhook notifies you with a summary. To download media (audio, image, document) on WhatsApp, use inboundId via the API. Full guide: Inbound messages and replies.

Best practices

  1. HTTPS always on the registered URL
  2. Respond 2xx quickly and process in the background
  3. Validate the signature on every POST
  4. Subscribe only to events your integration consumes
More details: Security and reliability.

Events by channel

Each channel has its own events. Select only what you need:

WhatsApp

Send, delivery, inbound, and instance

SMS

Send, DLR, MO, and replies

Telegram

Send, inbound, and instance

Instagram

Send, comments, and inbound

Email

Send, open, click, and bounce

Push

Send, delivery, and click

RCS

Send, delivery, and failure

Voice

Calls and recordings

Forms

Subscribe, confirm, and unsubscribe

Short links

Clicks and conversions

Phone numbers

Contracted number lifecycle

Automations

Enable, pause, and run lifecycle

Templates (Meta)

Approval, rejection, and category
Workspace reputation event (trust.score_changed): see Trust Factor.

Next steps