Skip to main content

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

  1. Onboard the Agent through the Public REST API.
  2. Subscribe an active webhook endpoint in the same account to whatsapp.echo_message.created.
  3. 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.