# Como Atender às Solicitações de Exclusão de Dados de CPF Conforme a LGPD

> Saiba como atender corretamente às solicitações de exclusão de dados de CPF conforme a LGPD, com fluxos automatizados e práticas recomendadas.

**Publicado:** 16/05/2024
**Autor:** Redação CPFHub.io
**URL:** https://cpfhub.io/blog/atender-solicitacoes-exclusao-dados-cpf-lgpd

---


Quando um titular solicita exclusão de seus dados de CPF, a empresa tem obrigação de atender conforme a [LGPD](https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/lei/l13709.htm) — mas com exceções: dados necessários para cumprimento de obrigação legal (como logs de PLD/FT mantidos por 5 anos) não precisam ser excluídos imediatamente. O prazo de resposta é de 15 dias e a empresa deve documentar cada solicitação atendida.

## Introdução

O artigo 18 da LGPD garante ao titular o direito de solicitar a eliminação dos seus dados pessoais tratados com base no consentimento. Quando um titular solicita a exclusão do seu CPF e dados associados, a empresa tem a obrigação de atender essa solicitação dentro de prazo razoável, salvo exceções legais. No entanto, implementar esse processo em sistemas que consomem APIs de CPF e armazenam respostas em múltiplos locais é um desafio técnico e organizacional.

---

## O direito de exclusão na LGPD

A LGPD prevê situações em que a exclusão é obrigatória e exceções em que a retenção é permitida:

| Situação | Exclusão Obrigatória | Base Legal |
|----------|---------------------|------------|
| Dados tratados com base no consentimento revogado | Sim | Art. 18, VI |
| Dados desnecessários ou excessivos | Sim | Art. 18, IV |
| Dados tratados em desconformidade com a LGPD | Sim | Art. 18, IV |
| Dados necessários para cumprimento de obrigação legal | Não | Art. 16, I |
| Dados para exercício regular de direitos em processo | Não | Art. 16, III |
| Dados anonimizados | Não se aplica | Art. 16, IV |
| Dados para proteção de crédito | Retenção permitida | Art. 7o, X |

É fundamental que a equipe jurídica avalie cada solicitação para determinar se a exclusão pode ser atendida integralmente ou se existem bases legais que justifiquem a retenção parcial.

---

## Fluxo de atendimento à solicitação

O processo de exclusão deve ser documentado e seguir etapas claras:

- **Recebimento e registro** -- receba a solicitação por canal verificável e registre com protocolo, data e hora
- **Verificação de identidade** -- confirme que o solicitante é o titular do CPF para evitar exclusões fraudulentas
- **Mapeamento de dados** -- identifique todos os locais onde dados do CPF estão armazenados (bancos, caches, logs, backups)
- **Análise de base legal** -- determine se existe obrigação legal que justifique a retenção de algum dado
- **Execução da exclusão** -- remova os dados de todos os locais identificados, respeitando exceções legais
- **Confirmação ao titular** -- notifique o titular sobre a conclusão da exclusão com detalhes do que foi removido

---

## Implementação técnica da exclusão

Automatize o processo de exclusão para garantir consistência e rastreabilidade:

```python
import hashlib
import logging
from datetime import datetime
from typing import List, Dict

logger = logging.getLogger("exclusao_dados")

class GestorExclusaoCPF:
 """Gerencia solicitações de exclusão de dados de CPF."""

 def __init__(self, db, cache, notificador):
 self.db = db
 self.cache = cache
 self.notificador = notificador

 def processar_exclusao(self, cpf: str, protocolo: str) -> Dict:
 """Processa uma solicitação de exclusão completa."""
 cpf_hash = hashlib.sha256(cpf.encode()).hexdigest()
 resultado = {
 "protocolo": protocolo,
 "cpf_hash": cpf_hash,
 "timestamp": datetime.utcnow().isoformat(),
 "etapas": []
 }

 # Etapa 1: Mapear dados
 locais = self._mapear_dados(cpf)
 resultado["etapas"].append({
 "etapa": "mapeamento",
 "locais_encontrados": len(locais)
 })

 # Etapa 2: Verificar retenção obrigatória
 retencao = self._verificar_retencao(cpf)

 # Etapa 3: Executar exclusão
 for local in locais:
 if local["tipo"] in retencao:
 resultado["etapas"].append({
 "etapa": f"retido_{local['tipo']}",
 "motivo": retencao[local["tipo"]]
 })
 else:
 self._excluir_de(local, cpf)
 resultado["etapas"].append({
 "etapa": f"excluido_{local['tipo']}",
 "status": "concluido"
 })

 # Etapa 4: Limpar caches
 self.cache.delete(f"cpf:{cpf_hash}")
 resultado["etapas"].append({
 "etapa": "cache_limpo", "status": "concluido"
 })

 logger.info(f"Exclusão processada: protocolo {protocolo}")
 return resultado

 def _mapear_dados(self, cpf: str) -> List[Dict]:
 """Identifica todos os locais com dados do CPF."""
 return [
 {"tipo": "cadastro", "tabela": "clientes"},
 {"tipo": "consultas", "tabela": "log_consultas_cpf"},
 {"tipo": "cache", "tabela": "redis_cpf_cache"},
 {"tipo": "auditoria", "tabela": "audit_log"}
 ]

 def _verificar_retencao(self, cpf: str) -> Dict:
 """Verifica se existe obrigação legal de retenção."""
 return {
 "auditoria": "Art. 16, I - Obrigação legal de manter "
 "registros de auditoria por 5 anos"
 }

 def _excluir_de(self, local: Dict, cpf: str):
 """Executa a exclusão em um local específico."""
 self.db.execute(
 f"DELETE FROM {local['tabela']} WHERE cpf_hash = %s",
 (hashlib.sha256(cpf.encode()).hexdigest(),)
 )
```

