API de WhatsApp e LGPD: o que a sua software house precisa garantir no contrato do cliente
Ao integrar WhatsApp no sistema de um cliente, você vira operador de dados pessoais. O que isso exige na prática: papéis definidos em contrato, base legal para cada disparo, retenção de conversa, atendimento a titular e o que fazer num incidente.
No momento em que você integra WhatsApp ao sistema de um cliente, você passa a tratar dados pessoais de terceiros. Nome, telefone, conteúdo de conversa, horário, às vezes documento e endereço — tudo trafegando pelo seu código e parando no seu banco.
Isso tem consequência contratual, e ela costuma aparecer tarde: na hora em que o cliente é uma empresa grande e o jurídico dele pede o acordo de tratamento de dados que você não tem.
Este artigo é orientação prática de quem constrói software, não parecer jurídico. Contrato e política devem passar por advogado.
Quem é o quê
A LGPD separa dois papéis, e a diferença define quem responde pelo quê.
Controlador decide sobre o tratamento: a quem mandar, com que finalidade, por quanto tempo guardar.
Operador trata os dados em nome do controlador, seguindo instruções.
Numa integração típica de software house:
| Quem | Papel típico | Por quê |
|---|---|---|
| Seu cliente | Controlador | Decide o que enviar, para quem e por quê |
| Sua software house | Operador | Fornece e opera o sistema conforme instruções |
| Plataforma de API | Suboperadora | Transmite as mensagens |
Cuidado com o caso em que você vira controlador sem perceber. Se a sua software house decide sozinha guardar as conversas por cinco anos para treinar um modelo, ou usa a base de um cliente para outra finalidade, essa decisão é de controlador — e a responsabilidade acompanha.
Base legal antes do disparo
Consentimento é uma das bases legais, não a única. O que não existe é tratamento sem base nenhuma.
| Mensagem | Base usual |
|---|---|
| "Seu pedido #1042 saiu para entrega" | Execução do contrato |
| "Sua consulta é amanhã às 14h" | Execução do contrato |
| "Seu boleto vence hoje" | Execução do contrato / obrigação legal |
| "Promoção de aniversário, 30% off" | Consentimento |
| "Faz tempo que você não compra..." | Consentimento (ou legítimo interesse, com análise) |
A regra de bolso que funciona no dia a dia: se a mensagem existe porque o titular fez algo, geralmente é execução de contrato. Se existe porque você quer que ele faça algo, geralmente é consentimento.
É a mesma divisória que a Meta usa para categorizar templates, o que não é coincidência — as duas regras protegem a mesma coisa.
Quando a base é consentimento, ele precisa ser registrado com prova: quando, onde, e o texto que a pessoa leu. O modelo de tabela está em opt-in e opt-out.
O que precisa estar no contrato
Sete pontos. Se faltarem, o jurídico do cliente vai pedir — melhor você chegar com eles prontos.
1. Papéis. Quem é controlador, quem é operador. Escrito.
2. Finalidade e escopo. Para que os dados são tratados e o que não é permitido. A cláusula que protege você é a que diz que a software house trata os dados apenas conforme instruções documentadas do controlador.
3. Dados tratados. Telefone, nome, conteúdo das mensagens, mídias, metadados de entrega e leitura.
4. Retenção. Prazo de guarda e o que acontece no fim do contrato: devolução, exclusão, ou exclusão após um período de disponibilização.
5. Subtratamento. Nomeie a plataforma de API e onde a infraestrutura opera. É a pergunta que sempre vem, e responder antes economiza uma rodada.
6. Titulares. Quem recebe o pedido, quem executa, em qual prazo. Normalmente o cliente recebe e você executa.
7. Incidente. Prazo e canal para você comunicar o cliente. Combine algo curto e realista — 24 ou 48 horas da ciência.
O que precisa estar no código
Cláusula sem implementação é papel. Quatro coisas fazem a diferença:
Exclusão por titular que cubra tudo.
async function excluirTitular(numero) {
await db.mensagens.deletar({ numero });
await db.contatos.deletar({ numero });
await storage.remover(`midias/${numero}/`); // mídias também
await db.logs.anonimizar({ numero }); // logs também
await registrarExecucao(numero, 'exclusao'); // prova de que atendeu
}
Apagar a linha da tabela de contatos e deixar cinco anos de conversa, mídias no bucket e o número em log de aplicação não é exclusão. A parte que quase todo mundo esquece é o backup: tenha uma política escrita de como o dado sai dele também, nem que seja pela expiração do próprio backup.
Retenção automática.
DELETE FROM mensagens WHERE criada_em < NOW() - INTERVAL '2 years';
Um job. Retenção que depende de alguém lembrar não é política.
Registro do consentimento, com o texto exibido.
Minimização. Não guarde o que não usa. Se o seu sistema não precisa da mídia depois de processada, não a guarde.
Onde a API oficial ajuda no argumento
Quando o cliente é uma empresa grande, a pergunta vem: "esse WhatsApp é oficial?"
A API oficial da Meta dá o que a área de risco quer ver: relação contratual com a Meta, conta no Business Manager do próprio cliente e regras claras sobre o que pode ser enviado. Em contrato com empresa de porte, isso costuma ser eliminatório.
A não oficial não é ilegal — mas não oferece essa relação contratual, e há setores em que isso encerra a conversa. Vale saber disso antes da reunião, não durante.
A política de privacidade e os termos da plataforma que você usa como subtratadora também vão ser pedidos: privacidade, termos e LGPD.
Um checklist para a próxima proposta
- Papéis definidos por escrito
- Base legal identificada para cada tipo de mensagem
- Consentimento registrado com data, origem e texto exibido
- Opt-out funcionando e checado na hora do envio
- Prazo de retenção definido e automatizado
- Exclusão por titular cobrindo mensagens, mídias, logs e backup
- Subtratadora nomeada no contrato
- Prazo de comunicação de incidente combinado
- Acesso ao sistema restrito e registrado
Conclusão
Para quem entrega software, LGPD numa integração de WhatsApp é menos sobre jurídico e mais sobre decidir antes: quem responde pelo quê, com que base cada mensagem sai, por quanto tempo o dado fica e como ele é apagado quando alguém pede.
Chegar na proposta com essas respostas prontas deixa de ser custo e vira argumento — especialmente com cliente grande, onde a alternativa é o seu projeto parar no jurídico dele por semanas.
Se esse é o seu tipo de cliente, a página para software house trata do resto do desenho.
Pronto para automatizar seu WhatsApp?
Crie sua conta gratuita e comece a enviar mensagens pela API em minutos.
Começar grátisPerguntas frequentes
Quem é o controlador dos dados numa integração de WhatsApp?+
Em geral o seu cliente, porque é ele quem decide para quem mandar mensagem e com que finalidade. A software house que apenas fornece e opera o sistema costuma figurar como operadora, tratando os dados conforme as instruções do controlador. O que define o papel é quem toma as decisões sobre o tratamento, não quem hospeda o servidor.
Consentimento é sempre necessário para mandar WhatsApp?+
Não necessariamente. Consentimento é uma das bases legais possíveis. Mensagem transacional sobre um pedido em andamento normalmente se apoia na execução do contrato; mensagem promocional para quem não pediu costuma exigir consentimento. O que não existe é disparo sem base legal nenhuma.
Por quanto tempo posso guardar as conversas do WhatsApp?+
Pelo tempo necessário à finalidade que justificou a coleta, mais eventuais prazos legais aplicáveis. O que a LGPD não admite é guardar indefinidamente por padrão. Na prática, definir uma política de retenção com prazo escrito e automatizar o descarte é o que transforma a regra em algo verificável.
Preciso de contrato específico com meu cliente para isso?+
Sim, e ele deve estar escrito. O contrato precisa deixar claro quem é controlador e quem é operador, qual a finalidade do tratamento, quais dados são tratados, por quanto tempo, quem responde pelo atendimento a titulares e como um incidente será comunicado.
O que fazer se alguém pedir para excluir os dados dele?+
O pedido é normalmente dirigido ao controlador — o seu cliente. Como operador, você precisa ter o mecanismo pronto para atender à instrução dele dentro do prazo. Na prática isso significa ter uma função de exclusão por titular que cubra conversas, mídias, logs e backups, e não só a linha da tabela de contatos.
Continue lendo
Como criar um chatbot de IA com a API da OpenAI para responder no WhatsApp
Um webhook, uma chamada à API da OpenAI e uma resposta pela WAME API: o código completo de um chatbot de IA que atende no WhatsApp, Instagram e Messenger. Com memória por contato, controle de custo e o que fazer quando a IA não deve responder.
Cobrança por Pix dentro do WhatsApp pela API: como enviar e o que muda na conversão
Mandar o código Pix no WhatsApp resolve o pior ponto da cobrança digital: o cliente não precisa sair do app. Como enviar a cobrança pela API, tratar a confirmação e evitar os erros que transformam a facilidade em suporte.
Erros da API do WhatsApp: o que cada um significa e como tratar
A mensagem não saiu e o log diz apenas 'erro ao enviar'. Os erros que você vai encontrar de verdade — janela fechada, número inválido, template não aprovado, limite atingido, instância caída — e o tratamento certo para cada um.