Anti-delete WhatsApp API com transparência e controle
Entenda como o anti-delete da GoZAP registra mensagens revogadas, controla armazenamento, envia webhooks e exige aviso, finalidade e retenção responsável.

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.