Exigências do Tribunal Superior Eleitoral para validação de CPF em doações eleitorais

Conheça as exigências do TSE para validação de CPF em doações eleitorais e como plataformas de financiamento podem garantir conformidade.

Redação CPFHub.io
Redação CPFHub.io
··9 min de leitura
Exigências do Tribunal Superior Eleitoral para validação de CPF em doações eleitorais

O TSE exige que todas as doações eleitorais sejam vinculadas ao CPF do doador e que o CPF seja válido e regular na Receita Federal: plataformas de arrecadação de campanhas devem validar o CPF do doador via API antes de processar qualquer contribuição, prevenindo doações com CPFs falsos, duplicados ou de pessoas jurídicas disfarçadas. O descumprimento pode levar à rejeição da prestação de contas e até à cassação do mandato do candidato.

Introdução

O financiamento de campanhas eleitorais no Brasil é regulado por normas rigorosas da legislação eleitoral e pelas resoluções do Tribunal Superior Eleitoral (TSE). Desde a proibição de doações de empresas em 2015, as doações de pessoas físicas tornaram-se a principal fonte de financiamento privado de campanhas, e o CPF do doador é o elemento central de identificação e rastreabilidade dessas contribuições.

O TSE exige que toda doação eleitoral seja identificada pelo CPF do doador, com verificação de que o documento é válido, pertence a uma pessoa real e que o doador respeita os limites legais de contribuição. Para plataformas de financiamento coletivo eleitoral (vaquinhas eleitorais) e para as próprias campanhas que recebem doações online, a validação automatizada de CPF é obrigatória.


Legislação eleitoral aplicável

Lei das Eleições (Lei 9.504/1997)

A legislação eleitoral estabelece regras claras sobre doações:

  • Apenas pessoas físicas podem doar para campanhas eleitorais.
  • O limite de doação é de 10% dos rendimentos brutos do ano anterior.
  • Toda doação deve ser identificada com nome completo, CPF e valor.
  • Doações anônimas são proibidas.
  • Os dados de doadores devem ser prestados ao TSE para publicação.

Resoluções do TSE

O TSE complementa a legislação com resoluções específicas para cada ciclo eleitoral, detalhando:

  • Procedimentos para recebimento de doações online.
  • Requisitos técnicos para plataformas de financiamento coletivo.
  • Formatos de prestação de contas com identificação por CPF.
  • Prazos e obrigações de publicidade das doações recebidas.

Exigências específicas de validação de CPF

Identificação obrigatória

Cada doação, independentemente do valor, deve estar vinculada a um CPF válido e verificado. A campanha é responsável por garantir que o CPF informado pelo doador é legítimo.

Verificação de titularidade

O nome vinculado ao CPF deve corresponder ao nome informado pelo doador. Divergências podem indicar uso de CPF de terceiros — prática ilegal que configura doação oculta.

Limite de doação

O limite de 10% dos rendimentos brutos exige controle por CPF. A campanha deve manter registro de todas as doações por CPF para garantir que o limite não seja ultrapassado. Embora a API de CPF não forneça dados de renda, o CPF validado é o identificador que permite o controle.

Vedação a menores

Menores de 16 anos não possuem título de eleitor e não podem realizar doações eleitorais. A data de nascimento retornada pela API permite verificar automaticamente a idade do doador.


Implementação prática

Exemplo com cURL

curl -X GET "https://api.cpfhub.io/cpf/77766655544" \
    -H "x-api-key: SUA_API_KEY" \
    -H "Accept: application/json" \
    --timeout 10

Exemplo em Python para plataforma de doação eleitoral

import requests
import os
from datetime import datetime, date
from decimal import Decimal

