LGPD e APIs de terceiros: responsabilidade do controlador vs. operador de dados de CPF

Entenda a diferença entre controlador e operador de dados de CPF ao usar APIs de terceiros e como definir responsabilidades conforme a LGPD.

Redação CPFHub.io
Redação CPFHub.io
··8 min de leitura
LGPD e APIs de terceiros: responsabilidade do controlador vs. operador de dados de CPF

Ao usar uma API de terceiros para consultar dados de CPF, sua empresa assume o papel de controlador e o provedor da API atua como operador — e a LGPD define obrigações distintas para cada um. A CPFHub.io opera como operador transparente, com contrato alinhado à legislação e controles que simplificam o cumprimento das suas responsabilidades como controlador.

Introdução

Quando uma empresa utiliza uma API de terceiros para consultar dados de CPF, surge uma questão fundamental: quem é o controlador e quem é o operador dos dados? A resposta a essa pergunta define responsabilidades legais, obrigações contratuais e o escopo de proteção exigido por cada parte. A LGPD estabelece papéis claros, mas a prática de integrações via API torna essa definição mais complexa do que parece.


Definições legais

Controlador (art. 5, VI)

Pessoa natural ou jurídica, de direito público ou privado, a quem competem as decisões referentes ao tratamento de dados pessoais. O controlador:

  • Define a finalidade do tratamento.
  • Escolhe a base legal.
  • Determina quais dados serão coletados e processados.
  • Responde perante o titular e a ANPD.

Operador (art. 5, VII)

Pessoa natural ou jurídica, de direito público ou privado, que realiza o tratamento de dados pessoais em nome do controlador. O operador:

  • Executa o tratamento conforme instruções do controlador.
  • Não define a finalidade nem a base legal.
  • Deve garantir a segurança dos dados durante o processamento.
  • Responde solidariamente em caso de tratamento irregular.

Cenários de uso de API de CPF

Cenário 1: empresa consulta API para onboarding

A empresa (controlador) utiliza a API do CPFHub.io (operador) para validar dados durante o cadastro de novos clientes.

  • Controlador: a empresa que decide consultar o CPF do cliente.
  • Operador: o CPFHub.io que executa a consulta e retorna os dados.
  • Finalidade: definida pela empresa (verificação cadastral).
  • Base legal: definida pela empresa (execução de contrato).

Cenário 2: empresa intermediária revende dados

Uma empresa de enriquecimento de dados consulta a API e redistribui os dados para seus clientes.

  • Controlador-controlador conjunto: tanto a empresa intermediária quanto seus clientes podem ser considerados controladores, dependendo de quem define a finalidade.
  • Responsabilidade ampliada: ambos respondem solidariamente.

Cenário 3: desenvolvedor integra API em plataforma SaaS

Um desenvolvedor cria uma plataforma SaaS que utiliza a API de CPF como parte de suas funcionalidades.

  • Controlador: o cliente final da plataforma SaaS que decide consultar dados de CPF.
  • Operador: a plataforma SaaS que executa a operação.
  • Sub-operador: o CPFHub.io que fornece os dados.

Obrigações de cada parte

Obrigações do controlador

import requests
import json
import logging
from datetime import datetime, timezone

logging.basicConfig(
    filename="controlador_compliance.log",
    level=logging.INFO,
    format="%(asctime)s | %(message)s"
)

class ControladorCPF:
    """Implementa obrigações do controlador ao usar APIs de CPF."""

    def __init__(self, api_key: str):
    self.api_key = api_key

    def consultar_com_compliance(
    self,
    cpf: str,
    base_legal: str,
    finalidade: str,
    consentimento_id: str = None
    ) -> dict:
    """Consulta CPF cumprindo todas as obrigações do controlador."""

    # 1. Definir e documentar finalidade
    registro = {
    "timestamp": datetime.now(timezone.utc).isoformat(),
    "papel": "controlador",
    "acao": "consulta_cpf",
    "base_legal": base_legal,
    "finalidade": finalidade,
    "consentimento_id": consentimento_id,
    "operador": "CPFHub.io"
    }

    # 2. Verificar base legal antes da consulta
    if base_legal == "consentimento" and not consentimento_id:
    registro["status"] = "bloqueado"
    registro["motivo"] = "Consentimento ausente"
    logging.warning(json.dumps(registro))
    return {"error": "Consentimento obrigatório para esta base legal"}

    # 3. Executar consulta via operador (API)
    try:
    response = requests.get(
    f"https://api.cpfhub.io/cpf/{cpf}",
    headers={
    "x-api-key": self.api_key,
    "Accept": "application/json"
    },
    timeout=30
    )

    registro["status_code"] = response.status_code
    registro["tempo_ms"] = response.elapsed.total_seconds() * 1000

    if response.status_code == 200:
    dados = response.json()

    # 4. Minimizar dados conforme finalidade
    dados_filtrados = self._filtrar_por_finalidade(
    dados.get("data", {}), finalidade
    )

    registro["campos_retornados"] = list(dados_filtrados.keys())
    registro["status"] = "sucesso"
    logging.info(json.dumps(registro))

    return {"success": True, "data": dados_filtrados}

    except requests.exceptions.Timeout:
    registro["status"] = "timeout"
    logging.error(json.dumps(registro))
    return {"error": "Timeout na consulta"}

    registro["status"] = "erro"
    logging.info(json.dumps(registro))
    return {"error": "Consulta não retornou dados"}

    def _filtrar_por_finalidade(self, dados: dict, finalidade: str) -> dict:
    """Aplica princípio da necessidade conforme finalidade."""

    filtros = {
    "validacao": ["cpf"],
    "verificacao_identidade": ["cpf", "name"],
    "analise_credito": ["cpf", "name", "birthDate"],
    "onboarding": ["cpf", "name", "birthDate", "gender"]
    }

    campos = filtros.get(finalidade, ["cpf"])
    return {k: v for k, v in dados.items() if k in campos}

