When a user sends a message to your WhatsApp number, the Connexease Gateway receives the event from Meta and forwards it to your registered webhook URL. The top-level envelope is always the same —Documentation Index
Fetch the complete documentation index at: https://docs.gateway.connexease.com/llms.txt
Use this file to discover all available pages before exploring further.
entry[0].changes[0].value — but the inner shape depends on what the user sent. This page is the complete reference for every incoming message type, with field descriptions for each.
Envelope Structure
Every incoming message arrives wrapped in this envelope:| Field | Type | Description |
|---|---|---|
entry[0].id | string | Your WhatsApp Business Account (WABA) ID |
value.metadata.phone_number_id | string | Meta ID of the phone number that received the message |
value.metadata.display_phone_number | string | Human-readable phone number |
value.contacts[0].wa_id | string | Sender’s WhatsApp phone number |
value.contacts[0].profile.name | string | Sender’s WhatsApp display name |
value.messages[0] | object | The message object — structure varies by type |
Common Message Fields
Every message object, regardless of type, contains:| Field | Type | Description |
|---|---|---|
from | string | Sender’s phone number (same as contacts[0].wa_id) |
id | string | Unique incoming message ID (wamid) |
timestamp | string | Unix timestamp in seconds |
type | string | Message type — see sections below |
Message Types
Text Message
Text Message
Received when a user sends a plain text message.
| Field | Type | Description |
|---|---|---|
text.body | string | The text content of the message |
Image Message
Image Message
Received when a user sends a photo. The image content must be downloaded via the Media API using
image.id.| Field | Type | Description |
|---|---|---|
image.id | string | Media ID — use this to download the image via the Media API |
image.mime_type | string | image/jpeg or image/png |
image.sha256 | string | SHA-256 hash for integrity verification |
image.caption | string | Caption written by the user (optional) |
See the Media page for how to download the file using
image.id.Audio Message
Audio Message
Received when a user sends an audio file or records a voice note.
| Field | Type | Description |
|---|---|---|
audio.id | string | Media ID for downloading the audio |
audio.voice | boolean | true = user recorded a voice note; false = file upload |
audio.mime_type | string | audio/ogg; codecs=opus, audio/mp4, audio/mpeg, etc. |
audio.sha256 | string | SHA-256 hash for integrity verification |
Document Message
Document Message
Received when a user sends a PDF, Word document, or other file.
| Field | Type | Description |
|---|---|---|
document.id | string | Media ID for downloading the document |
document.filename | string | Original filename as uploaded by the user |
document.mime_type | string | MIME type of the file |
document.caption | string | Caption written by the user (optional) |
Video Message
Video Message
Received when a user sends a video file.
| Field | Type | Description |
|---|---|---|
video.id | string | Media ID for downloading the video |
video.mime_type | string | video/mp4 or video/3gp |
video.caption | string | Caption written by the user (optional) |
Sticker Message
Sticker Message
Received when a user sends a WhatsApp sticker.
| Field | Type | Description |
|---|---|---|
sticker.id | string | Media ID for downloading the sticker |
sticker.animated | boolean | true = animated sticker |
sticker.mime_type | string | Always image/webp |
Location Message
Location Message
Received when a user shares their location.
| Field | Type | Description |
|---|---|---|
location.latitude | number | Latitude coordinate |
location.longitude | number | Longitude coordinate |
location.name | string | Place name (optional, set by user) |
location.address | string | Full address (optional) |
Contact Message
Contact Message
Received when a user shares a contact card.
| Field | Type | Description |
|---|---|---|
contacts[].name.formatted_name | string | Full name of the shared contact |
contacts[].phones[].phone | string | Phone number |
contacts[].emails[].email | string | Email address |
Interactive — Button Reply
Interactive — Button Reply
Interactive — List Reply
Interactive — List Reply
Received when a user selects a row from the list message you sent.
| Field | Type | Description |
|---|---|---|
list_reply.id | string | The row id you set in the list sections |
list_reply.title | string | The row title |
list_reply.description | string | The row description (if set) |
Reaction Message
Reaction Message
Received when a user reacts to one of your messages with an emoji.
| Field | Type | Description |
|---|---|---|
reaction.message_id | string | The wamid of the message that was reacted to |
reaction.emoji | string | The emoji character (empty string = reaction removed) |
Order Message
Order Message
Received when a user places an order through a WhatsApp catalog.
| Field | Type | Description |
|---|---|---|
order.catalog_id | string | Meta catalog ID |
order.text | string | Note from the user (optional) |
order.product_items[].product_retailer_id | string | Your product SKU/ID |
order.product_items[].quantity | number | Ordered quantity |
order.product_items[].item_price | number | Unit price at time of order |
order.product_items[].currency | string | ISO 4217 currency code |
Parsing Incoming Messages
Tips
For media messages,
image.id, audio.id, etc. are temporary Media IDs that expire after 30 days. Download and store the file on your own infrastructure promptly.