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

# WhatsApp 模板审核 Webhook 示例

> 了解 WhatsApp 模板审核 Webhook 事件和载荷。

<Note>如需查看基于 Schema 生成的完整目录，请参阅[所有示例](/zh/api-reference/guides/examples/webhook-examples/webhook-payload-examples)。</Note>

## 概述

了解 WhatsApp 模板审核 Webhook 事件和载荷。

## 准备工作

* 在您的应用程序中创建一个公开的 HTTPS 端点。
* 为您所需的事件类型配置 YCloud Webhook 端点。
* 安全存储端点签名密钥。
* 确保事件处理具有幂等性。

## 工作原理

事件发生时，YCloud 会发送 HTTP `POST` 请求。验证签名，持久化记录该事件，返回 `2xx` 响应，并异步处理耗时任务。

## 请求

以下场景展示了发送至您的 Webhook URL 的请求。请将事件 `id` 作为投递标识符，并使用 `type` 路由载荷。

## 响应

接收事件后返回 `2xx` 状态。

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

<Note>有关端点设置、签名验证和重试机制，请参阅[配置 Webhook](/zh/api-reference/guides/api-fundamentals/configure-webhooks)。</Note>

## 模板已批准

在此情况下，您的 Webhook 端点接收到了模板 `APPROVED` 事件：

* 模板 `statusUpdateEvent` 为 `APPROVED`。
* 模板 `status` 现为 `APPROVED`。

### 请求

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

### 响应

持久化接收事件后确认送达。

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

### 说明

* 使用 `wabaId`、`name` 和 `language` 在您的系统中标识该模板。
* `statusUpdateEvent` 描述了此模板状态发生了什么，而 `status` 是模板的当前状态。它们并不总是相同。
* 此事件在模板获得 Meta 批准时触发。该模板可以是您之前创建或编辑的模板。当处于暂停状态的模板自动变为已批准时，也会发生这种情况。
* 模板获得批准后，您可以使用它来发送模板消息。

## 模板已拒绝

在此情况下，您的 Webhook 端点接收到了模板 `REJECTED` 事件：

* 模板 `statusUpdateEvent` 为 `REJECTED`。
* 模板 `status` 现为 `REJECTED`。

### 请求

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

### 响应

持久化接收事件后确认送达。

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

### 说明

* 此事件在模板被拒绝时触发。该模板可以是您之前创建或编辑的模板。
* 模板被拒绝后，您将无法使用它来发送模板消息。您可以编辑此模板以重新提交审核。

## 模板已暂停

在此情况下，您的 Webhook 端点接收到了模板 `PAUSED` 事件：

* 模板 `statusUpdateEvent` 为 `PAUSED`。
* 模板 `status` 现为 `PAUSED`。
* 模板暂停的原因。

### 请求

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

### 响应

持久化接收事件后确认送达。

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

### 说明

* 此事件在模板被暂停时触发。您无法使用它来发送消息。
* 暂停时长如下：
  * 第 1 次：暂停 3 小时
  * 第 2 次：暂停 6 小时
  * 第 3 次：已停用
* 当暂停的模板恢复为正常状态时，会触发 `APPROVED` 事件。
* 另请参阅[模板暂停](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines#template-pausing)。

## 模板已被标记

在此情况下，您的 Webhook 端点接收到了模板 `FLAGGED` 事件：

* 模板 `statusUpdateEvent` 为 `FLAGGED`。
* 模板状态现为 `APPROVED`。
* 包含模板将被停用的日期。

### 请求

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

### 响应

持久化接收事件后确认送达。

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

### 说明

* `statusUpdateEvent` 描述了此模板状态发生了什么，而 `status` 是模板的当前状态。它们并不总是相同。

## 模板已停用

在此情况下，您的 Webhook 端点接收到了模板 `DISABLED` 事件：

* 模板 `statusUpdateEvent` 为 `DISABLED`。
* 模板状态现为 `DISABLED`。

### 请求

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

### 响应

持久化接收事件后确认送达。

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

### 说明

* 模板在第 3 次暂停时状态会更改为 `DISABLED`。
* 另请参阅[模板暂停](https://developers.facebook.com/docs/whatsapp/message-templates/guidelines#template-pausing)。

## 模板待删除

在此情况下，您的 Webhook 端点接收到了模板 `PENDING_DELETION` 事件：

* 模板 `statusUpdateEvent` 为 `PENDING_DELETION`。
* 模板状态现为 `DELETED`。

### 请求

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

### 响应

持久化接收事件后确认送达。

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

### 说明

* 在您删除模板时触发。
* 消息模板正在删除中。 **请记住，该模板的名称在 30 天内无法再次使用。您需要使用其他名称来创建新的消息模板。**

## 模板已归档

在此情况下，您的 Webhook 端点接收到了模板 `ARCHIVED` 事件：

* 模板 `statusUpdateEvent` 为 `ARCHIVED`。
* 模板 `status` 现为 `ARCHIVED`。

### 请求

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

### 响应

持久化接收事件后确认送达。

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

### 说明

* 此事件在模板被归档时触发。
* 已归档的模板无法发送或编辑。

## 模板已取消归档

在此情况下，您的 Webhook 端点接收到了模板 `UNARCHIVED` 事件：

* 模板 `statusUpdateEvent` 为 `UNARCHIVED`。
* 模板 `status` 为 Meta 返回的当前状态，例如 `APPROVED`。

### 请求

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

### 响应

在持久化接收事件后确认投递。

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

### 说明

* 当模板取消归档时会触发此事件。
* `status` 可能是 `APPROVED`，但这并不意味着该模板已获得 Meta 的新审批。
* 使用 `statusUpdateEvent` 将 `UNARCHIVED` 与真实的 `APPROVED` 审核事件区分开来。


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