class DoacaoEleitoralValidator:
    """
    Valida doações eleitorais em conformidade com as exigências
    do Tribunal Superior Eleitoral.
    """

    API_URL = "https://api.cpfhub.io/cpf"
    IDADE_MINIMA_DOACAO = 16

    def __init__(self):
    self.api_key = os.environ.get("CPFHUB_API_KEY")
    self.doacoes_por_cpf = {} # CPF -> total doado

    def validar_cpf(self, cpf):
    headers = {
    "x-api-key": self.api_key,
    "Accept": "application/json",
    }
    try:
    response = requests.get(
    f"{self.API_URL}/{cpf}",
    headers=headers,
    timeout=10,
    )
    response.raise_for_status()
    return response.json()
    except requests.exceptions.Timeout:
    return {"error": "timeout"}
    except requests.exceptions.RequestException as e:
    return {"error": str(e)}

    def calcular_idade(self, data_nascimento_str):
    data_nasc = datetime.strptime(data_nascimento_str, "%Y-%m-%d").date()
    hoje = date.today()
    idade = hoje.year - data_nasc.year
    if (hoje.month, hoje.day) < (data_nasc.month, data_nasc.day):
    idade -= 1
    return idade

    def validar_doacao(self, cpf, nome_doador, valor_doacao):
    """
    Valida uma doação eleitoral segundo as regras do TSE.
    """
    resultado = {
    "cpf": cpf,
    "valor": float(valor_doacao),
    "timestamp": datetime.utcnow().isoformat(),
    "verificacoes": [],
    }

    # 1. Validar CPF via API
    dados_cpf = self.validar_cpf(cpf)

    if "error" in dados_cpf:
    resultado["aprovada"] = False
    resultado["motivo"] = "Erro na verificação do CPF"
    resultado["verificacoes"].append({
    "item": "cpf_valido",
    "resultado": False,
    })
    return resultado

    if not dados_cpf.get("success"):
    resultado["aprovada"] = False
    resultado["motivo"] = "CPF não encontrado — doação não pode ser aceita"
    resultado["verificacoes"].append({
    "item": "cpf_valido",
    "resultado": False,
    })
    return resultado

    dados = dados_cpf["data"]
    resultado["verificacoes"].append({
    "item": "cpf_valido",
    "resultado": True,
    })

    # 2. Verificar nome
    nome_api = dados["nameUpper"]
    nome_input = nome_doador.upper().strip()
    nome_confere = nome_api == nome_input

    resultado["verificacoes"].append({
    "item": "nome_confere",
    "resultado": nome_confere,
    "detalhe": f"API: {nome_api}" if not nome_confere else None,
    })

    if not nome_confere:
    resultado["aprovada"] = False
    resultado["motivo"] = (
    "Nome divergente — possível doação oculta (vedada pelo TSE)"
    )
    return resultado

    # 3. Verificar idade mínima
    idade = self.calcular_idade(dados["birthDate"])
    idade_ok = idade >= self.IDADE_MINIMA_DOACAO

    resultado["verificacoes"].append({
    "item": "idade_minima",
    "resultado": idade_ok,
    "idade": idade,
    })

    if not idade_ok:
    resultado["aprovada"] = False
    resultado["motivo"] = "Doador menor de 16 anos — doação vedada"
    return resultado

    # 4. Verificar acúmulo de doações
    total_anterior = self.doacoes_por_cpf.get(cpf, Decimal("0"))
    novo_total = total_anterior + Decimal(str(valor_doacao))

    resultado["verificacoes"].append({
    "item": "acumulo_doacoes",
    "total_anterior": float(total_anterior),
    "novo_total": float(novo_total),
    })

    # 5. Aprovar e registrar
    self.doacoes_por_cpf[cpf] = novo_total

    resultado["aprovada"] = True
    resultado["motivo"] = "Doação aprovada"
    resultado["doador"] = {
    "cpf": dados["cpf"],
    "nome": dados["name"],
    "idade": idade,
    "total_doado_campanha": float(novo_total),
    }

    return resultado

    def gerar_prestacao_contas(self):
    """
    Gera relatório no formato exigido pelo TSE.
    """
    registros = []
    for cpf, total in self.doacoes_por_cpf.items():
    dados_cpf = self.validar_cpf(cpf)
    if dados_cpf.get("success"):
    registros.append({
    "cpf_doador": dados_cpf["data"]["cpf"],
    "nome_doador": dados_cpf["data"]["name"],
    "valor_total": float(total),
    })
    return {
    "data_geracao": datetime.utcnow().isoformat(),
    "total_doadores": len(registros),
    "valor_total": sum(r["valor_total"] for r in registros),
    "doadores": registros,
    }

# Uso
validator = DoacaoEleitoralValidator()

# Processar doação
resultado = validator.validar_doacao(
    cpf="77766655544",
    nome_doador="Sandra Maria Rocha",
    valor_doacao=500.00,
)

if resultado["aprovada"]:
    print(f"Doação aprovada: R$ {resultado['valor']}")
    print(f"Doador: {resultado['doador']['nome']}")
    print(f"Total doado na campanha: R$ {resultado['doador']['total_doado_campanha']}")
else:
    print(f"Doação recusada: {resultado['motivo']}")
    for v in resultado["verificacoes"]:
    print(f" {v['item']}: {'OK' if v['resultado'] else 'FALHA'}")

