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

# messenger.message.updated

> Ocorre quando um snapshot salvo de mensagem comum de saída do Messenger está disponível, incluindo resultados de envio e confirmações correspondentes.

Use `messenger.message.updated` para processar este evento em seu endpoint de webhook.

## Gatilhos

Ocorre quando um snapshot salvo de mensagem comum de saída do Messenger está disponível, incluindo resultados de envio e confirmações correspondentes.

Inscreva-se em `messenger.message.updated` ao [configurar seu endpoint de webhook](https://docs.ycloud.com/pt/api-reference/guides/api-fundamentals/configure-webhooks.md).

Este evento inclui resultados de envio e confirmações correspondentes para uma mensagem comum de saída salva. Correlacione os snapshots pelo `id` da mensagem. Horários intermediários de confirmação desconhecidos podem ser omitidos.

## Sintaxe

A YCloud envia uma solicitação HTTP `POST` para a URL de webhook configurada. A estrutura a seguir mostra uma variante de payload. Os valores entre colchetes angulares são marcadores de posição; seus tipos estão listados em **Parâmetros**. Campos opcionais e outras variantes são descritos abaixo.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "<ID>",
  "type": "messenger.message.updated",
  "apiVersion": "<API_VERSION>",
  "createTime": "<CREATE_TIME>",
  "messengerMessage": {
    "id": "<ID>",
    "metaMessageId": "<META_MESSAGE_ID>",
    "from": "<FROM>",
    "to": "<TO>",
    "type": "<TYPE>",
    "text": {
      "body": "<BODY>"
    },
    "status": "<STATUS>",
    "createTime": "<CREATE_TIME>",
    "updateTime": "<UPDATE_TIME>",
    "readTime": "<READ_TIME>"
  }
}
```

## Parâmetros

Valide o cabeçalho HTTP `YCloud-Signature` antes de processar o corpo JSON. Consulte a [validação de assinatura](https://docs.ycloud.com/pt/api-reference/guides/api-fundamentals/configure-webhooks.md).

### Envelope do evento

| Parâmetro | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `id` | string | Sim | ID exclusivo do evento. Tamanho mínimo: `6`. Tamanho máximo: `128`. |
| `type` | string | Sim | Sempre `messenger.message.updated`. |
| `apiVersion` | string | Sim | A versão da API usada para renderizar este evento. |
| `createTime` | string (date-time) | Sim | O momento em que este evento foi criado, formatado em [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339). Por exemplo, `2022-06-01T12:00:00.000Z`. |

### Payload do evento

| Parâmetro | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `messengerMessage` | object | Não | Payload do `messengerMessage` específico do evento. |

Os quatro campos comuns do envelope são obrigatórios. Os campos de payload dependem da variante do evento. Em cada tabela de objeto, **Obrigatório** aplica-se quando seu objeto pai estiver presente. Campos opcionais podem ser omitidos; um exemplo não torna um campo obrigatório.

#### messengerMessage

| Parâmetro | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `id` | string | Sim | ID de saída da YCloud, uma string decimal; nunca a serialize como um número JSON. |
| `metaMessageId` | string | Não | Omitido quando nenhum ID da Meta for confirmado. |
| `from` | string | Sim | ID da Página do Facebook. |
| `to` | string | Sim | PSID do par para esta Página. |
| `reactions` | object\[] | Não | Reações ativas reconstruídas ao recuperar uma mensagem de saída. Retorna \[] quando nenhuma reação ativa salva existir, inclusive após a remoção. Os webhooks de status do cliente omitem este campo; o recebimento de uma reação não altera o status de entrega da mensagem nem o updateTime. |
| `type` | string | Sim | Valores: `text`. |
| `text` | object | Sim | Os campos do objeto estão listados abaixo. |
| `status` | string | Sim | Fatos atualmente armazenados: read > delivered > sent > resultado do envio. Unknown significa não confirmado ou em andamento, nunca uma falha definitiva. Confirmações ausentes não implicam falha e nenhum estado intermediário é forjado.Valores: `unknown`, `accepted`, `rejected`, `sent`, `delivered`, `read`. |
| `errorCode` | string | Não | Erro de envio registrado localmente, quando presente. Uma rejeição confirmada pode ser MESSENGER\_MESSAGE\_REJECTED(#100:2018276), MESSENGER\_MESSAGE\_REJECTED(#100), ou o legado MESSENGER\_MESSAGE\_REJECTED quando diagnósticos não estiverem disponíveis. MESSENGER\_MESSAGE\_RESULT\_UNKNOWN significa que o resultado do envio não foi confirmado. Nunca contém o corpo bruto de erro da Meta ou credenciais. |
| `createTime` | string (date-time) | Sim | Horário local de criação em UTC RFC 3339 com precisão de milissegundos. |
| `updateTime` | string (date-time) | Sim | Horário de atualização local no formato UTC RFC 3339 com precisão de milissegundos. |
| `sendTime` | string (date-time) | Não | Horário de envio confirmado no formato UTC RFC 3339 com precisão de milissegundos; omitido quando desconhecido. |
| `deliverTime` | string (date-time) | Não | Horário de entrega confirmado no formato UTC RFC 3339 com precisão de milissegundos; omitido quando desconhecido. |
| `readTime` | string (date-time) | Não | Horário de leitura confirmado no formato UTC RFC 3339 com precisão de milissegundos; omitido quando desconhecido. |

> [accordion] messengerMessage.reactions\[]
>
> | Parâmetro | Tipo | Obrigatório | Descrição |
> | - | - | - | - |
> | `psid` | string | Sim | ID com escopo da página (page-scoped ID) do usuário que reagiu. |
> | `reaction` | string | Não | Descrição da reação do provedor, quando disponível. Os clientes devem tolerar novos valores. |
> | `emoji` | string | Não | Emoji da reação, quando disponível. |
> | `updateTime` | string (date-time) | Sim | Horário da interação de origem no formato UTC RFC 3339 com precisão de milissegundos; independente do updateTime da mensagem. |

> [accordion] messengerMessage.text
>
> | Parâmetro | Tipo | Obrigatório | Descrição |
> | - | - | - | - |
> | `body` | string | Sim | Texto não vazio. Espaços iniciais e finais são preservados e incluídos ao comparar uma solicitação repetida.Comprimento mínimo: `1`. |

## Exemplo

O JSON a seguir é o corpo entregue ao seu receptor. IDs, números de telefone e outros valores de conta são ilustrativos.

Use o ID da mensagem para correlacionar instantâneos; horários intermediários de recebimento desconhecidos são omitidos.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "evt_89abcdef0123456789abcdef",
  "type": "messenger.message.updated",
  "apiVersion": "v2",
  "createTime": "2026-10-20T02:00:03.000Z",
  "messengerMessage": {
    "id": "1308528868252065792",
    "metaMessageId": "m_EXAMPLE_OUT_001",
    "from": "422500000000000",
    "to": "100800000000000",
    "type": "text",
    "text": {
      "body": "How can I help you?"
    },
    "status": "read",
    "createTime": "2026-10-20T02:00:00.000Z",
    "updateTime": "2026-10-20T02:00:03.000Z",
    "readTime": "2026-10-20T02:00:03.000Z"
  }
}
```

Após verificar a assinatura e aceitar o evento de forma duradoura, retorne uma resposta `2xx`. Processe trabalhos demorados de forma assíncrona.

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


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