# Documentação da API WhatsApp Wafly

> Referência REST completa e legível sem JavaScript. Gerada da mesma fonte da documentação visual e do OpenAPI 3.1.

Esta versão contém 108 endpoints. Para geração de clientes e validação de payloads, use [OpenAPI 3.1](https://wafly.com.br/openapi.json).

## Referência da API

Autenticação: header Client-Token em todas as operações. Gerenciamento: /api-managment/external/instances, sem token da instância. Operações de WhatsApp: as credenciais vão na própria URL — `/instances/{instance}/token/{token}/...` — e são geradas no painel depois que um número é conectado. Base: `https://wafly.com.br/api-bridge-whats`. Spec completa em OpenAPI 3.1: [https://wafly.com.br/openapi.json](https://wafly.com.br/openapi.json) (108 endpoints, gerada da mesma fonte desta página).

Formato do destinatário no campo `phone`: número privado (`5511999999999`), grupo (`ID-group`) ou canal/newsletter (`ID@newsletter`).

### Gerenciamento pela API

Crie e gerencie as instâncias da sua conta com Client-Token. Sem cobrança habilitada, a criação devolve um exemplo sem provisionar recursos.

- `POST /api-managment/external/instances` — Criar instância ou obter exemplo. Disponível para contas ativas, incluindo parceiros. Sem assinatura Stripe ativa com cartão: HTTP 200, created=false e exampleResponse fictício. Para criação real, confirme acceptAutomaticBilling=true: HTTP 201, created=true e credenciais em data. Cada nova instância tem 72 horas antes da cobrança proporcional na assinatura existente. Cancele antes do vencimento para evitar a cobrança. Opcionais: `acceptAutomaticBilling`, `receivedCallbackUrl`, `deliveryCallbackUrl`, `disconnectedCallbackUrl`, `messageStatusCallbackUrl`.

Exemplo de requisição:
```json
{
  "acceptAutomaticBilling": false
}
```

HTTP 200:
```json
{
  "created": false,
  "mode": "preview",
  "code": "ACTIVATION_REQUIRED",
  "message": "Nenhuma instância foi criada ou cobrada. Ative sua primeira instância pelo painel. O exemplo usa credenciais fictícias; a criação real terá o mesmo formato. O teste inicial no painel continua sem cartão.",
  "exampleResponse": {
    "created": true,
    "mode": "live",
    "code": "INSTANCE_CREATED",
    "message": "Instância criada. Após 3 dias, será adicionada à assinatura contratada com cobrança proporcional, se não for cancelada.",
    "data": {
      "instance": "EXAMPLE_INSTANCE_NOT_VALID",
      "name": "Exemplo",
      "connected": false,
      "billingStatus": "trial",
      "isTrial": true,
      "expirationTime": 1893456000000,
      "token": "EXAMPLE_TOKEN_NOT_VALID"
    }
  },
  "nextAction": {
    "type": "ACTIVATE_FIRST_INSTANCE",
    "url": "/instances"
  }
}
```

HTTP 201 — Instância real criada:
```json
{
  "created": true,
  "mode": "live",
  "code": "INSTANCE_CREATED",
  "message": "Instância criada. Após 3 dias, será adicionada à assinatura contratada com cobrança proporcional, se não for cancelada.",
  "data": {
    "instance": "EXAMPLE_INSTANCE_NOT_VALID",
    "name": "Exemplo",
    "connected": false,
    "billingStatus": "trial",
    "isTrial": true,
    "expirationTime": 1893456000000,
    "token": "EXAMPLE_TOKEN_NOT_VALID"
  }
}
```

- Trate created=false como demonstração. As credenciais de exampleResponse nunca funcionam e a chamada não cria instâncias.
- BILLING_CONFIRMATION_REQUIRED: informe acceptAutomaticBilling=true somente para autorizar uma criação real. PROVISIONING_NOT_ENABLED: a criação real ainda não foi habilitada.
- O teste inicial sem cartão continua disponível pelo painel. Ser parceiro ou ter instância gratuita não habilita cobrança pela API.
- A expiração é individual, em milissegundos Unix, e não é renovada. Se o cartão ou a assinatura deixarem de ser válidos, a instância será suspensa.
- Use Client-Token de Segurança no painel. Não distribua o token da sua conta aos seus clientes finais.
- Guarde instance e token de data para usar os endpoints de mensagens, QR e webhooks existentes. Cada chamada real cria uma nova instância; não repita automaticamente após timeout. Consulte a listagem primeiro.
- `GET /api-managment/external/instances` — Listar minhas instâncias. Lista somente instâncias desta conta, sem tokens nem informações de infraestrutura.

HTTP 200:
```json
{
  "data": [
    {
      "instance": "EXAMPLE_INSTANCE_NOT_VALID",
      "name": "Exemplo",
      "connected": false,
      "billingStatus": "trial",
      "isTrial": true,
      "expirationTime": 1893456000000
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 1,
    "pages": 1
  }
}
```
- `GET /api-managment/external/instances/{instance}` — Consultar instância. Retorna conexão, cobrança e vencimento registrados para esta instância. Sem token.

HTTP 200:
```json
{
  "instance": "EXAMPLE_INSTANCE_NOT_VALID",
  "name": "Exemplo",
  "connected": false,
  "billingStatus": "trial",
  "isTrial": true,
  "expirationTime": 1893456000000
}
```
- `GET /api-managment/external/instances/{instance}/credentials` — Consultar credenciais. Retorna o token apenas de uma instância pertencente à conta. Guarde as credenciais no servidor.

HTTP 200:
```json
{
  "instance": "EXAMPLE_INSTANCE_NOT_VALID",
  "name": "Exemplo",
  "connected": false,
  "billingStatus": "trial",
  "isTrial": true,
  "expirationTime": 1893456000000,
  "token": "EXAMPLE_TOKEN_NOT_VALID"
}
```
- `PATCH /api-managment/external/instances/{instance}` — Renomear instância. Altera o nome de exibição. O código instance e as credenciais continuam iguais. Campos obrigatórios: `name`.

Exemplo de requisição:
```json
{
  "name": "Atendimento"
}
```

HTTP 200:
```json
{
  "instance": "EXAMPLE_INSTANCE_NOT_VALID",
  "name": "Atendimento",
  "connected": false,
  "billingStatus": "trial",
  "isTrial": true,
  "expirationTime": 1893456000000
}
```
- `POST /api-managment/external/instances/{instance}/restart` — Reiniciar instância. Reinicia uma instância com acesso ativo. Pode exigir novo QR code.

HTTP 200:
```json
{
  "success": true,
  "connected": false,
  "requiresQr": true
}
```
- `GET /api-managment/external/instances/{instance}/cancellation-preview` — Consultar consequências do cancelamento. Mostra se o cancelamento é imediato ou agendado e as regras de estorno aplicáveis, antes de confirmar.

HTTP 200:
```json
{
  "mode": "trial",
  "message": "Instância em teste: remoção imediata, sem cobrança.",
  "refund_full_instance": false,
  "within_instance_refund_period": false
}
```
- `DELETE /api-managment/external/instances/{instance}` — Cancelar instância. Cancela pelo gateway de pagamento. Antes de 72 horas, remove o teste sem adicionar à assinatura. Instâncias pagas seguem as regras de cancelamento e estorno da contratação; consulte cancellation-preview antes. cleanupPending=true indica que a cobrança já foi cancelada e a limpeza da sessão será repetida em segundo plano.

HTTP 200:
```json
{
  "instance": "EXAMPLE_INSTANCE_NOT_VALID",
  "success": true,
  "scheduled": false,
  "immediate": true,
  "refundIssued": false,
  "cleanupPending": false
}
```

### Instância

Gerenciamento de sessão: conexão, status, QR Code e dispositivo.

- `GET /api-bridge-whats/instances/{instance}/token/{token}/status` — Status da sessão. Retorna o estado atual da conexão da instância.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/qr-code/image` — QR Code para conexão. Retorna o QR Code em base64 para autenticar o WhatsApp.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/passkey-challenge` — Desafio de passkey (WebAuthn). Para contas do WhatsApp protegidas por passkey: após o QR ser escaneado, retorna o desafio WebAuthn que o navegador do dono da conta deve assinar.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/passkey-response` — Enviar assinatura de passkey. Recebe a assertion WebAuthn assinada no navegador do dono da conta e conclui o pareamento no WhatsApp.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/phone-exists-batch` — Verificar números no WhatsApp. Verifica em lote quais números possuem conta no WhatsApp. Campos obrigatórios: `phones`.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/device` — Informações do dispositivo. Retorna dados do dispositivo conectado ao WhatsApp.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/connect` — Conectar instância. Inicia ou reconecta a sessão da instância. Recomendado antes de obter QR Code ou código de pareamento.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/disconnect` — Desconectar instância. Encerra a sessão ativa do WhatsApp.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/restart` — Reiniciar instância. Reinicia a sessão sem desconectar o WhatsApp.
- `DELETE /api-bridge-whats/instances/{instance}/token/{token}/queue` — Limpar fila de mensagens. Descarta de forma irreversível as mensagens de saída que ainda não foram entregues, usando o horário da chamada como corte.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/pairing-code` — Código de emparelhamento (GET). Gera um código de pareamento para conectar o WhatsApp sem QR Code. O número deve ser enviado na query string.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/pairing-code` — Código de emparelhamento (POST). Mesmo comportamento do GET: gera o código de pareamento. O número deve ser enviado na query string (?phone=).
- `POST /api-bridge-whats/instances/{instance}/token/{token}/restart-with-disconnect` — Reiniciar com desconexão. Reinicia a sessão forçando desconexão do WhatsApp antes de reiniciar. Opcionais: `connected`.
- `PUT /api-bridge-whats/instances/{instance}/token/{token}/inbound-config` — Agrupar mensagens picotadas (buffer). Agrupa mensagens seguidas do mesmo contato em UMA chamada de webhook. Ninguém escreve um parágrafo no WhatsApp: a pessoa manda "oi", depois "tudo bem?", depois "queria saber o preço" — três webhooks, e um agente de IA responde três vezes. Com o buffer ligado, chega uma chamada só. Campos obrigatórios: `buffer.enabled`. Opcionais: `buffer.window_ms`, `buffer.max_wait_ms`, `buffer.max_messages`, `buffer.mode`, `buffer.include_groups`.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/inbound-config` — Consultar config de entrega. Retorna a configuração de entrega de mensagens recebidas. Sem configuração, a instância entrega uma chamada de webhook por mensagem. O campo source diz de onde veio a configuração efetiva: instance quando foi você que gravou, default quando veio do padrão da instância.
- `DELETE /api-bridge-whats/instances/{instance}/token/{token}/inbound-config` — Voltar ao padrão. Remove a configuração da instância e volta ao padrão. Atenção: voltar ao padrão não é o mesmo que desligar o agrupamento — a resposta traz a configuração efetiva resultante. Para desligar de forma explícita, use PUT com buffer.enabled = false.
- `PUT /api-bridge-whats/instances/{instance}/token/{token}/ai-config` — Transcrever áudio recebido (chave sua). Liga a transcrição automática de áudio recebido. Metade da conversa no WhatsApp brasileiro é áudio, e um agente de IA não escuta — com isso ligado, o texto já chega no webhook e você não precisa montar download + speech-to-text. A chave do provedor é SUA: o custo cai na sua conta da OpenAI e a Wafly não cobra nada por isso. Campos obrigatórios: `api_key`, `transcription.enabled`. Opcionais: `provider`, `transcription.model`, `transcription.max_audio_seconds`, `transcription.monthly_minutes_cap`.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/ai-config` — Consultar config de transcrição. Retorna a configuração de transcrição e o consumo do mês. A chave nunca é devolvida — só a máscara.
- `DELETE /api-bridge-whats/instances/{instance}/token/{token}/ai-config` — Remover chave e desligar transcrição. Apaga a credencial cadastrada e desliga a transcrição.

### Mensagens

Envio de mensagens de texto, mídia, interativas e muito mais.

- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-text` — Enviar mensagem de texto. Envia uma mensagem de texto simples para um número privado, grupo ou newsletter/canal. Campos obrigatórios: `phone`, `message`. Opcionais: `delayMessage`, `messageId`, `editMessageId`, `fromMe`, `isGroup`, `mentioned`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-image` — Enviar imagem. Envia uma imagem usando URL pública ou string base64. Campos obrigatórios: `phone`, `image`. Opcionais: `caption`, `messageId`, `mentioned`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-audio` — Enviar áudio. Envia um arquivo de áudio (mp3/ogg) por URL ou base64. Campos obrigatórios: `phone`, `audio`. Opcionais: `delayMessage`, `messageId`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-video` — Enviar vídeo. Envia um vídeo por URL ou base64. Campos obrigatórios: `phone`, `video`. Opcionais: `caption`, `messageId`, `isPtv`, `mentioned`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-document/{type}` — Enviar documento. Envia um documento (PDF, XLSX, etc) por URL ou base64. O parâmetro de rota {type} define a extensão, ex: pdf. Campos obrigatórios: `phone`, `document`. Opcionais: `fileName`, `caption`, `messageId`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-link` — Enviar link com prévia. Envia um link com card de prévia (título, descrição e imagem). Campos obrigatórios: `phone`, `message`, `linkUrl`. Opcionais: `title`, `linkDescription`, `delayMessage`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-poll` — Enviar enquete. Cria uma enquete com opções de resposta. Campos obrigatórios: `phone`, `message`, `poll`. Opcionais: `pollMaxOptions`, `messageId`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-contacts` — Enviar contato. Envia um card de contato. Campos obrigatórios: `phone`. Opcionais: `contactPhone`, `contactName`, `contacts`.
- `DELETE /api-bridge-whats/instances/{instance}/token/{token}/delete-message` — Deletar mensagem. Remove uma mensagem enviada do chat.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/pin-message` — Fixar mensagem. Fixa ou desafixa uma mensagem no topo do chat. Campos obrigatórios: `phone`, `messageId`, `messageAction`, `pinMessageDuration`. Opcionais: `sender`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-option-list` — Enviar lista de opções. Envia uma mensagem interativa com lista de opções para o usuário selecionar. Campos obrigatórios: `phone`, `message`, `optionList`. Opcionais: `messageId`, `mentioned`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-gif` — Enviar GIF. Envia um GIF via URL pública ou base64. Campos obrigatórios: `phone`, `gif`. Opcionais: `caption`, `messageId`, `fromMe`, `mentioned`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-ptv` — Enviar vídeo redondo (PTV). Envia um vídeo no formato circular — aparece como vídeo redondo (PTV) no WhatsApp. Campos obrigatórios: `phone`, `ptv`. Opcionais: `messageId`, `fromMe`, `mentioned`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-event` — Enviar evento. Envia um evento do WhatsApp com data, localização e link de chamada. Campos obrigatórios: `phone`, `event`. Opcionais: `messageId`, `editMessageId`, `fromMe`, `mentioned`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-button-actions` — Enviar botões de ação. Envia uma mensagem com botões que executam ações (ligar ou abrir URL). Campos obrigatórios: `phone`, `buttonActions`. Opcionais: `message`, `title`, `footer`, `messageId`, `fromMe`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-button-list` — Enviar lista de botões. Envia uma mensagem com lista de botões simples de resposta rápida. Campos obrigatórios: `phone`, `buttonList`. Opcionais: `message`, `messageId`, `fromMe`, `mentioned`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-button-otp` — Enviar botão OTP. Envia uma mensagem com botão para copiar um código OTP (One-Time Password). Campos obrigatórios: `phone`, `code`. Opcionais: `message`, `image`, `buttonText`, `messageId`, `fromMe`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-button-pix` — Enviar botão PIX. Envia uma mensagem com chave PIX e botão de pagamento. Campos obrigatórios: `phone`, `pixKey`. Opcionais: `type`, `name`, `totalAmount`, `description`, `documentUrl`, `documentTitle`, `messageId`, `fromMe`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/send-carousel` — Enviar carrossel. Envia um carrossel de cards com imagens e botões interativos. Campos obrigatórios: `phone`, `carousel`. Opcionais: `message`, `messageId`, `fromMe`, `mentioned`.

### Grupos

Criação, gerenciamento e configurações de grupos WhatsApp.

- `GET /api-bridge-whats/instances/{instance}/token/{token}/groups` — Listar grupos. Retorna a lista de grupos associados à instância com paginação.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/create-group` — Criar grupo. Cria um novo grupo e adiciona participantes. Campos obrigatórios: `groupName`, `phones`. Opcionais: `autoInvite`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/add-participant` — Adicionar participante. Adiciona um ou mais participantes a um grupo existente. Campos obrigatórios: `groupId`, `phones`. Opcionais: `contacts`, `autoInvite`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/remove-participant` — Remover participante. Remove um participante do grupo. Campos obrigatórios: `groupId`, `phones`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/update-group-name` — Alterar nome do grupo. Muda o nome de um grupo (requer ser administrador). Campos obrigatórios: `groupId`, `groupName`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/add-admin` — Promover a administrador. Concede privilégios de administrador a um participante. Campos obrigatórios: `groupId`, `phones`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/remove-admin` — Remover administrador. Remove os privilégios de administrador de um participante. Campos obrigatórios: `groupId`, `phones`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/update-group-settings` — Atualizar configurações do grupo. Altera permissões do grupo como envio de mensagens e adição de membros. Campos obrigatórios: `phone`. Opcionais: `adminOnlyMessage`, `adminOnlySettings`, `requireAdminApproval`, `adminOnlyAddMember`.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/group/invite-link` — Obter link de convite. Retorna o link de convite do grupo.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/group-metadata/{phone}` — Metadados do grupo. Retorna informações detalhadas do grupo incluindo participantes.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/leave-group` — Sair do grupo. Remove a instância do grupo. Campos obrigatórios: `groupId`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/update-group-photo` — Atualizar foto do grupo. Atualiza a foto do grupo usando base64 ou URL. Campos obrigatórios: `groupId`. Opcionais: `groupPhoto`, `image`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/group/photo` — Atualizar foto do grupo (por URL). Atualiza a foto do grupo fornecendo uma URL pública de imagem. Campos obrigatórios: `groupId`. Opcionais: `photoUrl`, `image`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/approve-participant` — Aprovar solicitação de entrada. Aprova pedidos de participação em grupos com aprovação obrigatória habilitada. Campos obrigatórios: `groupId`, `phones`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/reject-participant` — Rejeitar solicitação de entrada. Rejeita pedidos de participação em grupos com aprovação obrigatória. Campos obrigatórios: `groupId`, `phones`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/redefine-invitation-link/{id}` — Redefinir link de convite. Invalida o link de convite atual e gera um novo. Funciona para grupos e comunidades.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/update-group-description` — Atualizar descrição do grupo. Define ou atualiza a descrição/bio do grupo. Campos obrigatórios: `groupId`. Opcionais: `groupDescription`, `description`.

### Newsletter / Canais

Gerenciamento de newsletters e canais (@newsletter).

- `GET /api-bridge-whats/instances/{instance}/token/{token}/newsletter` — Listar newsletters. Retorna todas as newsletters da instância (próprias e seguidas).
- `POST /api-bridge-whats/instances/{instance}/token/{token}/create-newsletter` — Criar newsletter. Cria um novo canal/newsletter. Campos obrigatórios: `name`. Opcionais: `description`.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/newsletter/metadata/{newsletterId}` — Metadados da newsletter. Retorna informações detalhadas de uma newsletter.
- `PUT /api-bridge-whats/instances/{instance}/token/{token}/follow-newsletter` — Seguir newsletter. A instância começa a seguir a newsletter. Campos obrigatórios: `id`.
- `PUT /api-bridge-whats/instances/{instance}/token/{token}/unfollow-newsletter` — Deixar de seguir newsletter. A instância para de seguir a newsletter. Campos obrigatórios: `id`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/newsletter/settings/{newsletterId}` — Configurações da newsletter. Atualiza as configurações de reação da newsletter. Opcionais: `reactionCodes`.
- `PUT /api-bridge-whats/instances/{instance}/token/{token}/mute-newsletter` — Silenciar newsletter. Silencia as notificações de uma newsletter. Campos obrigatórios: `id`.
- `DELETE /api-bridge-whats/instances/{instance}/token/{token}/delete-newsletter` — Deletar newsletter. Remove permanentemente uma newsletter. Campos obrigatórios: `id`.
- `PUT /api-bridge-whats/instances/{instance}/token/{token}/unmute-newsletter` — Reativar som da newsletter. Reativa as notificações de uma newsletter silenciada. Campos obrigatórios: `id`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/update-newsletter-picture` — Atualizar imagem da newsletter. Atualiza a foto/capa da newsletter. Campos obrigatórios: `id`, `pictureUrl`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/update-newsletter-name` — Alterar nome da newsletter. Atualiza o nome/título da newsletter. Campos obrigatórios: `id`, `name`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/update-newsletter-description` — Alterar descrição da newsletter. Atualiza a descrição exibida no canal. Campos obrigatórios: `id`, `description`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/search-newsletter` — Buscar newsletters. Busca newsletters para descoberta/exploração com filtros de visualização e país. Opcionais: `limit`, `view`, `searchText`, `filters`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/newsletter/accept-admin-invite/{newsletterId}` — Aceitar convite de admin. Aceita um convite para se tornar administrador da newsletter.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/newsletter/remove-admin/{newsletterId}` — Remover administrador da newsletter. Remove os privilégios de administrador de um membro. Campos obrigatórios: `phone`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/newsletter/revoke-admin-invite/{newsletterId}` — Revogar convite de admin. Cancela um convite de administrador pendente. Campos obrigatórios: `phone`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/newsletter/transfer-ownership/{newsletterId}` — Transferir propriedade da newsletter. Transfere a titularidade (ownership) da newsletter para outro número. Campos obrigatórios: `phone`.

### Chats

Listagem e metadados de conversas.

- `GET /api-bridge-whats/instances/{instance}/token/{token}/chats` — Listar conversas. Retorna a lista de chats com paginação obrigatória.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/modify-chat` — Marcar chat como lido/não lido. Altera o estado de leitura de uma conversa. Campos obrigatórios: `phone`, `action`.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/chats/{phone}` — Metadados de um chat. Retorna informações detalhadas de uma conversa específica.

### Webhooks

Configuração de URLs de callback para eventos da instância.

- `PUT /api-bridge-whats/instances/{instance}/token/{token}/update-webhook-received` — Webhook — mensagem recebida. URL chamada sempre que a instância receber uma mensagem. Campos obrigatórios: `value`.
- `PUT /api-bridge-whats/instances/{instance}/token/{token}/update-webhook-delivery` — Webhook — confirmação de entrega. URL chamada quando uma mensagem enviada é confirmada como entregue. Campos obrigatórios: `value`.
- `PUT /api-bridge-whats/instances/{instance}/token/{token}/update-webhook-connected` — Webhook — instância conectada. URL chamada quando a instância se conecta ao WhatsApp. Campos obrigatórios: `value`.
- `PUT /api-bridge-whats/instances/{instance}/token/{token}/update-webhook-disconnected` — Webhook — instância desconectada. URL chamada quando a instância se desconecta. Campos obrigatórios: `value`.

### Comunidades

Super-grupos: criação, gestão e configurações de comunidades.

- `GET /api-bridge-whats/instances/{instance}/token/{token}/communities` — Listar comunidades. Retorna todas as comunidades da instância.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/communities` — Criar comunidade. Cria uma nova comunidade com participantes iniciais. Campos obrigatórios: `name`. Opcionais: `description`, `participants`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/communities/link` — Vincular grupos à comunidade. Adiciona grupos existentes a uma comunidade. Campos obrigatórios: `communityId`, `groupsPhones`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/communities/unlink` — Desvincular grupos da comunidade. Remove grupos de uma comunidade. Campos obrigatórios: `communityId`, `groupsPhones`.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/communities-metadata/{communityId}` — Metadados da comunidade. Retorna informações detalhadas da comunidade incluindo grupos vinculados e participantes.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/communities/settings` — Configurações da comunidade. Atualiza permissões da comunidade, como quem pode adicionar novos grupos. Campos obrigatórios: `communityId`, `whoCanAddNewGroups`.
- `DELETE /api-bridge-whats/instances/{instance}/token/{token}/communities/{communityId}` — Desativar comunidade. Desativa e remove permanentemente uma comunidade.

### Chamadas (beta)

Chamadas de voz por WhatsApp: atender, recusar, tocar áudio, falar por TTS, gravar e transcrever. Requer ativação.

- `GET /api-bridge-whats/instances/{instance}/token/{token}/call/config` — Ver configuração de chamadas. Retorna como a instância trata chamadas recebidas. onIncoming vazio significa que nada foi configurado e a ligação toca normalmente no celular.
- `PUT /api-bridge-whats/instances/{instance}/token/{token}/call/config` — Configurar chamadas recebidas. Define o que fazer quando alguém liga para o número da instância. Campos obrigatórios: `onIncoming`. Opcionais: `mp3`, `ai`, `human`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/call/start` — Iniciar chamada. Faz uma chamada de voz para um número. Campos obrigatórios: `phone`. Opcionais: `video`, `mp3Url`, `mp3Base64`, `hangupAfter`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/call/accept` — Atender chamada. Atende uma chamada em curso. Campos obrigatórios: `callId`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/call/reject` — Recusar chamada. Recusa uma chamada recebida. Campos obrigatórios: `callId`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/call/terminate` — Encerrar chamada. Desliga uma chamada em andamento. Campos obrigatórios: `callId`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/call/play` — Tocar áudio na chamada. Reproduz um MP3 dentro de uma chamada ativa. Campos obrigatórios: `callId`. Opcionais: `url`, `base64`, `hangupAfter`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/call/say` — Falar texto na chamada (TTS). Converte texto em voz e reproduz dentro da chamada. Campos obrigatórios: `callId`, `text`. Opcionais: `voiceId`, `hangupAfter`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/call/webrtc` — Ponte WebRTC. Troca o SDP para ligar a chamada a um cliente WebRTC (ex.: atendimento humano pelo navegador). Campos obrigatórios: `callId`, `sdpOffer`.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/call/{callId}/record/start` — Iniciar gravação. Começa a gravar o áudio da chamada.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/call/{callId}/record/stop` — Parar gravação. Encerra a gravação em andamento.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/call/{callId}/recording` — Baixar gravação. Retorna o MP3 da chamada gravada. Responde 404 quando não há gravação para o callId.
- `GET /api-bridge-whats/instances/{instance}/token/{token}/call/{callId}/transcript` — Ver transcrição. Retorna a transcrição da chamada, segmentada por quem falou.
- `POST /api-bridge-whats/instances/{instance}/token/{token}/call/{callId}/transcript` — Anexar transcrição. Adiciona segmentos à transcrição da chamada. Serve para quem roda o próprio motor de fala e quer guardar o resultado junto da chamada. Campos obrigatórios: `segments`.
