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

> Ocorre quando um usuário do WhatsApp desativa mensagens de marketing ou quando um usuário do WhatsApp retoma o recebimento de mensagens de marketing.

Use `whatsapp.user.preferences` para manipular este evento no seu endpoint de webhook.

## Gatilhos

Ocorre quando um usuário do WhatsApp desativa mensagens de marketing ou quando um usuário do WhatsApp retoma o recebimento de mensagens de marketing.

Assine `whatsapp.user.preferences` ao [configurar seu endpoint de webhook](https://docs.ycloud.com/pt/api-reference/guides/api-fundamentals/configure-webhooks.md).

## Sintaxe

A YCloud envia uma solicitação HTTP `POST` para a URL de webhook configurada. A estrutura a seguir mostra uma variante do payload. Os valores entre colchetes angulares são marcadores; seus tipos estão listados em **Parâmetros**. Campos opcionais e outras variantes são descritos abaixo.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "<ID>",
  "type": "whatsapp.user.preferences",
  "apiVersion": "<API_VERSION>",
  "createTime": "<CREATE_TIME>",
  "whatsappUserPreference": {
    "wabaId": "<WABA_ID>",
    "businessPhoneNumber": "<BUSINESS_PHONE_NUMBER>",
    "businessPhoneId": "<BUSINESS_PHONE_ID>",
    "contactName": "<CONTACT_NAME>",
    "contactPhoneNumber": "<CONTACT_PHONE_NUMBER>",
    "userId": "<USER_ID>",
    "parentUserId": "<PARENT_USER_ID>",
    "detail": "<DETAIL>",
    "category": "<CATEGORY>",
    "value": "<VALUE>",
    "timestamp": "<TIMESTAMP>"
  }
}
```

## Parâmetros

Valide o cabeçalho HTTP `YCloud-Signature` antes de processar o corpo JSON. Consulte a [validação de assinatura](https://docs.ycloud.com/pt/api-reference/guides/api-fundamentals/configure-webhooks.md).

### Envelope do evento

| Parâmetro | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `id` | string | Sim | ID exclusivo para o evento. Comprimento mínimo: `6`. Comprimento máximo: `128`. |
| `type` | string | Sim | Sempre `whatsapp.user.preferences`. |
| `apiVersion` | string | Sim | A versão da API usada para renderizar este evento. |
| `createTime` | string (date-time) | Sim | O momento em que este evento foi criado, formatado em [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339). Por exemplo, `2022-06-01T12:00:00.000Z`. |

### Payload do evento

| Parâmetro | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `whatsappUserPreference` | object | Não | Payload de `whatsappUserPreference` específico do evento. |

Os quatro campos comuns do envelope são obrigatórios. Os campos de payload dependem da variante do evento. Em cada tabela de objetos, **Obrigatório** se aplica quando o objeto pai estiver presente. Campos opcionais podem ser omitidos; um exemplo não torna um campo obrigatório.

#### whatsappUserPreference

| Parâmetro | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `wabaId` | string | Não | ID da conta do WhatsApp Business. |
| `businessPhoneNumber` | string | Não | Número de telefone no formato [E.164](https://en.wikipedia.org/wiki/E.164). |
| `businessPhoneId` | string | Não | ID do número de telefone. |
| `contactName` | string | Não | Nome de usuário do WhatsApp. |
| `contactPhoneNumber` | string | Não | Número de telefone do usuário do WhatsApp. Número de telefone no formato [E.164](https://en.wikipedia.org/wiki/E.164). |
| `userId` | string | Não | O ID de usuário com escopo comercial (BSUID) do usuário do WhatsApp. |
| `parentUserId` | string | Não | O ID de usuário pai com escopo comercial do usuário do WhatsApp. Omitido quando os BSUIDs pai não estão habilitados. |
| `detail` | string | Não | Descrição da preferência de mensagens de marketing. |
| `category` | string | Não | Categoria de preferência informada pelo WhatsApp, por exemplo, `marketing_messages`. |
| `value` | string | Não | Preferência de mensagens de marketing. |
| `timestamp` | string | Não | Carimbo de data/hora Unix indicando quando o webhook foi disparado. |

## Exemplo

O JSON a seguir é o corpo entregue ao seu receptor. IDs, números de telefone e outros valores de conta são meramente ilustrativos.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "evt_example_whatsapp_user_preferences",
  "type": "whatsapp.user.preferences",
  "apiVersion": "v2",
  "createTime": "2026-05-26T12:00:00.000Z",
  "whatsappUserPreference": {
    "wabaId": "whatsapp-business-account-id",
    "businessPhoneNumber": "+12025550123",
    "businessPhoneId": "1234567890123456",
    "contactName": "Example customer",
    "contactPhoneNumber": "+12025550124",
    "userId": "US.13491208655302741918",
    "parentUserId": "US.ENT.11815799212886844830",
    "detail": "User requested to stop marketing messages",
    "category": "marketing_messages",
    "value": "stop",
    "timestamp": "1779796800000"
  }
}
```

Após verificar a assinatura e aceitar o evento de forma duradoura, retorne uma resposta `2xx`. Processe tarefas demoradas de forma assíncrona.

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

Para orientações passo a passo de cenários, consulte os [exemplos anotados](https://docs.ycloud.com/pt/api-reference/guides/examples/webhook-examples/whatsapp-inbound-message-webhook-examples).


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