---

## Tratamento de dados em terceiros

Quando dados de CPF foram compartilhados com a API do CPFHub ou outros serviços, a exclusão deve considerar a cadeia de processamento:

- **Notificação ao operador** -- informe o provedor da API sobre a solicitação de exclusão do titular
- **Confirmação de exclusão** -- solicite confirmação por escrito de que os dados foram removidos dos sistemas do operador
- **Cache distribuído** -- verifique se CDNs ou sistemas intermediários possuem cópias cacheadas dos dados
- **Backups** -- defina política para tratamento de dados em backups, que geralmente são excluídos na próxima rotação

É importante documentar que a API do CPFHub.io opera como consulta em tempo real, sem retenção permanente dos dados consultados pelo cliente.

---

## Registro e auditoria de exclusões

Mantenha registros detalhados de cada exclusão processada para comprovar conformidade:

```bash
# Exemplo de relatório de exclusão gerado automaticamente
curl -s -X POST "https://api-interna.empresa.com/exclusao/relatorio" \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer ${TOKEN_COMPLIANCE}" \
 -d '{
 "protocolo": "EXC-2024-001234",
 "data_solicitacao": "2024-05-16T10:00:00Z",
 "data_conclusao": "2024-05-17T15:30:00Z",
 "cpf_hash": "a1b2c3d4e5f6...",
 "locais_excluidos": [
 "tabela_clientes",
 "tabela_consultas",
 "cache_redis"
 ],
 "dados_retidos": {
 "audit_log": "Obrigação legal - Art. 16, I LGPD"
 },
 "responsavel": "sistema_automatizado"
 }' | python3 -m json.tool
```

Esses registros devem ser mantidos pelo período regulatório aplicável e disponibilizados em caso de fiscalização pela ANPD.

---

## Perguntas frequentes

### A empresa é obrigada a excluir o CPF de um cliente quando ele solicita?
Em geral sim, mas a LGPD prevê exceções no artigo 16: quando os dados são necessários para cumprimento de obrigação legal (ex: logs de PLD/FT exigidos por 5 anos), para exercício de direito em processo judicial, ou para uso exclusivo do controlador com dados anonimizados. Fora dessas exceções, a exclusão é obrigatória.

### Como excluir dados de CPF de todos os sistemas sem deixar registros residuais?
O processo de exclusão deve cobrir: banco de dados principal, backups, logs de aplicação, sistemas de analytics, planilhas e qualquer cópia em ambiente terceiro. Documente o processo e o resultado. Dados em backups podem ser tratados por expiração natural conforme política de retenção, desde que não sejam restaurados após a solicitação.

### O que acontece se a empresa não atender uma solicitação de exclusão de CPF no prazo?
A ANPD pode ser acionada pelo titular. O não cumprimento de direito de exclusão é infração formal à LGPD, sujeita a advertência e multa. O regulador avalia o volume de solicitações não atendidas e a recorrência do problema para definir a gravidade da sanção.

### Devo excluir o CPF de um cliente que ainda tem contrato ativo com a empresa?
Não é possível excluir dados necessários para a execução do contrato vigente — a base legal "execução de contrato" prevalece sobre o pedido de exclusão enquanto o contrato estiver ativo. Após o encerramento e o prazo de retenção obrigatório, a exclusão deve ser processada automaticamente.

### Leia também

- [LGPD: CPF é dado pessoal sensível ou não? Entenda a classificação correta](https://cpfhub.io/blog/lgpd-cpf-e-dado-pessoal-sensivel-ou-nao-entenda-a-classificacao-correta)
- [Exigências da ANPD para dados de CPF via APIs](https://cpfhub.io/blog/exigencias-da-anpd-para-tratamento-de-dados-de-cpf-via-apis-de-terceiros)
- [KYC no Brasil: quais setores são obrigados a validar CPF por lei](https://cpfhub.io/blog/kyc-no-brasil-quais-setores-sao-obrigados-a-validar-cpf-por-lei)
- [Como atender às exigências do COAF para PLD/FT usando validação de CPF](https://cpfhub.io/blog/como-atender-as-exigencias-do-coaf-para-pld-ft-usando-validacao-de-cpf)

---

## Conclusão

Atender às solicitações de exclusão de dados de CPF é um direito do titular e uma obrigação da empresa sob a LGPD. O processo exige mapeamento completo dos locais onde os dados residem, análise de bases legais para retenção parcial e execução automatizada com rastreabilidade. Ao integrar com a API do [cpfhub.io](https://www.cpfhub.io/), é importante documentar que o provedor opera como consulta em tempo real, sem retenção permanente dos dados pelo cliente. Essa arquitetura simplifica o atendimento a solicitações de exclusão: os dados que precisam ser removidos estão apenas nos sistemas internos da empresa.

Cadastre-se em [cpfhub.io](https://www.cpfhub.io/) — 50 consultas mensais gratuitas, sem cartão de crédito — e garanta que sua integração de CPF esteja em conformidade com os direitos dos titulares desde o primeiro dia.

