# LGPD e inteligência artificial: implicações do uso de CPF em modelos de ML

> Entenda as implicações legais e técnicas do uso de dados de CPF em modelos de machine learning sob a perspectiva da LGPD.

**Publicado:** 11/07/2025
**Autor:** Redação CPFHub.io
**URL:** https://cpfhub.io/blog/lgpd-inteligencia-artificial-cpf-modelos-ml

---


Usar CPF como feature em modelos de ML exige anonimização antes do treinamento, base legal específica e mecanismos de explicabilidade — requisitos diretos do artigo 20 da [LGPD](https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/lei/l13709.htm). Dados de CPF coletados para verificação cadastral não podem ser reutilizados em pipelines de IA sem uma nova justificativa legal, e o titular tem direito de solicitar revisão humana de qualquer decisão tomada exclusivamente por algoritmo.

## Introdução

A inteligência artificial e o machine learning estão transformando a forma como empresas processam dados, desde a análise de crédito até a detecção de fraudes. No entanto, quando modelos de ML utilizam dados de CPF -- diretamente ou como feature para enriquecimento -- surgem questões complexas de conformidade com a LGPD. O uso de identificadores pessoais em algoritmos automatizados exige transparência, justificativa legal e medidas técnicas de proteção.

---

## O que a LGPD diz sobre decisões automatizadas

O artigo 20 da LGPD garante ao titular o direito de solicitar a revisão de decisões tomadas unicamente com base em tratamento automatizado de dados pessoais. Isso inclui decisões sobre:

- Definição de perfil pessoal, profissional, de consumo ou de crédito.
- Aspectos relacionados à personalidade do titular.

### Requisitos legais para uso de CPF em ML

- **Transparência**: o titular deve ser informado de que seus dados de CPF são utilizados em processamento automatizado.
- **Explicabilidade**: a empresa deve ser capaz de explicar os critérios e a lógica do tratamento.
- **Revisão humana**: o titular pode solicitar que uma pessoa revise a decisão automatizada.
- **Base legal adequada**: o tratamento deve estar amparado por base legal específica.

---

## Riscos do uso de CPF em modelos de ML

### Viés algorítmico

Dados de CPF podem ser utilizados indiretamente para inferir informações sensíveis -- como região de origem ou faixa etária -- que podem introduzir viés discriminatório nos modelos.

### Reidentificação

Mesmo que o CPF seja anonimizado, a combinação com outros dados (como data de nascimento e gênero) pode permitir a reidentificação do titular, violando o princípio da anonimização.

### Retenção em modelos treinados

Dados de CPF utilizados no treinamento de modelos podem ficar "gravados" nos pesos do modelo, dificultando o exercício do direito de exclusão pelo titular.

### Finalidade desviada

Dados de CPF coletados para verificação cadastral não podem ser reutilizados para treinamento de modelos de ML sem uma nova base legal.

---

## Boas práticas para uso de CPF em pipelines de ML

### Anonimização antes do treinamento

```python
import hashlib
import pandas as pd
import requests
from typing import Optional

def anonimizar_cpf_para_ml(cpf: str, salt: str) -> str:
 """Anonimiza CPF para uso em datasets de treinamento."""
 return hashlib.sha256(f"{salt}{cpf}".encode()).hexdigest()[:16]

def preparar_dataset_seguro(df: pd.DataFrame, salt: str) -> pd.DataFrame:
 """Prepara dataset removendo dados identificáveis e mantendo features úteis."""

 df_seguro = df.copy()

 # Substituir CPF por hash anonimizado
 df_seguro["cpf_hash"] = df_seguro["cpf"].apply(
 lambda x: anonimizar_cpf_para_ml(x, salt)
 )

 # Remover CPF original
 df_seguro.drop(columns=["cpf", "nome"], inplace=True)

 # Manter apenas features relevantes para o modelo
 df_seguro["faixa_etaria"] = pd.cut(
 df_seguro["idade"],
 bins=[0, 25, 35, 45, 55, 65, 100],
 labels=["18-25", "26-35", "36-45", "46-55", "56-65", "65+"]
 )
 df_seguro.drop(columns=["idade", "data_nascimento"], inplace=True)

 return df_seguro

# Exemplo
dados = pd.DataFrame({
 "cpf": ["12345678901", "98765432100"],
 "nome": ["João Silva", "Maria Santos"],
 "idade": [34, 28],
 "data_nascimento": ["1991-03-15", "1997-08-22"],
 "score_credito": [720, 680]
})

dados_seguros = preparar_dataset_seguro(dados, salt="meu_salt_secreto_2025")
print(dados_seguros)
```

### Enriquecimento de dados com a API do CPFHub.io

Quando necessário enriquecer dados para treinamento, utilize a API de forma responsável:

```bash
curl -X GET "https://api.cpfhub.io/cpf/12345678901" \
 -H "x-api-key: SUA_API_KEY" \
 -H "Accept: application/json" \
 --max-time 30
```

```python
def enriquecer_e_anonimizar(cpf: str, api_key: str, salt: str) -> Optional[dict]:
 """Consulta API, extrai features e anonimiza antes de salvar."""

 try:
 response = requests.get(
 f"https://api.cpfhub.io/cpf/{cpf}",
 headers={
 "x-api-key": api_key,
 "Accept": "application/json"
 },
 timeout=30
 )

 if response.status_code == 200:
 dados = response.json()["data"]

 # Extrair features sem identificadores
 features = {
 "id_anonimo": anonimizar_cpf_para_ml(cpf, salt),
 "genero": dados.get("gender"),
 "ano_nascimento": dados.get("year"),
 "faixa_etaria": calcular_faixa_etaria(int(dados.get("year", 0)))
 }

 # Não armazenar CPF, nome ou data completa de nascimento
 return features

 except requests.exceptions.Timeout:
 print(f"[WARN] Timeout ao consultar CPF")

 return None

def calcular_faixa_etaria(ano_nascimento: int) -> str:
 from datetime import date
 idade = date.today().year - ano_nascimento
 if idade < 25: return "18-25"
 elif idade < 35: return "26-35"
 elif idade < 45: return "36-45"
 elif idade < 55: return "46-55"
 elif idade < 65: return "56-65"
 return "65+"
```

