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

> Обработка обновлений статуса звонков WhatsApp.

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

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

Обработка обновлений статуса звонков WhatsApp.

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

* Создайте общедоступный эндпоинт HTTPS в вашем приложении.
* Настройте эндпоинт webhook в YCloud для необходимых вам типов событий.
* Надежно сохраните секрет подписи (signing secret) эндпоинта.
* Обеспечьте идемпотентность обработки событий.

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

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](/ru/api-reference/guides/api-fundamentals/configure-webhooks).</Note>

<br />

Когда бизнес звонит пользователю WhatsApp, он получает webhook со статусом звонка: RINGING, ACCEPTED или REJECTED.

## Инициированный бизнесом звонок: идет вызов пользователю

Когда на клиентском устройстве пользователя WhatsApp начинается звонок:

### Запрос

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
 "id": "evt_676e5ab57a9cb742d02d7646",
 "type": "whatsapp.call.status.updated",
 "apiVersion": "v2",
 "createTime": "2024-12-27T07:41:28.422Z",
 "callingStatusUpdated": {
   "wabaId": "188234691048809",
   "wacid": "wacid.HBgNNjI4MTM2MTkwNTEzMxUCABE",
   "status": "RINGING",
   "recipientPhone": "+6281361905133",
   "recipientUserId" : "ID.13491208655302741918",
   "parentRecipientUserId": "ID.11815799212886844830"
 }
}
```

### Ответ

Подтвердите доставку после надежного сохранения события.

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

<br />

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

Маршрутизируйте событие по `type`, дедуплицируйте его по `id` и передавайте длительные или подверженные сбоям задачи асинхронному обработчику.

## Инициированный бизнесом звонок: пользователь принял вызов

Когда пользователь WhatsApp принимает вызов:

### Запрос

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
 "id": "evt_67724ad42b4b206adc55f099",
 "type": "whatsapp.call.status.updated",
 "apiVersion": "v2",
 "createTime": "2024-12-27T07:42:00.577Z",
 "callingStatusUpdated": {
   "wabaId": "188234691048809",
   "wacid": "wacid.HBgNNjI4MTM2MTkwNTEzMxUCABE",
   "status": "ACCEPTED",
   "recipientPhone": "+6281361905133",
   "recipientUserId" : "ID.13491208655302741918",
   "parentRecipientUserId": "ID.11815799212886844830"
 }
}
```

### Ответ

Подтвердите доставку после надежного сохранения события.

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

<br />

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

Маршрутизируйте событие по `type`, дедуплицируйте его по `id` и передавайте длительные или подверженные сбоям задачи асинхронному обработчику.

## Инициированный бизнесом звонок: пользователь отклонил вызов

Когда звонок отклонен пользователем WhatsApp. В этом случае вы также получите webhook о завершении звонка:

### Запрос

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
 "id": "evt_677258526a15af2a8c7184a3",
 "type": "whatsapp.call.status.updated",
 "apiVersion": "v2",
 "createTime": "2024-12-27T07:41:32.093Z",
 "callingStatusUpdated": {
   "wabaId": "188234691048809",
   "wacid": "wacid.HBgNNjI4MTM2MTkwNTEzMxUCAB",
   "status": "REJECTED",
   "recipientPhone": "+6281361905133",
   "recipientUserId" : "ID.13491208655302741918",
   "parentRecipientUserId": "ID.11815799212886844830"
 }
}
```

### Ответ

Подтвердите доставку после надежного сохранения события.

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

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

Маршрутизируйте событие по `type`, дедуплицируйте его по `id` и передавайте длительные или подверженные сбоям задачи асинхронному обработчику.


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