Webhook events
Reference of the inbound-message payload Msgera POSTs to your webhook URL.
Msgera POSTs a JSON payload to your configured webhook URL whenever a WhatsApp message arrives at one of your connected devices. There is one payload shape — the normalized inbound message — and Msgera dispatches it to either your personal or group webhook URL depending on whether the message arrived in a 1:1 chat or a group chat. See Webhooks for how to configure these URLs.
Status events are websocket-only
Delivery, read, and failure updates for messages yousent are streamed over the dashboard's realtime socket — they are not delivered to your webhook URL. Use the dashboard or the messages listing endpoint to track outbound status.
Payload shape
{
"eventId": "evt_01HXPNZ123",
"sessionId": "sess_4f8c2a1e",
"tenantId": "cust_4821",
"from": "+201001234567",
"fromName": "Zeyad",
"text": "When will my order arrive?",
"mediaType": null,
"mediaUrl": null,
"timestamp": "2026-04-12T10:11:23.000Z",
"providerMessageId": "wamid.HBgM…",
"isGroup": false,
"groupId": null,
"groupName": null
}Fields
| Field | Type | Description |
|---|---|---|
eventId | string | Stable id for this delivery — useful for deduping retries. |
sessionId | string | Internal session/device identifier the message arrived on. |
tenantId | string | Optional pass-through tenant identifier if you set one. |
from | string | Sender phone number. |
fromName | string | Sender display name if WhatsApp exposed one. |
text | string | Message text. Empty when the payload is media-only. |
mediaType | string | image | video | audio | document | sticker, or null for text. |
mediaUrl | string | URL to fetch the media binary. null for text-only messages. |
timestamp | string | ISO 8601 timestamp the provider stamped on the message. |
providerMessageId | string | Underlying WhatsApp message id. |
isGroup | boolean | True when the message came from a group chat. |
groupId | string | Provider id of the group chat (only when isGroup is true). |
groupName | string | Display name of the group chat. |
Reactions and typing events are dropped
Empty inbound events (no
text and no media) are filtered out server-side, so your endpoint will not see reaction/typing/system noise.