> ## 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 для необходимых типов событий.
* Обеспечьте безопасное хранение секрета подписи конечной точки.
* Сделайте обработку событий идемпотентной.

## Принцип работы

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

## Запрос

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

## Ответ

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

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

<Note>Инструкции по настройке конечной точки, проверке подписи и логике повторных попыток см. в руководстве [Настройка вебхуков](/ru/api-reference/guides/api-fundamentals/configure-webhooks).</Note>

И компания, и пользователь WhatsApp могут завершить звонок в любое время. Когда звонок завершается одной из сторон, вы получаете Webhook Call Terminate:

## Звонок завершен

### Запрос

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "evt_6757b889a5a42d369ef48481",
  "type": "whatsapp.call.terminate",
  "apiVersion": "v2",
  "createTime": "2024-12-10T03:42:01.822Z",
  "callingTerminate": {
    "id": "6757b889960b25543b9ecc67",
    "wacid": "wacid.HBgNNjI4MTM2MTkwNTE",
    "phoneId": "461269257068832",
    "from": "+6281361905133",
    "fromUserId": "ID.13491208655302741918",
    "fromParentUserId": "ID.11815799212886844830",
    "to": "+6283138205150",
    "direction": "USER_INITIATED",
    "startTime": 1733734738000,
    "endTime": 1733734771000,
    "duration": 33,
    "status": "COMPLETED"
  }
}
```

### Ответ

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

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

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

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

## Звонок не удался

### Запрос

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "evt_675907f431c55113a751d0e7",
  "type": "whatsapp.call.terminate",
  "apiVersion": "v2",
  "createTime": "2024-12-11T03:33:08.679Z",
  "callingTerminate": {
    "id": "675907a13ae4a901f05fee95",
    "wacid": "wacid.HBgNODYxNTE1NzEzNzYyM",
    "phoneId": "461269257068832",
    "from": "+6281361905133",
    "fromUserId": "ID.13491208655302741918",
    "fromParentUserId": "ID.11815799212886844830",
    "to": "+6283138205150",
    "direction": "USER_INITIATED",
    "startTime": 1733826484000,
    "endTime": 1733826637000,
    "duration": 30,
    "status": "FAILED",
    "errorCode": "131000"
  }
}
```

### Ответ

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

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