# Exemplo de uso
controlador = ControladorCPF(api_key="SUA_API_KEY")

resultado = controlador.consultar_com_compliance(
    cpf="12345678901",
    base_legal="execucao_contrato",
    finalidade="verificacao_identidade"
)
print(json.dumps(resultado, indent=2, ensure_ascii=False))

Teste via cURL

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

Contrato entre controlador e operador

O contrato entre a empresa que consome a API (controlador) e o provedor da API (operador) deve conter cláusulas específicas:

Cláusulas essenciais

  1. Objeto e finalidade: descrição clara de quais dados serão processados e para qual fim.
  2. Instruções do controlador: o operador só pode tratar dados conforme instruções documentadas.
  3. Confidencialidade: todos os envolvidos devem estar sob obrigação de sigilo.
  4. Medidas de segurança: controles técnicos e administrativos implementados pelo operador.
  5. Suboperadores: autorização prévia ou geral para uso de subcontratados.
  6. Assistência ao controlador: cooperação para atender direitos do titular e obrigações legais.
  7. Notificação de incidentes: prazo e procedimento para comunicação de vazamentos.
  8. Auditoria: direito do controlador de verificar a conformidade do operador.
  9. Devolução e eliminação: destino dos dados ao término da relação.

Responsabilidade solidária

O artigo 42 da LGPD estabelece que o operador responde solidariamente pelos danos causados pelo tratamento quando descumprir as obrigações da legislação ou quando não seguir as instruções lícitas do controlador. Isso significa que ambas as partes podem ser responsabilizadas em caso de incidente.

Quando o operador se torna controlador

Se o operador (API de dados) passa a utilizar os dados de CPF para finalidades próprias -- como analytics ou venda de dados agregados -- ele deixa de ser operador e assume o papel de controlador, com todas as obrigações correspondentes.


Gestão de sub-operadores

Quando a API de dados utiliza infraestrutura de terceiros (como provedores de cloud), esses terceiros podem ser classificados como sub-operadores. O controlador deve:

  • Ser informado sobre quais sub-operadores são utilizados.
  • Ter o direito de se opor à inclusão de novos sub-operadores.
  • Exigir que os mesmos controles contratuais sejam estendidos aos sub-operadores.

Due diligence ao escolher APIs de dados de CPF

Antes de integrar uma API de dados de CPF, avalie:

  • Conformidade com a LGPD: o provedor possui política de privacidade e DPO nomeado?
  • Medidas de segurança: quais controles técnicos estão implementados (criptografia, logs, controle de acesso)?
  • Localização dos dados: onde os dados são armazenados e processados?
  • SLA de disponibilidade: qual o compromisso de uptime e tempo de resposta?
  • Transparência: o provedor divulga sua cadeia de sub-operadores?
  • Histórico: houve incidentes de segurança no passado?

Boas práticas para a relação controlador-operador

  1. Formalize contratos antes de integrar: nunca consuma uma API de dados pessoais sem contrato.
  2. Documente instruções: mantenha registro das instruções dadas ao operador.
  3. Monitore a conformidade: realize auditorias periódicas no operador.
  4. Minimize dados compartilhados: envie apenas o CPF para consulta, não dados adicionais.
  5. Registre toda operação: mantenha logs de cada consulta realizada via API.
  6. Revise periodicamente: atualize contratos e avaliações conforme mudanças regulatórias.

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 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.


Conclusão

A relação entre controlador e operador no uso de APIs de dados de CPF exige clareza contratual, documentação rigorosa e monitoramento contínuo. Compreender os papéis e responsabilidades de cada parte é fundamental para operar em conformidade com a LGPD e proteger tanto os titulares quanto a sua empresa. Ao escolher um provedor de API, priorize aqueles que já operam com transparência e altos padrões de segurança.

Cadastre-se em cpfhub.io — 50 consultas mensais gratuitas, sem cartão de crédito — e comece hoje mesmo.

CPFHub.io

Pronto para integrar a API?

50 consultas gratuitas para testar agora. Sem cartão de crédito. Acesso imediato à documentação.

Redação CPFHub.io

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.

WhatsAppFale conosco via WhatsApp