> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ycloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Mensaje de eco de WhatsApp creado

> Almacene los ecos de texto y multimedia salientes y correlacione sus actualizaciones de estado posteriores.

## Qué es

Suscríbase a `whatsapp.echo_message.created`.

Recibe este evento cuando YCloud registra un eco saliente para un Agent incorporado a través de la API REST pública. Lea el contenido con formato de mensaje estándar desde `whatsappMessage`; no use este evento para mensajes entrantes de clientes.

El contrato actual mantiene el nombre del evento sin cambios mientras expone el eco como un
mensaje estándar de WhatsApp. Los campos de Agent, traspaso y enrutamiento de Inbox no forman parte
de esta carga útil.

## Antes de comenzar

1. Incorpore el Agent a través de la [API REST pública](/es/api-reference/meta-business-agents/onboard).
2. Suscriba un endpoint de webhook activo en la misma cuenta a `whatsapp.echo_message.created`.
3. Verifique `YCloud-Signature` con el cuerpo de la solicitud sin procesar, acepte cada evento de forma duradera y procéselo de manera idempotente.

<Warning>
  Los Agents creados en la consola no emiten este webhook de cliente. La sincronización de su Inbox es un flujo independiente.
</Warning>

Consulte [Configurar webhooks](/es/api-reference/guides/api-fundamentals/configure-webhooks#subscribe-to-echo-and-handover-events) para la configuración del endpoint.

## Cómo funciona

Todos los ejemplos usan identificadores de marcador de posición. Enrute mediante el `type` externo y lea
`whatsappMessage`, no `whatsappMetaBusinessAgent`, `whatsappEchoMessage` o `data`.

Deduplique entregas repetidas con el `id` externo. El `createTime` externo es la
hora del evento de webhook; los campos de hora de mensajes anidados son horas de origen RFC 3339.

* Use `id` o `wamid` para correlacionar eventos de estado posteriores.
* Lea el texto desde `text.body`. Para contenido multimedia, inspeccione `type` y el objeto de contenido correspondiente. Los ID de multimedia no son URL públicas de descarga.
* El teléfono del cliente y el BSUID son independientes. Cuando la devolución de llamada de origen proporciona ambos, el evento incluye `to` junto con `recipientUserId` o `parentRecipientUserId`. Las identidades faltantes se omiten y no se infieren unas de otras.
* `from` es el número de teléfono visible de la empresa cuando la devolución de llamada de origen suministra un número de teléfono válido. No se deriva de `phoneNumberId`.
* El contexto de respuesta se normaliza según el contrato estándar de mensajes. Por ejemplo, el `context.id` de origen se expone como `context.message_id`.
* Los campos de Agent, traspaso, enrutamiento, precios y conversación no están incluidos.
* `status` es el estado almacenado cuando se procesa el eco; no se garantiza que sea `sent`.
* Los mensajes entrantes de clientes utilizan [`whatsapp.inbound_message.received`](/es/api-reference/guides/examples/webhook-examples/whatsapp-inbound-message-webhook-examples). Los ecos de Business App utilizan [`whatsapp.smb.message.echoes`](/es/api-reference/guides/examples/webhook-examples/whatsapp-business-app-sent-message-sync-webhook-examples).

## Solicitud

YCloud envía estos cuerpos JSON en solicitudes HTTP `POST` a su URL de Webhook configurada.

## Respuesta

Devuelva una respuesta `2xx` tras aceptar cada evento de forma duradera. Procese el trabajo lento de manera asíncrona.

## Eco de texto saliente

### Solicitud

Almacene el texto de whatsappMessage.text.body. id y wamid vinculan eventos de estado posteriores.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "evt_example_echo_text",
  "type": "whatsapp.echo_message.created",
  "apiVersion": "v2",
  "createTime": "2026-09-09T02:00:00.000Z",
  "whatsappMessage": {
    "id": "MESSAGE_ID",
    "wamid": "wamid.EXAMPLE",
    "wabaId": "WABA_ID",
    "from": "+12025550123",
    "to": "+12025550124",
    "recipientUserId": "GB.898232076600896",
    "type": "text",
    "text": {
      "body": "Hello! How can I help you?"
    },
    "status": "sent",
    "createTime": "2026-09-09T02:00:00.000Z",
    "sendTime": "2026-09-09T02:00:00.000Z"
  }
}
```

### Respuesta

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
HTTP/1.1 200 OK
```

### Explicación

Lea el texto recibido como eco desde `whatsappMessage.text.body`. Use `id` o `wamid` para correlacionar eventos de estado posteriores.

## Eco de imagen saliente

### Solicitud

El contenido del mensaje varía según el tipo. Trate los ID de multimedia como referencias del proveedor, no como URL públicas de descarga.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "evt_example_echo_image",
  "type": "whatsapp.echo_message.created",
  "apiVersion": "v2",
  "createTime": "2026-09-09T02:00:00.000Z",
  "whatsappMessage": {
    "id": "IMAGE_MESSAGE_ID",
    "wamid": "wamid.IMAGE_EXAMPLE",
    "wabaId": "WABA_ID",
    "from": "+12025550123",
    "to": "+12025550124",
    "recipientUserId": "GB.898232076600896",
    "type": "image",
    "image": {
      "id": "MEDIA_ID",
      "mime_type": "image/jpeg"
    },
    "status": "sent",
    "createTime": "2026-09-09T02:00:00.000Z",
    "sendTime": "2026-09-09T02:00:00.000Z"
  }
}
```

### Respuesta

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
HTTP/1.1 200 OK
```

### Explicación

Use `type` para seleccionar el objeto de contenido coincidente. Trate el `id` de multimedia como una referencia del proveedor.

### Ejemplos relacionados

* [Mensaje de eco de WhatsApp actualizado](/es/api-reference/guides/examples/webhook-examples/whatsapp-echo-message-updated)
* [Traspaso de Agent de WhatsApp actualizado](/es/api-reference/guides/examples/webhook-examples/whatsapp-meta-business-agent-handover-updated)
* [Ejemplos de eco y traspaso de Agent](/es/api-reference/guides/examples/webhook-examples/overview#echo-and-agent-handover-events)
* [Catálogo completo de cargas útiles](/es/api-reference/guides/examples/webhook-examples/webhook-payload-examples)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.