> ## 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.

# Mensagem de eco do WhatsApp criada

> Armazene ecos de texto e mídia de saída e correlacione suas atualizações de status posteriores.

## O que é

Inscreva-se em `whatsapp.echo_message.created`.

Você recebe este evento quando a YCloud registra um eco de saída para um Agent integrado por meio da API REST pública. Leia o conteúdo no formato padrão de mensagem a partir de `whatsappMessage`; não use este evento para mensagens de entrada de clientes.

O contrato atual mantém o nome do evento inalterado enquanto expõe o eco como uma mensagem padrão do WhatsApp. Campos de roteamento de Agent, handover e Inbox não fazem parte deste payload.

## Antes de começar

1. Integre o Agent por meio da [API REST pública](/pt/api-reference/meta-business-agents/onboard).
2. Inscreva um endpoint de webhook ativo na mesma conta em `whatsapp.echo_message.created`.
3. Verifique `YCloud-Signature` em relação ao corpo bruto da requisição, aceite cada evento de forma duradoura e processe-o de maneira idempotente.

<Warning>
  Agents criados no console não emitem este webhook de cliente. A sincronização de Inbox deles é um fluxo separado.
</Warning>

Consulte [Configurar webhooks](/pt/api-reference/guides/api-fundamentals/configure-webhooks#subscribe-to-echo-and-handover-events) para configuração do endpoint.

## Como funciona

Todos os exemplos usam identificadores temporários (placeholders). Roteie pelo `type` externo e leia `whatsappMessage`, não `whatsappMetaBusinessAgent`, `whatsappEchoMessage` ou `data`.

Elimine entregas duplicadas com o `id` externo. O `createTime` externo é o horário do evento de webhook; campos de horário de mensagem aninhados são horários de origem em RFC 3339.

* Use `id` ou `wamid` para correlacionar eventos de status posteriores.
* Leia o texto de `text.body`. Para mídia, inspecione `type` e o objeto de conteúdo correspondente. Os IDs de mídia não são URLs públicas de download.
* O telefone do cliente e o BSUID são independentes. Quando o callback de origem fornece ambos, o evento inclui `to` junto com `recipientUserId` ou `parentRecipientUserId`. Identidades ausentes são omitidas e não são inferidas uma da outra.
* `from` é o número de telefone de exibição da empresa quando o callback de origem fornece um número de telefone válido. Ele não é derivado de `phoneNumberId`.
* O contexto de resposta é normalizado para o contrato padrão de mensagem. Por exemplo, `context.id` de origem é exposto como `context.message_id`.
* Campos de Agent, handover, roteamento, preços e conversa não são incluídos.
* `status` é o status armazenado quando o eco é processado; não há garantia de que seja `sent`.
* Mensagens de entrada de clientes usam [`whatsapp.inbound_message.received`](/pt/api-reference/guides/examples/webhook-examples/whatsapp-inbound-message-webhook-examples). Ecos do aplicativo comercial usam [`whatsapp.smb.message.echoes`](/pt/api-reference/guides/examples/webhook-examples/whatsapp-business-app-sent-message-sync-webhook-examples).

## Requisição

A YCloud envia esses corpos JSON em requisições HTTP `POST` para a URL de webhook configurada.

## Resposta

Retorne uma resposta `2xx` após aceitar cada evento de forma duradoura. Processe tarefas lentas de maneira assíncrona.

## Eco de texto de saída

### Requisição

Armazene o texto de whatsappMessage.text.body. id e wamid vinculam eventos de status subsequentes.

```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"
  }
}
```

### Resposta

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

### Explicação

Leia o texto ecoado de `whatsappMessage.text.body`. Use `id` ou `wamid` para correlacionar eventos de status posteriores.

## Eco de imagem de saída

### Requisição

O conteúdo da mensagem varia conforme o tipo. Trate os IDs de mídia como referências do provedor, não como URLs públicas de download.

```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"
  }
}
```

### Resposta

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

### Explicação

Use `type` para selecionar o objeto de conteúdo correspondente. Trate o `id` de mídia como uma referência do provedor.

### Exemplos relacionados

* [Mensagem de eco do WhatsApp atualizada](/pt/api-reference/guides/examples/webhook-examples/whatsapp-echo-message-updated)
* [Handover de Agent do WhatsApp atualizado](/pt/api-reference/guides/examples/webhook-examples/whatsapp-meta-business-agent-handover-updated)
* [Exemplos de eco e handover de Agent](/pt/api-reference/guides/examples/webhook-examples/overview#echo-and-agent-handover-events)
* [Catálogo completo de payloads](/pt/api-reference/guides/examples/webhook-examples/webhook-payload-examples)


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