# LGPD e marketing direto: quando é legal usar CPF para campanhas personalizadas

> Descubra quando a LGPD permite o uso de CPF para campanhas de marketing direto personalizado e como implementar consentimento adequado.

**Publicado:** 09/09/2025
**Autor:** Redação CPFHub.io
**URL:** https://cpfhub.io/blog/lgpd-marketing-direto-cpf-campanhas-personalizadas

---


A LGPD permite o uso de CPF em campanhas de marketing direto desde que exista base legal adequada — consentimento explícito ou legítimo interesse documentado — e que o titular tenha mecanismo de opt-out simples. A CPFHub.io viabiliza o enriquecimento responsável de perfis: com uma chamada autenticada ao endpoint `https://api.cpfhub.io/cpf/{CPF}`, equipes de marketing obtêm primeiro nome, gênero e faixa etária em ~900ms para segmentação precisa, sem armazenar dados além do necessário.

## Introdução

O marketing direto personalizado é uma ferramenta poderosa para engajamento de clientes, mas quando envolve o uso de dados de CPF, os limites da LGPD devem ser rigorosamente respeitados. O CPF é um dado pessoal que, isoladamente ou combinado com outras informações, pode ser utilizado para perfilamento -- prática que a legislação brasileira regula com atenção especial.

---

## Bases legais para uso de CPF em marketing

A LGPD estabelece dez bases legais para o tratamento de dados pessoais (artigo 7). Para marketing direto, as mais relevantes são:

### Consentimento (art. 7, I)

O titular autoriza expressamente o uso de seus dados para receber comunicações de marketing. O consentimento deve ser:

- **Livre**: sem coerção ou condicionamento a serviços.
- **Informado**: o titular deve saber exatamente para que seus dados serão usados.
- **Inequívoco**: manifestação clara de concordância.
- **Específico**: para a finalidade de marketing, separadamente de outras finalidades.

### Legítimo interesse (art. 7, IX)

O controlador pode tratar dados para atender a seus interesses legítimos, desde que não prevaleçam os direitos e liberdades fundamentais do titular. Para marketing, isso exige:

- Teste de proporcionalidade (LIA -- Legitimate Interest Assessment).
- Transparência sobre o uso dos dados.
- Mecanismo de opt-out simples e eficaz.

---

## Quando o uso de CPF para marketing é proibido

- **Sem base legal**: utilizar CPF para marketing sem consentimento ou legítimo interesse documentado.
- **Dados obtidos de forma irregular**: comprar listas de CPF de terceiros sem garantia de consentimento.
- **Finalidade incompatível**: usar CPF coletado para verificação cadastral diretamente para marketing, sem nova autorização.
- **Sem opt-out**: enviar comunicações sem oferecer opção de descadastramento.
- **Menores de idade**: tratamento de dados de menores exige consentimento específico dos pais ou responsáveis.

---

## Implementação de consentimento para marketing

### Sistema de gerenciamento de consentimento

```python
import json
import requests
from datetime import datetime, timezone
from typing import Optional

class GerenciadorConsentimentoMarketing:
 """Gerencia consentimentos de marketing vinculados ao CPF."""

 def __init__(self):
 self.consentimentos = {}

 def registrar_consentimento(
 self,
 cpf: str,
 canal: str,
 finalidade: str,
 ip_origem: str
 ) -> dict:
 """Registra consentimento do titular para marketing."""

 registro = {
 "cpf_hash": self._hash_cpf(cpf),
 "canal": canal,
 "finalidade": finalidade,
 "data_consentimento": datetime.now(timezone.utc).isoformat(),
 "ip_origem": ip_origem,
 "status": "ativo",
 "versao_termos": "v2.3",
 "texto_aceito": (
 "Autorizo o uso do meu CPF e dados cadastrais "
 "para recebimento de ofertas personalizadas via "
 f"{canal}."
 )
 }

 chave = f"{registro['cpf_hash']}:{canal}:{finalidade}"
 self.consentimentos[chave] = registro

 return registro

 def revogar_consentimento(self, cpf: str, canal: str, finalidade: str) -> bool:
 """Revoga consentimento do titular (opt-out)."""

 chave = f"{self._hash_cpf(cpf)}:{canal}:{finalidade}"
 if chave in self.consentimentos:
 self.consentimentos[chave]["status"] = "revogado"
 self.consentimentos[chave]["data_revogacao"] = (
 datetime.now(timezone.utc).isoformat()
 )
 return True
 return False

 def verificar_consentimento(
 self, cpf: str, canal: str, finalidade: str
 ) -> bool:
 """Verifica se existe consentimento ativo para o titular."""

 chave = f"{self._hash_cpf(cpf)}:{canal}:{finalidade}"
 consentimento = self.consentimentos.get(chave)
 return consentimento is not None and consentimento["status"] == "ativo"

 def _hash_cpf(self, cpf: str) -> str:
 import hashlib
 return hashlib.sha256(cpf.encode()).hexdigest()[:16]

# Exemplo de uso
gerenciador = GerenciadorConsentimentoMarketing()

# Registrar consentimento
consentimento = gerenciador.registrar_consentimento(
 cpf="12345678901",
 canal="email",
 finalidade="ofertas_personalizadas",
 ip_origem="192.168.1.100"
)
print(json.dumps(consentimento, indent=2, ensure_ascii=False))

# Verificar antes de enviar campanha
pode_enviar = gerenciador.verificar_consentimento(
 cpf="12345678901",
 canal="email",
 finalidade="ofertas_personalizadas"
)
print(f"Pode enviar marketing: {pode_enviar}")
```

---

## Enriquecimento responsável de perfis

