Pular para o conteúdo principal
Os recursos por número estão em beta. Na página Números do Console, um proprietário ou administrador da equipe seleciona Participar na linha do beta Number capabilities, revisa os termos e seleciona Aceitar e participar. Até a equipe participar e o beta ser oferecido a ela, toda solicitação de recursos retorna 403 permission_denied.
O WhatsApp não ativa todos os recursos para todas as contas ao mesmo tempo. Ele libera recursos por conta, país e versão do app, e define limites como por quanto tempo uma mensagem enviada continua editável. O endpoint de recursos informa quais controles de configuração estão ativados para um dos seus números. O seu app também precisa verificar os requisitos do cliente e tratar as operações que o WhatsApp rejeita.

Como os valores são produzidos

A Polymorfa lê a configuração do WhatsApp de cada número conectado como dispositivo vinculado quando o número se conecta pela primeira vez, a cada acesso em que o WhatsApp informa uma alteração, quando o WhatsApp pede uma atualização e no intervalo de atualização que o WhatsApp define para o número (um dia por padrão). Cada recurso avalia os controles de configuração identificados no WhatsApp Web. Esses valores não verificam requisitos do ambiente do cliente nem garantem que o servidor do WhatsApp vai aceitar uma operação.
  • Os valores vêm de uma conexão de dispositivo vinculado. Um número que nunca teve uma (conectado apenas pela API oficial) informa status unknown. Um número cuja conexão de dispositivo vinculado foi removida mantém os últimos valores sincronizados.
  • Os valores refletem a configuração do WhatsApp em syncedAt. Eles não são uma verificação ao vivo. Uma alteração feita pelo WhatsApp aparece depois da próxima sincronização do número.
  • Os valores descrevem a última conta do WhatsApp vinculada ao número, esteja ela conectada agora ou não. Leia a sessão do número para saber o status da conexão.
  • status é unknown e todo value é null antes da primeira sincronização do número e quando outra conta do WhatsApp é vinculada ao número: desde a primeira tentativa de sincronização dessa conta até a configuração dela ser sincronizada. A Polymorfa reconhece outra conta pelo horário de criação da conta que o WhatsApp informa quando o número acessa o WhatsApp. Se o WhatsApp não informar esse horário para a conta recém-vinculada, a troca não é detectada, e os valores continuam sendo os da conta para a qual foram sincronizados até a próxima sincronização. Quando a Polymorfa não consegue saber se a configuração armazenada pertence à conta vinculada agora, status também fica unknown até a configuração do WhatsApp ser sincronizada de novo para essa conta; tentativas de sincronização com falha não mudam isso.
  • Um recurso diz o que o WhatsApp permite ao número. Ele não significa que a API da Polymorfa oferece uma operação para esse recurso.
  • source é server apenas quando todas as configurações usadas para avaliar um valor foram enviadas pelo WhatsApp e usadas como foram enviadas; caso contrário, o padrão ou o limite do próprio WhatsApp entrou na avaliação, e source é client_default.

Antes de começar

  • A sua equipe participa do beta. Sair do beta faz as leituras de recursos serem recusadas; os números e todas as outras APIs não são afetados.
  • Você chama a partir do seu servidor com uma chave de organização ou um token de projeto que tenha o escopo sessions:read. Um token de projeto alcança apenas os números do próprio projeto. Tokens de cliente são rejeitados.
sessionId é o nome da sessão ou o ID dela.

Ler os recursos de um número

O exemplo mostra três das entradas. A resposta sempre contém todos os recursos, na mesma ordem. Ignore as chaves que o seu app não reconhece. Novos recursos podem ser adicionados; uma chave existente nunca muda de significado.

Recursos

Erros

Recursos de grupo

A leitura de grupo e o evento de alteração de recursos não são oferecidos. A inscrição no beta de recursos por número não ativa essas extensões. O contrato da leitura de grupo é GET /messaging/{session}/groups/{id}/capabilities. Use o identificador do grupo na Polymorfa e uma credencial de servidor com groups:read. O número vinculado precisa ser membro atual do grupo. Conexões de grupo pela API oficial não oferecem essa leitura. A resposta inclui status, syncedAt, checkedAt e três chaves de recurso: polls.endTime, polls.hideVoters e polls.creatorEdit. Um controle está ativado quando o WhatsApp o ativa para o número ou para aquele grupo. O source de um valor é server ou client_default; valores desconhecidos têm valor e origem nulos. Os valores continuam desconhecidos até o número concluir a primeira sincronização de configuração no nível do número e uma sincronização de configuração do grupo ter sido bem-sucedida para a conta vinculada ao número. Ler os recursos não abre a conversa nem busca a configuração. syncedAt identifica a leitura de configuração bem-sucedida; checkedAt inclui verificações posteriores que falharam. A troca de conta torna desconhecidos os valores de grupo da conta anterior. Esses controles descrevem a configuração e não dão permissão para editar a enquete de outro participante. A ferramenta MCP correspondente é groups_capabilities, com os argumentos session e id. Ela segue as mesmas verificações de credencial de servidor, escopo, participação no grupo e beta da API. A extensão não é oferecida por nenhuma das duas interfaces. Consulte Read group capabilities.

Eventos de alteração de recursos

O contrato session.capabilities_updated descreve alterações nos recursos efetivos de um número em um webhook de projeto. A carga contém a resposta de recursos do número e changedKeys, as chaves cujo valor ou origem mudou. Uma alteração de status ou de tipo de conta também gera um evento, mesmo quando changedKeys está vazio. Verificações de rotina e alterações de configuração que não mudam os recursos não geram eventos. Alterações de recursos de grupo não geram este evento. A publicação e a entrega exigem o mesmo acesso ao beta que uma leitura de recursos. Quando o acesso é retirado ou fica indisponível, as alterações na fila esperam o acesso voltar e expiram depois de sete dias. O histórico publicado segue a retenção normal de eventos. As novas tentativas mantêm o ID do evento; elimine duplicatas por esse ID. Consulte Webhooks para a verificação de assinatura e o tratamento das entregas.