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

# Exemplos de Webhook de atualização de status de chamada do WhatsApp

> Processe atualizações de status de chamadas do WhatsApp.

<Note>Para o catálogo exaustivo derivado do esquema, consulte [todos os exemplos](/pt/api-reference/guides/examples/webhook-examples/webhook-payload-examples).</Note>

## O que é

Processe atualizações de status de chamadas do WhatsApp.

## Antes de começar

* Crie um endpoint HTTPS público em sua aplicação.
* Configure um endpoint de Webhook da YCloud para os tipos de evento necessários.
* Armazene o segredo de assinatura do endpoint com segurança.
* Torne o processamento de eventos idempotente.

## Como funciona

A YCloud envia uma requisição HTTP `POST` quando o evento ocorre. Verifique a assinatura, registre o evento de forma durável, retorne uma resposta `2xx` e processe tarefas lentas de forma assíncrona.

## Requisição

Os cenários abaixo mostram requisições entregues à sua URL de Webhook. Trate o `id` do evento como o identificador de entrega e use `type` para rotear o payload.

## Resposta

Retorne um status `2xx` após aceitar o evento.

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

<Note>Para configuração do endpoint, validação de assinatura e comportamento de repetição, consulte [Configurar webhooks](/pt/api-reference/guides/api-fundamentals/configure-webhooks).</Note>

<br />

Quando uma empresa liga para um usuário do WhatsApp, ela recebe um Webhook de status com o estado da chamada: RINGING, ACCEPTED ou REJECTED.

## Chamada iniciada pela empresa está chamando o usuário

Quando o dispositivo do usuário do WhatsApp começa a tocar:

### Requisição

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

### Resposta

Confirme a entrega após aceitar o evento de forma durável.

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

<br />

### Explicação

Roteie o evento por `type`, desduplique-o por `id` e transfira tarefas lentas ou propensas a falhas para um processador assíncrono.

## Chamada iniciada pela empresa é aceita pelo usuário

Quando o usuário do WhatsApp aceita a chamada:

### Requisição

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

### Resposta

Confirme a entrega após aceitar o evento de forma durável.

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

<br />

### Explicação

Roteie o evento por `type`, desduplique-o por `id` e transfira tarefas lentas ou propensas a falhas para um processador assíncrono.

## Chamada iniciada pela empresa é rejeitada pelo usuário

Quando a chamada é rejeitada pelo usuário do WhatsApp. Você também receberá o Webhook de encerramento da chamada neste caso:

### Requisição

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

### Resposta

Confirme a entrega após aceitar o evento de forma durável.

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

### Explicação

Roteie o evento por `type`, desduplique-o por `id` e transfira tarefas lentas ou propensas a falhas para um processador assíncrono.


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