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

**Publicado:** 25/02/2026
**Autor:** Redação CPFHub.io
**URL:** https://cpfhub.io/blog/normas-anp-validacao-cpf-programas-fidelidade-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](https://www.gov.br/anp/pt-br).

---

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

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

Resposta:

```json
{
 "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

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

### Leia também

- [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)
- [API de CPF grátis para desenvolvedores: como começar em 5 minutos](https://cpfhub.io/blog/api-cpf-gratis-desenvolvedores-comecar-5-minutos)
- [Fraude de novo cadastro: como detectar CPFs que já foram banidos](https://cpfhub.io/blog/fraude-de-novo-cadastro-como-detectar-cpfs-banidos)
- [Como integrar API de CPF com Django e Python](https://cpfhub.io/blog/como-integrar-api-cpf-django-python)

---

## 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](https://www.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.