---

## Registro de tratamento para modelos de ML

Documente cada uso de dados de CPF em pipelines de ML:

```python
import json
from datetime import datetime, timezone

def registrar_uso_ml(modelo: str, dataset_id: str, cpfs_processados: int):
 """Registra o uso de dados de CPF em treinamento de modelo."""

 registro = {
 "timestamp": datetime.now(timezone.utc).isoformat(),
 "modelo": modelo,
 "dataset_id": dataset_id,
 "total_registros": cpfs_processados,
 "dados_utilizados": ["genero", "faixa_etaria"],
 "dados_excluidos": ["cpf", "nome", "data_nascimento_completa"],
 "metodo_anonimizacao": "sha256_com_salt",
 "base_legal": "legitimo_interesse",
 "ripd_referencia": "RIPD-2025-003",
 "responsavel": "equipe_ml@empresa.com",
 "revisao_proxima": "2025-10-11"
 }

 with open("ml_data_usage.log", "a") as f:
 f.write(json.dumps(registro, ensure_ascii=False) + "\n")

 return registro
```

---

## Direito de explicação e revisão

### Implementando explicabilidade

Para cumprir o artigo 20 da LGPD, implemente mecanismos que expliquem como o modelo utiliza dados derivados de CPF:

- Utilize técnicas como SHAP ou LIME para gerar explicações locais.
- Mantenha documentação atualizada sobre as features do modelo e suas fontes.
- Disponibilize um canal para que o titular solicite revisão da decisão automatizada.

### Direito de exclusão em modelos treinados

Quando um titular solicita a exclusão de seus dados, considere:

- Remover os dados do dataset de treinamento.
- Avaliar a necessidade de retreinar o modelo.
- Documentar a ação tomada e justificar se o retreinamento não for viável.

---

## Governança de dados para ML

Estabeleça uma política de governança que inclua:

- **Comitê de ética em IA**: grupo multidisciplinar que avalia o uso de dados pessoais em modelos.
- **Avaliação de impacto prévia**: todo novo modelo que utilize dados derivados de CPF deve passar por RIPD.
- **Monitoramento de viés**: avalie periodicamente se o modelo apresenta discriminação baseada em dados correlacionados ao CPF.
- **Versionamento de datasets**: mantenha histórico de quais dados foram utilizados em cada versão do modelo.
- **Catálogo de features**: documente a origem e o método de transformação de cada feature.

---

## Perguntas frequentes

### Posso usar CPF como feature direta em um modelo de ML?

Não é recomendado. O CPF como feature direta não agrega valor preditivo ao modelo e cria riscos legais sérios — especialmente o risco de reidentificação quando combinado com outras variáveis. A abordagem correta é extrair as features derivadas (gênero, faixa etária) via API e descartar o identificador antes do treinamento.

### Qual base legal usar para enriquecer datasets de ML com dados de CPF?

Depende do contexto. Legítimo interesse pode ser invocado quando o enriquecimento visa prevenção de fraudes, mas exige documentação de RIPD e balancing test. Para modelos de crédito, a base costuma ser execução de contrato ou cumprimento de obrigação legal. Consulte o DPO da empresa antes de iniciar o pipeline.

### O que acontece se um titular pedir exclusão dos dados usados em treinamento?

A empresa deve avaliar se é tecnicamente viável remover o registro do dataset sem comprometer o modelo. Se o retreinamento não for viável, a ação e sua justificativa devem ser documentadas. A [ANPD](https://www.gov.br/anpd) reconhece limitações técnicas, mas exige que a empresa demonstre esforço razoável e medidas compensatórias.

### A API CPFHub.io pode ser usada para enriquecimento de datasets sem bloquear por volume?

Sim. O plano gratuito oferece 50 consultas por mês sem cartão de crédito. Para enriquecimento de datasets maiores, o plano Pro inclui 1.000 consultas mensais por R$149. Se o limite for ultrapassado, a API não bloqueia: cobra R$0,15 por consulta adicional — permitindo processar datasets de qualquer tamanho.

### 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)
- [Vazamento de CPF: responsabilidades da empresa e como prevenir](https://cpfhub.io/blog/vazamento-de-cpf-responsabilidades-da-empresa-e-como-prevenir)
- [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)
- [IA generativa e fraudes de identidade: por que validação de CPF é mais importante que nunca](https://cpfhub.io/blog/ia-generativa-e-fraudes-de-identidade-por-que-validacao-de-cpf-e-mais-importante-que-nunca)

---

## Conclusão

O uso de dados de CPF em modelos de machine learning é tecnicamente possível e pode trazer benefícios concretos, mas exige uma abordagem responsável e em conformidade com a LGPD. Anonimização rigorosa, documentação detalhada, explicabilidade dos modelos e respeito aos direitos dos titulares são requisitos indispensáveis para operar nesse cenário.

Ao integrar fontes de dados confiáveis e em conformidade com a LGPD, como a API do [**CPFHub.io**](https://www.cpfhub.io/), sua equipe de dados pode enriquecer features de forma responsável sem comprometer a privacidade dos titulares.

Cadastre-se em [cpfhub.io](https://www.cpfhub.io/) — 50 consultas mensais gratuitas, sem cartão de crédito.

