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

# Exemplos de Webhook de Modelo do WhatsApp Avaliado

> Entenda os eventos de webhook e payloads de avaliação de modelos do WhatsApp.

<Note>Para consultar o catálogo exaustivo derivado do schema, consulte [todos os exemplos](/pt/api-reference/guides/examples/webhook-examples/webhook-payload-examples).</Note>

## O que é

Entenda os eventos de webhook e payloads de avaliação de modelos do WhatsApp.

## Antes de começar

* Crie um endpoint HTTPS público em sua aplicação.
* Configure um endpoint de webhook da YCloud para os tipos de evento de que você precisa.
* Armazene o segredo de assinatura do endpoint com segurança.
* Torne o processamento de eventos idempotente.

## Como funciona

A YCloud envia uma requisição HTTP `POST` quando o evento ocorre. Valide a assinatura, registre o evento de forma durável, retorne uma resposta `2xx` e processe tarefas lentas de forma assíncrona.

## Requisição

Os cenários abaixo mostram requisições entregues na sua URL de webhook. Trate o `id` do evento como o identificador da entrega e use o `type` para rotear o payload.

## Resposta

Retorne um status `2xx` após aceitar o evento.

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

<Note>Para configuração do endpoint, validação de assinatura e comportamento de novas tentativas, consulte [Configurar webhooks](/pt/api-reference/guides/api-fundamentals/configure-webhooks).</Note>

## Modelo aprovado

Neste caso, seu endpoint de webhook recebeu um evento `APPROVED` de modelo:

* O `statusUpdateEvent` do modelo é `APPROVED`.
* O `status` do modelo agora é `APPROVED`.

### Requisição

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://YOUR-WEBHOOK-ENDPOINT-URL' \
-H 'Content-Type: application/json' \
-d '{
  "id": "evt_eEMtA0PkkyACiS5o",
  "type": "whatsapp.template.reviewed",
  "apiVersion": "v2",
  "createTime": "2023-02-20T12:00:00.000Z",
  "whatsappTemplate": {
    "wabaId": "WABA-ID",
    "name": "template_name",
    "language": "en",
    "category": "MARKETING",
    "status": "APPROVED",
    "reason": "NONE",
    "statusUpdateEvent": "APPROVED"
  }
}'
```

### Resposta

Confirme o recebimento da entrega após aceitar o evento de forma durável.

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

### Explicação

* Use `wabaId`, `name` e `language` para identificar o modelo no seu sistema.
* O `statusUpdateEvent` descreve o que aconteceu com o status deste modelo, enquanto o `status` é o status atual do modelo. Eles nem sempre são os mesmos.
* Esse evento ocorre quando um modelo é aprovado pela Meta. O modelo pode ser um que você criou ou editou anteriormente. Isso também acontece quando um modelo pausado muda automaticamente para aprovado.
* Assim que um modelo for aprovado, você poderá usá-lo para enviar mensagens de modelo.

## Modelo rejeitado

Neste caso, seu endpoint de webhook recebeu um evento `REJECTED` de modelo:

* O `statusUpdateEvent` do modelo é `REJECTED`.
* O `status` do modelo agora é `REJECTED`.

### Requisição

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://YOUR-WEBHOOK-ENDPOINT-URL' \
-H 'Content-Type: application/json' \
-d '{
  "id": "evt_eEMtA0PkkyACiS5o",
  "type": "whatsapp.template.reviewed",
  "apiVersion": "v2",
  "createTime": "2023-02-20T12:00:00.000Z",
  "whatsappTemplate": {
    "wabaId": "WABA-ID",
    "name": "template_name",
    "language": "en",
    "category": "MARKETING",
    "status": "REJECTED",
    "reason": "SCAM",
    "statusUpdateEvent": "REJECTED"
  }
}'
```

### Resposta

Confirme o recebimento da entrega após aceitar o evento de forma durável.

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

### Explicação

