Contatos autorizados
Enviar é decisão sua; receber não é. Assim que um número está conectado, qualquer pessoa que o conheça pode escrever para ele. A lista de autorizados existe para que o sistema só registre conversas de quem você cadastrou — protegendo dados de quem nunca pediu contato.
Por que ela é obrigatória
É uma decisão de privacidade, não de proteção do número. A diferença importa porque muda o que dá para flexibilizar: os limites de envio são estimativas e podem ser ajustados com a experiência; a lista não, porque o risco que ela cobre não é o número ser bloqueado — é a ferramenta virar depósito de dado pessoal de terceiro que nunca consentiu com nada. Quem escreve para o seu número está falando com você, não com um laboratório de protocolo.
Ela também é a única barreira que não depende de ninguém estar prestando atenção. Uma mensagem chega às três da manhã, o processo grava sozinho, e a decisão sobre gravar já precisa ter sido tomada antes — no cadastro, não no momento do recebimento.
Grupos nunca passam
Mensagem de grupo é descartada mesmo que o número esteja cadastrado. Não é uma configuração — é a primeira verificação, e não há como desligá-la pela tela.
A razão é que num grupo você consegue, no máximo, falar por si. Os outros participantes entraram numa conversa entre pessoas e não têm relação com esta ferramenta: cadastrar um número não autoriza registrar o que os vizinhos dele escreveram. Um grupo com quarenta pessoas é um pedido de consentimento que ninguém teria como coletar.
O que acontece com uma mensagem recebida
Antes de qualquer gravação, ela passa por quatro perguntas. Falhar em uma é descarte:
| Descarte | Quando | Por quê |
|---|---|---|
GRUPO | O remetente é um grupo. | Tem terceiros que nunca souberam da existência desta ferramenta. |
FORA_DA_ALLOWLIST | O número não está cadastrado. | Ninguém pediu para ter o dado registrado aqui. |
PROPRIA | É o eco do seu próprio envio. | Já foi registrado no momento do envio — gravar de novo duplicaria. |
SEM_CONTEUDO | Recibo, presença, “digitando…”. | É evento de protocolo, não mensagem. |
O corpo não é persistido
Por padrão, uma mensagem gravada guarda metadado: direção, tipo do
Protobuf (conversation, imageMessage…), tamanho em bytes,
status de entrega e o identificador. O texto em si fica de fora, e a linha carrega uma
marca de que foi redigida — o registro é honesto quanto ao que não guardou.
A variável PERSISTIR_CONTEUDO=true liga a gravação do corpo, e existe para um
caso específico: depurar com número próprio, quando é preciso comparar o
que se enviou com o que chegou. Não é um modo de operação; é uma ferramenta de
investigação, com o custo assumido de que o texto vai ao banco.
Os números aparecem por inteiro
Todas as telas mostram o número completo, em E.164
(+5535999998888). O mesmo vale para a API.
Até 10/08 as listagens mascaravam os dígitos finais
(+55 35 ●●●●-●●), para que uma captura de tela não expusesse
várias pessoas de uma vez. A máscara foi removida a pedido: a ferramenta roda em loopback, com um operador só, os destinatários já passaram pela allowlist
e o número é dedicado ao atendimento — ler ●●●● atrapalhava conferir a sessão sem proteger de ninguém. Na API a máscara era ainda mais
simbólica: o campo jid já trazia o número inteiro na mesma resposta.
O banco guarda as chaves da sessão
Este é o ponto que costuma passar batido, e é o mais grave da página. Além de mensagens, o banco guarda o material Signal da sessão: credenciais de identidade, pre-keys e os canais criptográficos abertos. É o que permite reconectar sem novo QR — e é exatamente por isso que ele é perigoso.
Vale o mesmo raciocínio para a máquina onde a ferramenta roda: a interface que controla a sessão não deveria estar acessível pela rede sem autenticação na frente. Não é excesso de zelo — quem alcança a tela alcança o número.
