Webhook Events

Message sent event

Fired when a message is sent via the API, or from the WhatsApp Business app on Coexistence numbers. Sends that carry platform-specific context deliver it under metadata, so a quote-reply sent through the API arrives with metadata.quotedMessageId and mirroring CRMs can thread it without a lookup. Which surfaces actually carry that reference is documented on WebhookPayloadMessageSent.metadata.quotedMessageId; a quote-reply sent from the WhatsApp Business or Instagram app is not one of them.

postWebhookmessage.sent

Payload

idstring required

Stable webhook event ID: the dedupe key, also sent as the X-Zernio-Event-Id header and identical on every retry and redelivery. It identifies the event only, never an account or other resource.

testboolean

Always true when present: only a sample sent by POST /v1/webhooks/test with an event carries it. Real deliveries never do.

event'message.sent' required
timestampstring date-time required

UTC time at which Zernio generated this event (set once when the event payload is built, before delivery is queued). Retries and redeliveries keep the original value, so it reflects the event, not the delivery attempt.

Example payload

{
  "profiles": [
    {
      "externalId": "tenant_42"
    }
  ],
  "pricing": {
    "pricingModel": "PMP",
    "category": "marketing",
    "type": "regular"
  },
  "billingConversation": {
    "originType": "utility"
  }
}

Response

Webhook received successfully

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.