* Esse evento ocorre quando um modelo é rejeitado. O modelo pode ser um que você criou ou editou anteriormente.
* Assim que um modelo for rejeitado, você não poderá usá-lo para enviar mensagens de modelo. Você pode editar este modelo para iniciar uma nova avaliação.

## Modelo pausado

Neste caso, seu endpoint de webhook recebeu um evento `PAUSED` de modelo:

* O `statusUpdateEvent` do modelo é `PAUSED`.
* O `status` do modelo agora é `PAUSED`.
* O motivo pelo qual o modelo foi pausado.

### Requisição

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://YOUR-WEBHOOK-ENDPOINT-URL' \
-H 'Content-Type: application/json' \
-d '{
  "id": "evt_eEMtA0PkkyACiS5o",
  "type": "whatsapp.template.reviewed",
  "apiVersion": "v2",
  "createTime": "2023-02-20T12:00:00.000Z",
  "whatsappTemplate": {
    "wabaId": "WABA-ID",
    "name": "template_name",
    "language": "en",
    "category": "MARKETING",
    "status": "PAUSED",
    "reason": "NONE",
    "statusUpdateEvent": "PAUSED"
  }
}'
```

### Resposta

Confirme o recebimento da entrega após aceitar o evento de forma durável.

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

### Explicação

* Esse evento ocorre quando um modelo é pausado. Você não pode usá-lo para enviar mensagens.
* As durações de pausa são as seguintes:
  * 1ª ocorrência: Pausado por 3 horas
  * 2ª ocorrência: Pausado por 6 horas
  * 3ª ocorrência: Desativado
* Um evento `APPROVED` ocorre quando um modelo pausado retorna ao status normal.
* Consulte também [Pausa de modelos](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines#template-pausing).

## Modelo sinalizado

Neste caso, seu endpoint de webhook recebeu um evento `FLAGGED` de modelo:

* O `statusUpdateEvent` do modelo é `FLAGGED`.
* O status do modelo agora é `APPROVED`.
* Contém a data em que o modelo será desativado.

### Requisição

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://YOUR-WEBHOOK-ENDPOINT-URL' \
-H 'Content-Type: application/json' \
-d '{
  "id": "evt_eEMtA0PkkyACiS5o",
  "type": "whatsapp.template.reviewed",
  "apiVersion": "v2",
  "createTime": "2023-02-20T12:00:00.000Z",
  "whatsappTemplate": {
    "wabaId": "WABA-ID",
    "name": "template_name",
    "language": "en",
    "category": "MARKETING",
    "status": "APPROVED",
    "reason": "Your WhatsApp message template has been paused for 3 hours until Feb 23 at 5:28 AM UTC because it had issues.",
    "statusUpdateEvent": "FLAGGED",
    "disableDate": "February 28, 2023"
  }
}'
```

### Resposta

Confirme o recebimento da entrega após aceitar o evento de forma durável.

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

### Explicação

* O `statusUpdateEvent` descreve o que aconteceu com o status deste modelo, enquanto o `status` é o status atual do modelo. Eles nem sempre são os mesmos.

## Modelo desativado

Neste caso, seu endpoint de webhook recebeu um evento `DISABLED` de modelo:

* O `statusUpdateEvent` do modelo é `DISABLED`.
* O status do modelo agora é `DISABLED`.

