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

# Ejemplos de Webhook de actualización de estado de llamadas de WhatsApp

> Gestiona las actualizaciones de estado de las llamadas de WhatsApp.

<Note>Para consultar el catálogo exhaustivo derivado del esquema, consulta [todos los ejemplos](/es/api-reference/guides/examples/webhook-examples/webhook-payload-examples).</Note>

## Qué es

Gestiona las actualizaciones de estado de las llamadas de WhatsApp.

## Antes de comenzar

* Crea un endpoint HTTPS público en tu aplicación.
* Configura un endpoint de webhook de YCloud para los tipos de eventos que necesites.
* Guarda el secreto de firma del endpoint de forma segura.
* Haz que el procesamiento de eventos sea idempotente.

## Cómo funciona

YCloud envía una solicitud HTTP `POST` cuando ocurre el evento. Verifica la firma, registra el evento de forma duradera, devuelve una respuesta `2xx` y procesa las tareas lentas de forma asíncrona.

## Solicitud

Los siguientes escenarios muestran solicitudes enviadas a tu URL de webhook. Trata el evento `id` como el identificador de entrega y usa `type` para enrutar el payload.

## Respuesta

Devuelve un estado `2xx` tras aceptar el evento.

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

<Note>Para la configuración de endpoints, validación de firmas y comportamiento de reintentos, consulta [Configurar webhooks](/es/api-reference/guides/api-fundamentals/configure-webhooks).</Note>

<br />

Cuando una empresa llama a un usuario de WhatsApp, recibe un webhook de estado con el estado de la llamada: RINGING, ACCEPTED o REJECTED.

## La llamada iniciada por la empresa está sonando para el usuario

Cuando el dispositivo cliente del usuario de WhatsApp comienza a sonar:

### Solicitud

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

### Respuesta

Confirma la recepción tras aceptar el evento de forma duradera.

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

<br />

### Explicación

Enruta el evento mediante `type`, deduplícalo mediante `id` y traslada el trabajo lento o propenso a errores a un procesador asíncrono.

## La llamada iniciada por la empresa es aceptada por el usuario

Cuando el usuario de WhatsApp acepta la llamada:

### Solicitud

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

### Respuesta

Confirma la recepción tras aceptar el evento de forma duradera.

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

<br />

### Explicación

Enruta el evento mediante `type`, deduplícalo mediante `id` y traslada el trabajo lento o propenso a errores a un procesador asíncrono.

## La llamada iniciada por la empresa es rechazada por el usuario

Cuando la llamada es rechazada por el usuario de WhatsApp. En este caso, también recibirás el webhook de finalización de llamada:

### Solicitud

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

### Respuesta

Confirma la recepción tras aceptar el evento de forma duradera.

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

### Explicación

Enruta el evento mediante `type`, deduplícalo mediante `id` y traslada el trabajo lento o propenso a errores a un procesador asíncrono.


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