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

# Примеры Webhook проверки шаблонов WhatsApp

> Изучите события Webhook и полезные данные при проверке шаблонов WhatsApp.

<Note>Полный каталог, сформированный на основе схемы, см. в разделе [все примеры](/ru/api-reference/guides/examples/webhook-examples/webhook-payload-examples).</Note>

## Что это такое

Изучите события Webhook и полезные данные при проверке шаблонов WhatsApp.

## Перед началом работы

* Создайте общедоступную конечную точку HTTPS в своем приложении.
* Настройте конечную точку Webhook в YCloud для нужных типов событий.
* Надежно сохраните секретный ключ подписи конечной точки.
* Обеспечьте идемпотентность обработки событий.

## Как это работает

YCloud отправляет HTTP-запрос `POST` при возникновении события. Проверьте подпись, надежно сохраните событие, верните ответ `2xx` и обрабатывайте длительные задачи асинхронно.

## Запрос

Ниже приведены сценарии запросов, отправляемых на ваш URL-адрес Webhook. Используйте событие `id` как идентификатор доставки, а `type` — для маршрутизации полезной нагрузки.

## Ответ

Возвращайте статус `2xx` после принятия события.

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

<Note>Подробнее о настройке конечной точки, проверке подписи и механизме повторных попыток см. в разделе [Настройка webhook](/ru/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
```

### Пояснение

* Статус шаблона изменяется на `DISABLED` при 3-й приостановке.
* См. также [Приостановка шаблонов](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.