Normas da ANP para validação de CPF em programas de fidelidade de postos

Descubra como a ANP regula programas de fidelidade de postos de combustível e exige validação de CPF dos participantes.

Redação CPFHub.io
Redação CPFHub.io
··9 min de leitura
Normas da ANP para validação de CPF em programas de fidelidade de postos

Programas de fidelidade de postos de combustível precisam validar o CPF do participante em três momentos críticos: cadastro, acúmulo de pontos vinculado à nota fiscal e resgate de benefícios. A ANP não regula diretamente esses programas, mas suas normas sobre emissão de NFC-e e conformidade fiscal — somadas à LGPD — criam um ambiente regulatório que torna a validação do CPF obrigatória na prática.

Introdução

A Agência Nacional do Petróleo, Gás Natural e Biocombustíveis (ANP) regula o setor de distribuição e revenda de combustíveis no Brasil, um mercado que movimenta centenas de bilhões de reais anualmente. Os programas de fidelidade oferecidos por postos de combustível e distribuidoras têm crescido significativamente, e a ANP — em conjunto com órgãos de defesa do consumidor — estabelece normas que impactam diretamente a forma como esses programas identificam e cadastram seus participantes. A validação do CPF é uma exigência central nesse contexto. Mais informações sobre as normas aplicáveis ao setor podem ser consultadas diretamente no portal da ANP.


O mercado de revenda de combustíveis e os programas de fidelidade

O Brasil conta com milhares de postos de combustível distribuídos por todo o território nacional. As grandes distribuidoras — como Ipiranga, Shell, BR Distribuidora (Vibra) e Raízen — operam programas de fidelidade que premiam os consumidores com pontos, descontos e benefícios exclusivos.

Principais programas

  • Km de Vantagens (Ipiranga) — um dos maiores programas de fidelidade do Brasil
  • Shell Box — programa digital da Shell com descontos e cashback
  • Premmia (Vibra) — programa de pontos da BR Distribuidora
  • Programas independentes — muitos postos bandeira branca e redes regionais operam seus próprios programas

O papel da ANP

A ANP não regula diretamente os programas de fidelidade, mas suas normas sobre a revenda de combustíveis, emissão de notas fiscais e proteção ao consumidor impactam indiretamente esses programas. A exigência de CPF na nota fiscal é um ponto de convergência entre a regulamentação fiscal e os programas de fidelidade.


Exigências de CPF nos programas de fidelidade

A validação do CPF é exigida em diversos momentos do ciclo de vida de um programa de fidelidade de combustíveis.

Cadastro do participante

O momento do cadastro é a primeira oportunidade de validação. O CPF é utilizado como identificador único do participante, e sua validação garante que não haverá duplicidade de cadastros ou registro de participantes fictícios.

Acúmulo de pontos vinculado ao CPF na nota

A Lei n. 12.741/2012 e a legislação estadual exigem a inclusão do CPF nas notas fiscais de consumo. Os programas de fidelidade frequentemente vinculam o acúmulo de pontos à informação do CPF na nota fiscal, o que torna a validação do número essencial para o correto funcionamento do programa.

Resgate de benefícios

No resgate de pontos, descontos ou prêmios, o programa deve verificar a identidade do participante por CPF para evitar fraudes e garantir que o benefício seja entregue ao titular legítimo.

Transferência de pontos

Quando o programa permite a transferência de pontos entre participantes, a validação do CPF de ambas as partes é necessária para garantir a legitimidade da operação.


Regulamentação fiscal e a exigência de CPF na nota

A exigência de inclusão do CPF na nota fiscal de combustíveis tem implicações regulatórias importantes.

Nota fiscal do consumidor eletrônica (NFC-e)

A maioria dos estados brasileiros exige a emissão de NFC-e nos postos de combustível. A inclusão do CPF do consumidor é obrigatória em muitos estados e incentivada em outros por meio de programas como Nota Fiscal Gaúcha, Nota Fiscal Paulista e similares.

Compliance fiscal

A ANP fiscaliza os postos de combustível e verifica a regularidade das notas fiscais emitidas. A inclusão de CPFs inválidos nas notas pode gerar autuações fiscais e penalidades.

