---
title: "Recebe evento de conta da API oficial do WhatsApp (desconexão ou reconexão do número)"
method: POST
path: "/conta/{origem}/{servico}"
tags: ["Envio de Mensagens"]
---

# Recebe evento de conta da API oficial do WhatsApp (desconexão ou reconexão do número)

`POST /conta/{origem}/{servico}`

## Request

- Base URL: `https://integracao.cvcrm.com.br/api/v1/comunicador`
- URL: `https://integracao.cvcrm.com.br/api/v1/comunicador/conta/{origem}/{servico}`
- Auth: HTTP bearer

> 🔒 **Autenticação necessária**
>
> Assinatura do hub de webhooks do WhatsApp (`cv-whatsapp-webhooks`) nos headers
> `X-Cv-Hub-Signature` e `X-Cv-Hub-Timestamp`: `sha256=` seguido do HMAC-SHA256 de
> `{timestamp}.{url}.{corpo}` com o App Secret da Meta, onde `url` é a URL completa da
> chamada (`https://{ambiente}.cvcrm.com.br/api/v1/comunicador/conta/WPP/{identificador}`).
> O header Authorization não é usado. Assinatura ausente, divergente da URL ou do corpo, ou
> com timestamp a mais de 300 segundos do relógio do servidor é recusada.

Chamado pelo hub que recebe os webhooks da Meta, com o `account_update` repassado sem
alteração (uma alteração por chamada). Eventos tratados:

- `PARTNER_REMOVED`: o número saiu da API oficial — desconectado pelo app WhatsApp
  Business (motivo em `disconnection_info.reason`) ou parceiro removido da conta;
- `ACCOUNT_OFFBOARDED`: troca de aparelho ou novo registro do número no app;
- `ACCOUNT_RECONNECTED`: reconexão automática concluída.

O hub repassa o evento a todos os números da conta comercial. `PARTNER_REMOVED` só é
aplicado ao canal cujo telefone corresponde ao `phone_number` do evento (sem
`phone_number`, vale para o canal). `ACCOUNT_OFFBOARDED` e `ACCOUNT_RECONNECTED` não trazem
o número e só são aplicados a canal conectado em Coexistence.

Desconectado, o canal fica `nao_autenticado` com o motivo e o envio de mensagens é
bloqueado até a reconexão. Os demais eventos, e os de outro número, são ignorados e
respondem sucesso.

## Path parameters

- `origem` string, required
- `servico` string, required

## Headers

- `X-Cv-Hub-Signature` string, required
- `X-Cv-Hub-Timestamp` string, required

## Request body

- object

## Response `200`

Sucesso

- object

## Other responses

- `400`: Canal não encontrado ou inativo no painel
- `401`: Assinatura do hub ausente, inválida ou expirada
- `500`: Erro inesperado

---

[API](https://skmtc.dev/cvcrm/apis/comunicador.md) - [All operations](https://skmtc.dev/cvcrm/apis/comunicador/llms.txt) - [OpenAPI document](https://skmtc.dev/cvcrm/apis/comunicador/revisions/83f3c9ab22fa?raw)
