What it is
Subscribe to whatsapp.echo_message.created.
You receive this event when YCloud records an outbound echo for an Agent onboarded through the Public REST API. Read the standard message-shaped content from whatsappMessage; do not use this event for customer inbound messages.
The current contract keeps the event name unchanged while exposing the echo as a
standard WhatsApp message. Agent, handover, and Inbox routing fields are not part
of this payload.
Before you begin
- Onboard the Agent through the Public REST API.
- Subscribe an active webhook endpoint in the same account to
whatsapp.echo_message.created.
- Verify
YCloud-Signature against the raw request body, durably accept each event, and process it idempotently.
Console-created Agents do not emit this customer webhook. Their Inbox synchronization is a separate flow.
See Configure webhooks for endpoint setup.
How it works
All examples use placeholder identifiers. Route by the outer type and read
whatsappMessage, not whatsappMetaBusinessAgent, whatsappEchoMessage, or data.
Deduplicate repeated deliveries with the outer id. The outer createTime is the
webhook event time; nested message time fields are RFC 3339 source times.
- Use
id or wamid to correlate later status events.
- Read text from
text.body. For media, inspect type and the corresponding content object. Media IDs are not public download URLs.
- The customer phone and BSUID are independent. When the source callback supplies both, the event includes
to together with recipientUserId or parentRecipientUserId. Missing identities are omitted and are not inferred from each other.
from is the business display phone number when the source callback supplies a valid phone number. It is not derived from phoneNumberId.
- Reply context is normalized to the standard message contract. For example, source
context.id is exposed as context.message_id.
- Agent, handover, routing, pricing, and conversation fields are not included.
status is the stored status when the echo is processed; it is not guaranteed to be sent.
- Customer inbound messages use
whatsapp.inbound_message.received. Business App echoes use whatsapp.smb.message.echoes.
Request
YCloud sends these JSON bodies in HTTP POST requests to your configured webhook URL.
Response
Return a 2xx response after durably accepting each event. Process slow work asynchronously.
Outbound text echo
Request
Store the text from whatsappMessage.text.body. id and wamid link subsequent status events.
Response
Explanation
Read the echoed text from whatsappMessage.text.body. Use id or wamid to correlate later status events.
Outbound image echo
Request
Message content varies by type. Treat media IDs as provider references, not public download URLs.
Response
Explanation
Use type to select the matching content object. Treat the media id as a provider reference.