Quando o consentimento permite, a API do [**CPFHub.io**](https://www.cpfhub.io/) pode enriquecer perfis de marketing com nome, gênero e faixa etária — retornados em ~900ms — permitindo segmentação personalizada sem expor dados sensíveis além do necessário.

```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_perfil_marketing(
 cpf: str, api_key: str, gerenciador: GerenciadorConsentimentoMarketing
) -> Optional[dict]:
 """Enriquece perfil de marketing somente com consentimento ativo."""

 # Verificar consentimento antes de qualquer consulta
 if not gerenciador.verificar_consentimento(
 cpf, "email", "ofertas_personalizadas"
 ):
 print("[BLOQUEADO] Sem consentimento ativo para marketing")
 return None

 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 apenas dados necessários para segmentação
 perfil = {
 "primeiro_nome": dados.get("name", "").split()[0],
 "genero": dados.get("gender"),
 "faixa_etaria": _calcular_faixa(dados.get("year"))
 }

 # Registrar o uso para auditoria
 _registrar_uso_marketing(cpf, perfil)

 return perfil

 except requests.exceptions.Timeout:
 print("[ERROR] Timeout na consulta")

 return None

def _calcular_faixa(ano: str) -> str:
 if not ano:
 return "desconhecida"
 from datetime import date
 idade = date.today().year - int(ano)
 if idade < 30: return "jovem"
 elif idade < 50: return "adulto"
 return "senior"

def _registrar_uso_marketing(cpf: str, perfil: dict):
 import hashlib
 log = {
 "timestamp": datetime.now(timezone.utc).isoformat(),
 "cpf_hash": hashlib.sha256(cpf.encode()).hexdigest()[:16],
 "dados_utilizados": list(perfil.keys()),
 "finalidade": "segmentacao_marketing"
 }
 with open("marketing_audit.log", "a") as f:
 f.write(json.dumps(log) + "\n")
```

---

## Opt-out e direito de oposição

A LGPD garante ao titular o direito de se opor ao tratamento de seus dados para marketing (artigo 18, IV). Implemente:

- **Link de descadastro em todo e-mail**: obrigatório por lei.
- **Processamento imediato**: o opt-out deve ser efetivado em até 24 horas.
- **Confirmação**: envie uma última comunicação confirmando o descadastro.
- **Lista de supressão**: mantenha uma lista de CPFs que revogaram consentimento para evitar recontato.

---

## Relatório de Impacto para marketing com CPF

Antes de iniciar campanhas que utilizem dados de CPF para personalização, conduza um RIPD que avalie:

- **Necessidade**: é realmente necessário usar o CPF, ou outro identificador bastaria?
- **Proporcionalidade**: os benefícios para o titular justificam o tratamento?
- **Riscos**: quais são os riscos de perfilamento e discriminação?
- **Medidas mitigatórias**: quais controles técnicos serão implementados?
- **Transparência**: como o titular será informado sobre o uso de seus dados?

---

## Boas práticas para marketing em conformidade

1. **Obtenha consentimento granular**: separe as autorizações por canal (e-mail, SMS, push) e finalidade (ofertas, pesquisas, parceiros).
2. **Documente tudo**: mantenha registros completos de consentimentos, incluindo data, hora, IP e versão dos termos.
3. **Segmente sem identificar**: sempre que possível, utilize dados agregados ou anonimizados para segmentação.
4. **Respeite a frequência**: excesso de comunicações pode configurar abuso, independentemente do consentimento.
5. **Revise periodicamente**: reavalie a base legal e os consentimentos pelo menos anualmente.
6. **Treine a equipe de marketing**: garanta que todos compreendam as limitações da LGPD.

---

## Perguntas frequentes

### O que é necessário para implementar validação de CPF neste contexto?
A validação de CPF exige uma chamada à API com o número do documento e a chave de autenticação. A CPFHub.io retorna o status do CPF, nome do titular e data de nascimento em ~900ms, permitindo a verificação em tempo real durante o cadastro ou transação.

### A API CPFHub.io funciona para todos os volumes de consulta?
Sim. O plano gratuito oferece 50 consultas por mês sem cartão de crédito — ideal para testes e projetos pequenos. Para volumes 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.

### Como garantir conformidade com a LGPD ao usar uma API de CPF?
Use o CPF apenas para a finalidade declarada ao titular, armazene apenas o necessário (não guarde o CPF cru se um token bastar), implemente controle de acesso aos logs de consulta e documente a base legal para o tratamento. A [ANPD](https://www.gov.br/anpd) orienta que dados de identificação devem ser tratados com o princípio da necessidade.

### Quanto tempo leva para integrar a API CPFHub.io?
A integração básica leva menos de 30 minutos: crie uma conta em cpfhub.io, gere a API key no painel e faça uma chamada GET para `https://api.cpfhub.io/cpf/{CPF}` com o header `x-api-key`. A documentação inclui exemplos em Python, Node.js, PHP, Java e outras linguagens.

### 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)
- [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

O uso de dados de CPF para marketing direto é permitido pela LGPD, mas exige cuidado rigoroso com base legal, consentimento e transparência. A implementação de sistemas de gerenciamento de consentimento, mecanismos de opt-out eficientes e auditorias regulares protege tanto a empresa quanto o titular. Marketing eficaz e conformidade legal não são objetivos conflitantes -- são complementares.

Para verificar dados de forma segura e integrar consentimento ao seu fluxo de marketing, utilize uma API confiável e em conformidade. Cadastre-se em [cpfhub.io](https://www.cpfhub.io/) — 50 consultas mensais gratuitas, sem cartão de crédito — e comece hoje mesmo.

