> ## 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 通话状态更新。

<Note>有关从 Schema 衍生的完整目录，请参阅[所有示例](/zh/api-reference/guides/examples/webhook-examples/webhook-payload-examples)。</Note>

## 概述

处理 WhatsApp 通话状态更新。

## 准备工作

* 在您的应用程序中创建一个公共 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>

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