Não existe um prazo único para retenção de dados de CPF: a LGPD determina que os dados devem ser eliminados quando a finalidade do tratamento for alcançada, mas legislações setoriais impõem prazos mínimos que chegam a 5 anos para setores financeiros e fiscais. Definir uma política de retenção por finalidade é obrigatório para qualquer empresa que colete CPFs de clientes — e a ANPD pode fiscalizar a ausência dessa política.
Introdução
Uma das perguntas mais frequentes sobre conformidade com a LGPD é: "por quanto tempo posso armazenar dados de CPF?". A resposta não é um prazo fixo universal. A LGPD determina que dados pessoais devem ser eliminados quando a finalidade do tratamento for alcançada ou quando o período de retenção expirar, mas a definição desse período depende da finalidade, do setor e de obrigações legais complementares.
Para empresas que utilizam APIs de consulta de CPF, como a da CPFHub.io, é fundamental distinguir entre o dado retornado pela API (nome, data de nascimento, gênero) e o log da consulta realizada — cada um pode ter prazos de retenção diferentes conforme a finalidade.
O que a LGPD diz sobre retenção
O artigo 15 da LGPD define que o tratamento de dados pessoais deve ser encerrado quando:
-
A finalidade foi alcançada — O dado não é mais necessário para o propósito declarado.
-
O período de tratamento expirou — O prazo definido na política de retenção chegou ao fim.
-
O titular solicita eliminação — Respeitadas as exceções legais.
-
A ANPD determina — Em caso de infração ou irregularidade.
O artigo 16 estabelece que os dados devem ser eliminados após o término do tratamento, exceto quando:
-
Há obrigação legal ou regulatória de conservação.
-
São necessários para estudo por órgão de pesquisa (anonimizados).
-
Há transferência a terceiro com base legal.
-
São de uso exclusivo do controlador, anonimizados.
Prazos de retenção por setor e finalidade
A LGPD não define prazos numéricos universais. Os prazos são definidos por legislações setoriais e pela finalidade do tratamento:
| Setor/Finalidade | Prazo recomendado | Base legal |
|---|---|---|
| Registros financeiros (bancos, fintechs) | 5 anos após encerramento | Código Civil, art. 206 |
| Registros tributários e fiscais | 5 anos | Código Tributário Nacional, art. 173 |
| Relações trabalhistas | 5 anos (até 2 anos após rescisão) | CLT, art. 11 |
| Relações de consumo | 5 anos | CDC, art. 27 |
| KYC e prevenção à lavagem de dinheiro | 5 anos após encerramento da relação | Circular BACEN 3.978 |
| Processos judiciais em andamento | Até trânsito em julgado | Código de Processo Civil |
| Dados de leads não convertidos | 6 a 12 meses | Legítimo interesse (prazo proporcional) |
| Dados para marketing com consentimento | Até revogação do consentimento | LGPD, art. 8º |
Como definir sua política de retenção
1. Mapeie todas as finalidades de uso do CPF
Identifique cada processo que utiliza dados de CPF e a respectiva base legal:
-
Onboarding de clientes — execução de contrato.
-
Validação via API CPFHub.io — execução de contrato / legítimo interesse.
-
Emissão de nota fiscal — obrigação legal.
-
Análise de crédito — execução de contrato.
-
Logs de auditoria — legítimo interesse / obrigação regulatória.
2. Defina prazos para cada finalidade
Para cada finalidade, defina o prazo de retenção com base na legislação aplicável e nas necessidades operacionais.
3. Documente a política
Mantenha um documento formal de política de retenção de dados, revisado periodicamente e aprovado pela liderança.
4. Implemente mecanismos de exclusão automática
Automatize a exclusão de dados que atingiram o prazo de retenção:
import requests
from datetime import datetime, timedelta
# Configuracao de retencao
PRAZO_RETENCAO_DIAS = {
'onboarding': 1825, # 5 anos
'lead_nao_convertido': 180, # 6 meses
'log_auditoria': 1825, # 5 anos
}
def verificar_retencao(registros: list, finalidade: str) -> list:
"""Identifica registros que ultrapassaram o prazo de retencao."""
prazo = PRAZO_RETENCAO_DIAS.get(finalidade, 365)
limite = datetime.now() - timedelta(days=prazo)
registros_expirados = []
for registro in registros:
data_criacao = datetime.fromisoformat(registro['data_criacao'])
if data_criacao < limite:
registros_expirados.append(registro)
return registros_expirados
def excluir_dados_expirados(registros_expirados: list):
"""Exclui ou anonimiza registros expirados."""
for registro in registros_expirados:
cpf_mascarado = f'{registro["cpf"][:3]}.***.**{registro["cpf"][8]}-{registro["cpf"][9:]}'
print(f'Excluindo registro: {cpf_mascarado} | '
f'Criado em: {registro["data_criacao"]}')
# db.delete(registro['id'])
# Exemplo de uso
registros = [
{'cpf': '12345678900', 'data_criacao': '2019-01-15T10:00:00',
'finalidade': 'onboarding'},
{'cpf': '98765432100', 'data_criacao': '2024-06-01T10:00:00',
'finalidade': 'onboarding'},
]
expirados = verificar_retencao(registros, 'onboarding')
excluir_dados_expirados(expirados)
Retenção de dados da API de consulta
Quando você consulta um CPF via API da CPFHub.io, recebe um JSON com os dados cadastrais do titular. A resposta típica tem o formato:
curl -X GET https://api.cpfhub.io/cpf/12345678900 \
-H "x-api-key: SUA_CHAVE_DE_API" \
-H "Accept: application/json" \
--max-time 10
A resposta:
{
"success": true,
"data": {
"cpf": "12345678900",
"name": "João da Silva",
"nameUpper": "JOÃO DA SILVA",
"gender": "M",
"birthDate": "15/06/1990",
"day": 15,
"month": 6,
"year": 1990
}
}
Decida, conforme sua política, quais campos armazenar e por quanto tempo. Se a finalidade da consulta era apenas validar a identidade no momento do cadastro, não há necessidade de reter os dados completos indefinidamente. Em muitos casos, armazenar apenas um hash do CPF e o resultado da validação (aprovado/reprovado) é suficiente para fins de auditoria.
Retenção de logs de auditoria
Logs de consulta de CPF devem ser retidos para fins de auditoria e conformidade. No entanto, os logs devem conter CPF mascarado ou tokenizado:
-
Prazo recomendado para setor financeiro — 5 anos.
-
Prazo recomendado para demais setores — 2 a 3 anos.
-
Formato — Data, hora, CPF mascarado, finalidade, resultado (sucesso/falha), operador.
O que acontece quando o titular solicita exclusão
A LGPD garante ao titular o direito de solicitar a eliminação dos seus dados pessoais. No entanto, a empresa pode reter dados quando:
-
Existe obrigação legal ou regulatória de conservação.
-
Os dados são necessários para defesa em processos judiciais.
-
Os dados foram anonimizados.
Ao receber uma solicitação de exclusão, verifique se alguma exceção se aplica antes de proceder com a eliminação.
Erros comuns na retenção de dados de CPF
-
Não definir política de retenção — Sem prazo definido, dados se acumulam indefinidamente.
-
Retenção excessiva "por segurança" — Armazenar dados além do necessário aumenta riscos em vez de reduzi-los.
-
Esquecer backups e sistemas legados — Dados excluídos do sistema principal podem persistir em backups e sistemas antigos.
-
Não automatizar a exclusão — Processos manuais de exclusão são propensos a falhas e atrasos.
-
Tratar todos os dados com o mesmo prazo — Diferentes finalidades exigem prazos diferentes.
Perguntas frequentes
Posso armazenar o CPF indefinidamente se o cliente ainda é ativo?
Enquanto a relação contratual estiver ativa e o CPF for necessário para a execução do contrato, a retenção tem base legal. No entanto, ao encerrar o contrato, o prazo de retenção passa a ser definido pela legislação setorial aplicável — geralmente 5 anos para setores financeiros e de consumo. Manter dados além desse prazo sem justificativa específica configura violação ao princípio da necessidade da LGPD.
Qual a diferença entre eliminar e anonimizar dados de CPF?
Eliminação apaga permanentemente o dado. Anonimização transforma o CPF em um valor que não pode ser revertido para identificar o titular — por exemplo, um hash unidirecional sem a chave. Dados genuinamente anonimizados deixam de ser dados pessoais sob a LGPD e podem ser retidos por mais tempo para fins estatísticos. A ANPD publicou orientações sobre critérios para considerar um dado efetivamente anonimizado.
Como tratar CPFs em backups e snapshots de banco de dados?
Backups são um ponto crítico frequentemente esquecido nas políticas de retenção. Defina um ciclo de vida para os backups alinhado à política de retenção dos dados: se os dados de CPF devem ser excluídos após 5 anos, os backups que contêm esses dados também devem ser eliminados nesse prazo. Considere técnicas de crypto-shredding — destruir a chave de criptografia que protege os dados no backup, tornando-os inacessíveis sem apagar fisicamente o arquivo.
O que incluir em uma política de retenção de dados de CPF para atender à ANPD?
A política deve conter: (1) lista de finalidades de uso do CPF com base legal para cada uma, (2) prazo de retenção por finalidade com referência à legislação aplicável, (3) mecanismo de exclusão ou anonimização ao final do prazo, (4) responsável pelo processo de exclusão, (5) procedimento para atender solicitações de titulares, e (6) cronograma de revisão anual da política. Documente tudo e mantenha registros de que a exclusão foi executada.
Conclusão
A retenção de dados de CPF deve ser definida com base na finalidade do tratamento e nas obrigações legais aplicáveis. Não existe um prazo único para todos os casos, e a ausência de uma política estruturada pode resultar em sanções da ANPD e em riscos desnecessários para a empresa.
Cadastre-se em cpfhub.io — 50 consultas mensais gratuitas, sem cartão de crédito — e valide CPFs com uma API que não armazena os dados consultados além do necessário para a operação, simplificando sua conformidade com a LGPD.
CPFHub.io
Pronto para integrar a API?
50 consultas gratuitas para testar agora. Sem cartão de crédito. Acesso imediato à documentação.
Sobre a redação
Redação CPFHub.io
Time editorial especializado em APIs de CPF, identidade digital e compliance no mercado brasileiro. Produzimos guias técnicos, análises regulatórias e tutoriais sobre LGPD e KYC para desenvolvedores e líderes de produto.