Plataformas de financiamento coletivo eleitoral

As "vaquinhas eleitorais" — plataformas digitais que intermediam doações de múltiplos cidadãos para campanhas — possuem obrigações específicas:

Requisitos técnicos do TSE

  • Cadastro junto ao TSE como plataforma autorizada.
  • Identificação obrigatória do doador por CPF.
  • Emissão de recibo eleitoral digital para cada doação.
  • Transmissão dos dados ao sistema de prestação de contas do TSE.
  • Garantia de que cada CPF corresponde a um eleitor real.

Validação em tempo real

A validação de CPF via API permite que a plataforma verifique a identidade do doador em tempo real, antes de processar a doação. Isso evita que doações irregulares entrem no sistema e precisem ser devolvidas posteriormente — um processo burocraticamente custoso.


Transparência e publicidade

A legislação eleitoral exige que as doações recebidas sejam públicas. Os dados de CPF dos doadores (parcialmente mascarados) são publicados no site do TSE. A validação prévia garante que:

  • Os dados publicados são precisos.
  • Não há doadores fictícios inflando artificialmente o número de apoiadores.
  • O nome publicado corresponde ao real titular do CPF.

Sanções por descumprimento

O descumprimento das normas de identificação de doadores pode resultar em:

  • Rejeição da prestação de contas da campanha.
  • Devolução compulsória de doações não identificadas.
  • Multa ao candidato e ao partido.
  • Em casos graves, cassação do registro de candidatura ou do mandato.

A validação automatizada de CPF via API minimiza o risco dessas sanções ao garantir que cada doação é devidamente identificada no momento do recebimento.


Custos e viabilidade

O volume de doações por campanha varia enormemente. A CPFHub.io oferece planos adequados:

  • Gratuito (50 consultas/mês): para campanhas menores ou em fase de preparação.
  • Pro (R$ 149/mês, 1.000 consultas): para campanhas de médio porte.
  • Corporativo (sob consulta): para plataformas de financiamento coletivo que atendem múltiplas campanhas.

A API opera com 99,9% de uptime e tempo de resposta de aproximadamente 900 milissegundos, garantindo que o processo de doação seja rápido e confiável para o cidadão que deseja contribuir. Quando o limite do plano é atingido, a API não bloqueia — cobra R$0,15 por consulta adicional para manter o fluxo de doações sem interrupção.


Perguntas frequentes

Quais são as obrigações do TSE sobre CPF em doações eleitorais?

A legislação eleitoral (Lei 9.504/1997 e resoluções do TSE) determina que doações a campanhas políticas devem ser identificadas com CPF do doador, limitadas a valores legais por pessoa física e vedadas para estrangeiros, empresas e entidades sem fins lucrativos. O TSE fiscaliza a regularidade do CPF nas prestações de contas.

O que acontece se uma campanha aceitar doação com CPF inválido?

A doação pode ser classificada como irregular pelo TSE, obrigando sua devolução ao doador ou ao fundo partidário. Em casos de CPFs falsos sistemáticos, a campanha pode ser multada e os responsáveis sujeitos a sanções eleitorais. A validação de CPF no momento da doação é a proteção mais eficaz.

Plataformas digitais de arrecadação eleitoral precisam de CNPJ e compliance específico?

Sim. Plataformas que processam doações eleitorais operam em ambiente regulado pelo TSE e precisam de autorização formal. Além da validação de CPF, devem implementar controles de limite de doação por CPF, rejeição de estrangeiros e emissão de recibos eleitorais vinculados ao CPF validado.

Como a validação de CPF previne doações eleitorais ilegais via laranja?

A API retorna o nome vinculado ao CPF. Se o nome do doador declarado divergir do nome oficial, a doação pode ser de um "laranja" — alguém que doa em nome de outro para contornar limites. A consistência entre CPF, nome e valor da doação é o sinal básico de legalidade que a validação via API fornece.


Conclusão

As exigências do TSE para identificação de doadores eleitorais por CPF são rigorosas e essenciais para a transparência do processo democrático. Campanhas e plataformas de financiamento coletivo que implementam validação automatizada de CPF garantem conformidade legal, protegem-se contra sanções e contribuem para a integridade do sistema eleitoral brasileiro. A API da CPFHub.io oferece a validação em tempo real necessária para atender esses requisitos, com disponibilidade garantida durante períodos eleitorais de alta demanda.

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

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