Proteção de dados

Com a LGPD, a coleta do CPF para fins de fidelização deve ser realizada com o consentimento do consumidor e para finalidades legítimas. A validação do CPF é uma medida de proteção tanto para o posto quanto para o consumidor.


Automatizando a validação com a API CPFHub.io

Distribuidoras e redes de postos que operam programas de fidelidade com milhões de participantes precisam de validação automatizada em larga escala.

Consulta via cURL

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

Resposta:

{
    "success": true,
    "data": {
    "cpf": "15915915900",
    "name": "Bruno Oliveira Santos",
    "nameUpper": "BRUNO OLIVEIRA SANTOS",
    "gender": "M",
    "birthDate": "1993-12-08",
    "day": "08",
    "month": "12",
    "year": "1993"
    }
}

Sistema de fidelidade com validação de CPF em Python

import requests
from typing import Dict, Optional
from datetime import datetime

class ProgramaFidelidade:
    """
    Sistema de validacao de CPF para programas de fidelidade
    de postos de combustivel, conforme normas da ANP e LGPD.
    """

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

    def __init__(self, api_key: str):
    self.api_key = api_key
    self.headers = {
    "x-api-key": api_key,
    "Accept": "application/json"
    }

    def cadastrar_participante(
    self,
    cpf: str,
    nome: str,
    consentimento_lgpd: bool = False
    ) -> Dict:
    """
    Cadastra participante no programa de fidelidade
    apos validacao de CPF e consentimento LGPD.
    """
    if not consentimento_lgpd:
    return {
    "cadastrado": False,
    "motivo": "Consentimento LGPD nao fornecido"
    }

    cpf_limpo = cpf.replace(".", "").replace("-", "")

    try:
    response = requests.get(
    f"{self.API_URL}/{cpf_limpo}",
    headers=self.headers,
    timeout=30
    )
    response.raise_for_status()
    dados = response.json()

    if not dados.get("success"):
    return {
    "cadastrado": False,
    "motivo": "CPF nao localizado na Receita Federal"
    }

    info = dados["data"]
    nome_confere = nome.upper().strip() == info["nameUpper"]

    if not nome_confere:
    return {
    "cadastrado": False,
    "motivo": "Nome nao confere com o cadastro do CPF",
    "nome_cadastro": info["name"]
    }

    return {
    "cadastrado": True,
    "participante": {
    "cpf": info["cpf"],
    "nome": info["name"],
    "data_nascimento": info["birthDate"],
    "genero": info["gender"],
    "pontos": 0,
    "data_cadastro": datetime.now().isoformat(),
    "consentimento_lgpd": True
    }
    }

    except requests.exceptions.Timeout:
    return {"cadastrado": False, "motivo": "Timeout na validacao"}
    except requests.exceptions.RequestException as e:
    return {"cadastrado": False, "motivo": str(e)}

    def registrar_abastecimento(
    self,
    cpf: str,
    valor: float,
    litros: float,
    combustivel: str
    ) -> Dict:
    """
    Registra abastecimento e acumula pontos para o CPF.
    Valida CPF antes de creditar pontos.
    """
    cpf_limpo = cpf.replace(".", "").replace("-", "")
    pontos = int(valor) # 1 ponto por real

    try:
    response = requests.get(
    f"{self.API_URL}/{cpf_limpo}",
    headers=self.headers,
    timeout=30
    )
    response.raise_for_status()
    dados = response.json()

    if not dados.get("success"):
    return {
    "pontos_creditados": False,
    "motivo": "CPF nao localizado"
    }

    return {
    "pontos_creditados": True,
    "cpf": cpf_limpo,
    "nome": dados["data"]["name"],
    "combustivel": combustivel,
    "litros": litros,
    "valor": valor,
    "pontos_ganhos": pontos,
    "data": datetime.now().isoformat()
    }

    except requests.exceptions.Timeout:
    return {"pontos_creditados": False, "motivo": "Timeout"}
    except requests.exceptions.RequestException as e:
    return {"pontos_creditados": False, "motivo": str(e)}

