O que o anti-delete registra?

Quando uma mensagem é revogada, o serviço procura a mensagem original no histórico recebido. Se ela não estiver disponível, por exemplo porque expirou ou nunca foi recebida, o conteúdo não é recuperado. Com store_recovered ativo, o registro armazenado inclui o conteúdo original e dados como tipo, identificador, conversa, remetente e datas.

Em instância nova, a configuração padrão tem anti-delete habilitado, armazenamento ativado e notificação por webhook ativada. Isso torna essencial entender o comportamento antes de colocar uma instância em uso. Uma mensagem apagada pode permanecer guardada e ser usada depois conforme a finalidade definida pela organização. Avise claramente os interlocutores antes de ativar ou manter esse tratamento.

Rota O que faz
GET /anti-delete/config Consulta a configuração atual.
POST /anti-delete/config Altera os campos enviados: enabled, store_recovered, notify_webhook e include_original.
GET /anti-delete/recovered Lista mensagens recuperadas; aceita limit e offset.
GET /anti-delete/recovered/{id} Consulta um registro pelo identificador.
DELETE /anti-delete/recovered/{id} Exclui o registro armazenado.

As rotas usam o token da instância no header token ou Authorization: Bearer SEU_TOKEN. O ID da instância não autentica a requisição. O exemplo abaixo mantém o recurso ligado, guarda os registros e envia o webhook sem o conteúdo original; ajuste os valores à finalidade da sua operação.

curl -X POST 'https://SEU-DOMINIO/anti-delete/config' \
  -H 'Content-Type: application/json' \
  -H 'token: SEU_TOKEN' \
  -d '{"enabled":true,"store_recovered":true,"notify_webhook":true,"include_original":false}'

Os quatro campos são booleanos opcionais, e o POST atualiza somente os campos enviados. include_original controla a inclusão do conteúdo no webhook; não controla se o banco guarda o registro. Para evitar persistência do conteúdo, configure store_recovered como false. Se a operação não deve acompanhar revogações, use enabled:false.

Como funciona o webhook message.revoked?

O evento pode ser message.revoked ou message.revoked.recovered. O payload inclui dados como chave da mensagem, conversa, remetente, nome exibido, indicador de recuperação e horário da exclusão. Com include_original ativo, o webhook pode incluir conteúdo original, texto e tipo da mensagem. Sem essa opção, o sistema ainda pode armazenar o conteúdo se store_recovered estiver ligado.

Essa separação permite reduzir o que trafega até o consumidor do webhook, mas não substitui a decisão sobre armazenamento. Trate o endpoint receptor com controle de acesso, limite de pessoas que podem consultar mensagens e evite replicar conteúdo em logs, ferramentas de análise ou notificações amplas. Encaminhe apenas os campos necessários à finalidade explicada aos participantes.

O evento sinaliza uma revogação e a disponibilidade de conteúdo segundo a configuração; não restaura a mensagem na conversa. A API permite listar e consultar os registros persistidos, mas não oferece uma rota documentada para reenviar a mensagem apagada ao chat. Para integrar outros eventos, veja o guia de webhooks e SSE da GoZAP.

Qual prazo de retenção devo definir?

O sistema não configura TTL ou expiração automática para mensagens recuperadas. Elas ficam armazenadas até serem excluídas pela rota DELETE ou até a exclusão da instância. Portanto, não deixe a duração depender do comportamento padrão: defina um prazo adequado à finalidade e à base legal escolhida, registre a decisão e implemente uma rotina de revisão e exclusão.

A listagem aceita limit e offset; o padrão é 100 registros, o limite aceito vai de 1 a 500 e o offset não pode ser negativo. Uma rotina pode consultar os registros, aplicar o prazo interno definido e excluir cada registro expirado com DELETE /anti-delete/recovered/{id}. Defina também quem pode executar essa rotina, como lidar com falhas e como verificar que a remoção ocorreu. A API não determina qual prazo sua empresa deve adotar.

Antes de ativar, avalie e documente uma base legal aplicável ao contexto, explique o motivo da retenção e aplique minimização: guarde apenas o necessário, restrinja acesso e estabeleça a data de descarte. Uma finalidade possível, definida com transparência, é manter respaldo para analisar uma mensagem caluniosa enviada por um cliente e apagada depois. A utilidade pretendida não transforma automaticamente o registro em prova válida.

Modelo de aviso para adaptar

Para proteger e documentar o atendimento, mensagens apagadas nesta conversa poderão ser armazenadas e consultadas pela equipe por até [prazo definido]. O tratamento tem a finalidade de [finalidade específica] e segue a base legal [base legal avaliada pela organização]. Após o prazo, os registros serão excluídos, salvo necessidade justificada conforme nossas regras de retenção.

Adapte o texto à prática real: não anuncie prazo, exclusão ou uso que sua organização ainda não implementou. Informe os participantes de forma clara antes de iniciar a retenção e mantenha o aviso acessível durante o relacionamento. A escolha da base legal e dos textos deve considerar o contexto e a orientação adequada à organização.

O registro serve como prova jurídica?

Não há garantia de que uma mensagem recuperada seja aceita como prova. A relevância, autenticidade, contexto, integridade do registro e demais circunstâncias dependem do caso concreto e da decisão judicial. Use a função como recurso operacional de registro, sem prometer um resultado jurídico.

O artigo não é aconselhamento jurídico. A organização que usa o recurso precisa avaliar a base legal, explicar o tratamento, limitar os dados e o acesso, definir um prazo e executar uma rotina de exclusão conforme sua realidade. Para contextualizar o risco de operação por API não oficial, leia o guia de risco de restrição e conheça os recursos de grupos, comunidades e canais.

Toda API não oficial opera fora dos termos do WhatsApp e tem risco de restrição; a GoZAP não garante contra bloqueio. O recurso de retenção não altera esse risco nem substitui uma política interna de dados.

Quando não escolher a GoZAP

Não escolha a GoZAP se sua organização não pode avisar os interlocutores, não consegue definir finalidade e base legal, ou não tem processo para revisar e apagar registros dentro de um prazo escolhido. A GoZAP conecta em Web e Mobile, modos que estão fora da API oficial da Meta. Também não adote o recurso com a expectativa de que uma mensagem guardada será aceita como prova em qualquer disputa.

Leia a documentação da API GoZAP para planejar configuração, consulta e exclusão dos registros.