### Requisição

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://YOUR-WEBHOOK-ENDPOINT-URL' \
-H 'Content-Type: application/json' \
-d '{
  "id": "evt_eEMtA0PkkyACiS5o",
  "type": "whatsapp.template.reviewed",
  "apiVersion": "v2",
  "createTime": "2023-02-20T12:00:00.000Z",
  "whatsappTemplate": {
    "wabaId": "WABA-ID",
    "name": "template_name",
    "language": "en",
    "category": "MARKETING",
    "status": "DISABLED",
    "reason": "NONE",
    "statusUpdateEvent": "DISABLED"
  }
}'
```

### Resposta

Confirme o recebimento da entrega após aceitar o evento de forma durável.

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

### Explicação

* O status de um modelo muda para `DISABLED` na sua 3ª pausa.
* Consulte também [Pausa de modelos](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines#template-pausing).

## Modelo com exclusão pendente

Neste caso, seu endpoint de webhook recebeu um evento `PENDING_DELETION` de modelo:

* O `statusUpdateEvent` do modelo é `PENDING_DELETION`.
* O status do modelo agora é `DELETED`.

### Requisição

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://YOUR-WEBHOOK-ENDPOINT-URL' \
-H 'Content-Type: application/json' \
-d '{
  "id": "evt_eEMtA0PkkyACiS5o",
  "type": "whatsapp.template.reviewed",
  "apiVersion": "v2",
  "createTime": "2023-02-20T12:00:00.000Z",
  "whatsappTemplate": {
    "wabaId": "WABA-ID",
    "name": "template_name",
    "language": "en",
    "category": "MARKETING",
    "status": "DELETED",
    "reason": "NONE",
    "statusUpdateEvent": "PENDING_DELETION"
  }
}'
```

### Resposta

Confirme o recebimento da entrega após aceitar o evento de forma durável.

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

### Explicação

* Ocorre quando você exclui um modelo.
* O modelo de mensagem está sendo excluído. **Lembre-se de que o nome deste modelo não poderá ser usado novamente por 30 dias. Você precisará usar um nome diferente para criar novos modelos de mensagem.**

## Modelo arquivado

Neste caso, seu endpoint de webhook recebeu um evento `ARCHIVED` de modelo:

* O `statusUpdateEvent` do modelo é `ARCHIVED`.
* O `status` do modelo agora é `ARCHIVED`.

### Requisição

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://YOUR-WEBHOOK-ENDPOINT-URL' \
-H 'Content-Type: application/json' \
-d '{
  "id": "evt_eEMtA0PkkyACiS5o",
  "type": "whatsapp.template.reviewed",
  "apiVersion": "v2",
  "createTime": "2024-01-01T12:00:00.000Z",
  "whatsappTemplate": {
    "wabaId": "WABA-ID",
    "name": "template_name",
    "language": "en",
    "category": "MARKETING",
    "status": "ARCHIVED",
    "reason": "NONE",
    "statusUpdateEvent": "ARCHIVED"
  }
}'
```

### Resposta

Confirme o recebimento da entrega após aceitar o evento de forma durável.

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

### Explicação

* Esse evento ocorre quando um modelo é arquivado.
* Modelos arquivados não podem ser enviados nem editados.

## Modelo desarquivado

Neste caso, seu endpoint de webhook recebeu um evento `UNARCHIVED` de modelo:

* O `statusUpdateEvent` do modelo é `UNARCHIVED`.
* O `status` do modelo é o status atual retornado pela Meta, por exemplo `APPROVED`.

### Requisição

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl 'https://YOUR-WEBHOOK-ENDPOINT-URL' \
-H 'Content-Type: application/json' \
-d '{
  "id": "evt_eEMtA0PkkyACiS5o",
  "type": "whatsapp.template.reviewed",
  "apiVersion": "v2",
  "createTime": "2024-01-01T12:00:00.000Z",
  "whatsappTemplate": {
    "wabaId": "WABA-ID",
    "name": "template_name",
    "language": "en",
    "category": "MARKETING",
    "status": "APPROVED",
    "reason": "NONE",
    "statusUpdateEvent": "UNARCHIVED"
  }
}'
```

### Resposta

Confirme a entrega após aceitar o evento de forma durável.

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

### Explicação

* Esse evento ocorre quando um modelo é desarquivado.
* O `status` pode ser `APPROVED`, mas esse evento não significa que o modelo foi recém-aprovado pela Meta.
* Use `statusUpdateEvent` para distinguir `UNARCHIVED` de um evento de análise `APPROVED` real.


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