# Exemplo: cadastrar participante e registrar abastecimento
programa = ProgramaFidelidade(api_key="SUA_API_KEY")

# Cadastro
cadastro = programa.cadastrar_participante(
    cpf="159.159.159-00",
    nome="Bruno Oliveira Santos",
    consentimento_lgpd=True
)

if cadastro["cadastrado"]:
    print(f"Participante cadastrado: {cadastro['participante']['nome']}")

    # Registrar abastecimento
    abastecimento = programa.registrar_abastecimento(
    cpf="15915915900",
    valor=250.00,
    litros=42.37,
    combustivel="Gasolina Aditivada"
    )

    if abastecimento["pontos_creditados"]:
    print(f"Pontos creditados: {abastecimento['pontos_ganhos']}")

Boas práticas para programas de fidelidade de postos

Consentimento LGPD

Sempre obtenha o consentimento explícito do consumidor antes de coletar e processar seu CPF para fins de fidelização. A base legal mais adequada é o consentimento do titular, conforme art. 7o, I da LGPD.

Validação no primeiro contato

Valide o CPF no momento do cadastro para evitar o acúmulo de pontos em contas vinculadas a CPFs inválidos ou de terceiros.

Prevenção a fraudes

Implemente controles antifraude que identifiquem padrões suspeitos, como acúmulo excessivo de pontos em um único CPF ou abastecimentos incompatíveis com o uso normal de um veículo.

Experiência do consumidor

A validação deve ser rápida e transparente, sem impactar negativamente a experiência do consumidor na bomba. Com a API do CPFHub.io respondendo em ~900ms, é possível validar o CPF em tempo real durante o processo de abastecimento, antes mesmo de o consumidor sair do posto.


Perguntas frequentes

A ANP exige diretamente a validação de CPF nos programas de fidelidade de postos?

A ANP não regula programas de fidelidade diretamente, mas suas normas sobre emissão de NFC-e e conformidade fiscal criam a obrigação indireta. Como o acúmulo de pontos é vinculado ao CPF na nota fiscal, qualquer CPF inválido registrado gera inconsistência fiscal sujeita a autuação. A validação é, na prática, obrigatória para operar em conformidade.

Como o sistema deve tratar um CPF válido cujo nome não confere com o informado pelo participante?

A API CPFHub.io retorna o nome registrado na Receita Federal. Se o nome não bater com o informado, o sistema deve rejeitar o cadastro ou acúmulo de pontos e solicitar que o participante use o nome exato do documento. Isso previne uso de CPF de terceiros — fraude comum em programas de pontos.

Qual é a latência da API durante o processo de abastecimento?

A API CPFHub.io responde em ~900ms, o que é compatível com o fluxo de validação no caixa ou no totem de autoatendimento do posto. O consumidor informa o CPF, o sistema consulta a API e credita os pontos em menos de 2 segundos — sem impacto perceptível na experiência.

O que acontece se o limite de consultas do plano gratuito for atingido durante uma campanha?

A API CPFHub.io não bloqueia ao atingir o limite do plano gratuito (50 consultas/mês). Cada consulta adicional é cobrada a R$0,15 — o programa de fidelidade continua funcionando normalmente. Para redes com volume expressivo de participantes, o plano Pro oferece 1.000 consultas mensais por R$149.


Conclusão

Os programas de fidelidade de postos de combustível operam na interseção entre a regulamentação da ANP, a legislação fiscal e a LGPD, tornando a validação de CPF uma exigência multifacetada. A automação desse processo é essencial para programas que atendem milhões de consumidores e processam bilhões de transações anualmente.

Com a API CPFHub.io, distribuidoras e redes de postos podem validar o CPF em tempo real durante o cadastro e o acúmulo de pontos — sem impacto na experiência do consumidor. A integração em Python ou qualquer outra linguagem leva poucas horas, e o retorno é imediato: menos fraudes, mais conformidade fiscal e um programa de fidelidade mais confiável.

Crie sua conta gratuita em cpfhub.io e faça até 50 consultas por mês sem cartão de crédito. Para programas em escala, o excedente custa apenas R$0,15 por consulta — sem bloqueios, sem interrupções.

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