# Consulta de CPF grátis para ONGs: como validar dados de doadores

> ONGs podem consultar CPF gratuitamente para validar dados de doadores, garantir transparência e emitir recibos corretos.

**Publicado:** 04/09/2026
**Autor:** Redação CPFHub.io
**URL:** https://cpfhub.io/blog/consulta-cpf-gratis-ongs-validar-dados-doadores

---


ONGs podem validar o CPF de doadores gratuitamente usando a API da [**CPFHub.io**](https://www.cpfhub.io/): basta cadastrar-se, gerar uma chave e fazer uma chamada GET com o número do documento. O plano Gratuito oferece 50 consultas por mês sem cartão de crédito — suficiente para a maioria das organizações de pequeno e médio porte. A validação confirma o nome do titular em ~900ms, garantindo recibos com dados corretos e proteção contra doações fraudulentas.

---

## Por que ONGs precisam validar CPF de doadores

### Emissão de recibos para dedução no IR

Doações para ONGs com certificação de utilidade pública podem ser deduzidas no Imposto de Renda. Para isso, o recibo precisa conter o nome e CPF corretos do doador. Um recibo com dados errados não tem validade fiscal.

### Prevenção à lavagem de dinheiro

ONGs podem ser usadas como fachada para lavagem de dinheiro. Doações de valores significativos feitas com CPFs falsos ou de terceiros são um sinal de alerta. A validação do CPF é uma medida básica de prevenção.

### Prestação de contas

Organizações que recebem recursos públicos ou de fundações precisam prestar contas detalhadas sobre seus doadores. Dados incorretos comprometem a credibilidade da prestação de contas.

### Transparência institucional

Manter um cadastro de doadores com dados validados demonstra seriedade e profissionalismo na gestão da organização.

---

## Como funciona na prática

### Consulta rápida via cURL

```bash
curl -X GET "https://api.cpfhub.io/cpf/12345678900" \
 -H "x-api-key: SUA_CHAVE_GRATUITA" \
 -H "Accept: application/json" \
 --connect-timeout 10 \
 --max-time 30
```

Resposta:

```json
{
 "success": true,
 "data": {
 "cpf": "12345678900",
 "name": "Juliana Mendes Barbosa",
 "nameUpper": "JULIANA MENDES BARBOSA",
 "gender": "F",
 "birthDate": "1978-12-03",
 "day": "03",
 "month": "12",
 "year": "1978"
 }
}
```

O nome "JULIANA MENDES BARBOSA" vai para o recibo de doação com a certeza de que está correto.

---

## Implementação para o sistema de doações

### Validação no momento da doação

```python
import requests
import logging
from typing import Dict, Optional

logger = logging.getLogger(__name__)

API_KEY = "SUA_CHAVE_GRATUITA"
TIMEOUT = 30

def validar_doador(cpf: str, nome_informado: str) -> Dict:
 """
 Valida CPF do doador e compara com o nome informado.

 Returns:
 Dicionário com status da validação e dados para o recibo
 """
 cpf_limpo = cpf.replace(".", "").replace("-", "").strip()

 try:
 response = requests.get(
 f"https://api.cpfhub.io/cpf/{cpf_limpo}",
 headers={
 "x-api-key": API_KEY,
 "Accept": "application/json"
 },
 timeout=TIMEOUT
 )
 response.raise_for_status()
 dados = response.json()

 if not dados.get("success"):
 return {
 "valido": False,
 "motivo": "CPF nao encontrado",
 "dados_recibo": None
 }

 nome_api = dados["data"]["nameUpper"]
 nome_confere = nome_informado.upper().strip() == nome_api

 cpf_fmt = f"{cpf_limpo[:3]}.{cpf_limpo[3:6]}.{cpf_limpo[6:9]}-{cpf_limpo[9:]}"

 if nome_confere:
 return {
 "valido": True,
 "motivo": "Dados confirmados",
 "dados_recibo": {
 "nome_completo": dados["data"]["name"],
 "cpf_formatado": cpf_fmt,
 "nascimento": dados["data"]["birthDate"]
 }
 }
 else:
 return {
 "valido": False,
 "motivo": f"Nome divergente: informado='{nome_informado}' / registrado='{dados['data']['name']}'",
 "dados_recibo": None,
 "nome_sugerido": dados["data"]["name"]
 }

 except requests.exceptions.Timeout:
 logger.error("Timeout ao validar doador")
 return {"valido": None, "motivo": "Servico indisponivel", "dados_recibo": None}
 except requests.exceptions.RequestException as e:
 logger.error(f"Erro: {e}")
 return {"valido": None, "motivo": f"Erro: {e}", "dados_recibo": None}

# Exemplo de uso
resultado = validar_doador(
 cpf="123.456.789-00",
 nome_informado="Juliana Mendes Barbosa"
)

if resultado["valido"]:
 recibo = resultado["dados_recibo"]
 print(f"Recibo para: {recibo['nome_completo']}")
 print(f"CPF: {recibo['cpf_formatado']}")
else:
 print(f"Validacao falhou: {resultado['motivo']}")
```

---

## Gerando recibos de doação com dados validados

```python
from datetime import datetime

def gerar_recibo_doacao(dados_doador: Dict, valor: float, descricao: str) -> str:
 """Gera recibo de doação com dados validados via API."""
 data_atual = datetime.now().strftime("%d/%m/%Y")
 numero_recibo = datetime.now().strftime("%Y%m%d%H%M%S")

 recibo = f"""
 =============================================
 RECIBO DE DOACAO N. {numero_recibo}
 =============================================

 Data: {data_atual}

 Doador: {dados_doador['nome_completo']}
 CPF: {dados_doador['cpf_formatado']}

 Valor: R$ {valor:,.2f}
 Descricao: {descricao}

 =============================================
 Este recibo e valido para fins de deducao
 no Imposto de Renda conforme legislacao vigente.
 =============================================
 """

 return recibo

# Uso
resultado = validar_doador("123.456.789-00", "Juliana Mendes Barbosa")
if resultado["valido"]:
 recibo = gerar_recibo_doacao(
 dados_doador=resultado["dados_recibo"],
 valor=500.00,
 descricao="Doacao para projeto educacional"
 )
 print(recibo)
```

---

## Validação em lote de base de doadores

ONGs com bases de doadores existentes podem validar os dados periodicamente:

```python
import csv
import time

def validar_base_doadores(arquivo_csv: str) -> Dict:
 """Valida base de doadores existente e identifica inconsistências."""
 estatisticas = {"total": 0, "validos": 0, "invalidos": 0, "erros": 0}
 inconsistencias = []

 with open(arquivo_csv, "r", encoding="utf-8") as f:
 leitor = csv.DictReader(f)

 for linha in leitor:
 estatisticas["total"] += 1
 cpf = linha.get("cpf", "")
 nome = linha.get("nome", "")

 resultado = validar_doador(cpf, nome)

 if resultado["valido"] is True:
 estatisticas["validos"] += 1
 elif resultado["valido"] is False:
 estatisticas["invalidos"] += 1
 inconsistencias.append({
 "cpf": cpf[:3] + "***" + cpf[-2:],
 "motivo": resultado["motivo"]
 })
 else:
 estatisticas["erros"] += 1

 time.sleep(0.5) # respeitar rate limits

 return {"estatisticas": estatisticas, "inconsistencias": inconsistencias}
```

---

## Fluxo para campanhas de arrecadação

Durante campanhas de arrecadação com grande volume de doações, a validação pode ser incorporada ao formulário online:

1. **Doador preenche** nome, CPF e valor da doação no site.
2. **Sistema válida o CPF** em tempo real via API.
3. **Se válido:** doação é processada e recibo é gerado automaticamente.
4. **Se inválido:** doador é informado da inconsistência e pode corrigir os dados.

Essa abordagem evita que doações com dados incorretos entrem no sistema, reduzindo retrabalho posterior.

---

## Custo zero para a maioria das ONGs

| Porte da ONG | Doadores novos/mês | Plano ideal | Custo |
|----------------------|--------------------|-----------------|-------------|
| Pequena (local) | 5-20 | Gratuito | R$ 0 |
| Média (regional) | 20-50 | Gratuito | R$ 0 |
| Grande (nacional) | 100-500 | Pro | R$ 149/mês |
| Instituto / fundação | 500+ | Corporativo | Sob consulta|

A maioria das ONGs opera com volumes que se encaixam perfeitamente no plano Gratuito da [**CPFHub.io**](https://www.cpfhub.io/), que oferece 50 consultas mensais sem cartão de crédito. Quando o limite é ultrapassado, a API não bloqueia o acesso: cada consulta extra é cobrada a R$0,15, mantendo a operação sem interrupções.

---

## Boas práticas de proteção de dados

ONGs que lidam com dados de doadores devem observar a LGPD:

- **Finalidade:** use os dados apenas para a finalidade declarada (emissão de recibos, prestação de contas).
- **Minimização:** armazene apenas os dados necessários.
- **Transparência:** informe aos doadores que seus dados serão validados.
- **Segurança:** proteja o banco de dados de doadores com medidas técnicas adequadas.

A [**CPFHub.io**](https://www.cpfhub.io/) não armazena os CPFs consultados após retornar a resposta, o que facilita a conformidade com os princípios de minimização e segurança previstos na [Lei Geral de Proteção de Dados](https://www.gov.br/anpd).

---

## Perguntas frequentes

### ONGs precisam de CNPJ para usar a API CPFHub.io gratuitamente?

Não. O plano Gratuito da CPFHub.io está disponível para qualquer pessoa ou organização — basta criar uma conta com e-mail e gerar a chave de API no painel. ONGs, associações e projetos sociais podem começar a validar CPFs de doadores sem burocracia e sem apresentar documentação institucional.

### A API retorna erro ou bloqueia quando o limite gratuito é atingido?

Não. Ao atingir as 50 consultas mensais do plano Gratuito, a API não bloqueia nem retorna erro. Cada consulta adicional é cobrada a R$0,15 — a operação segue sem interrupção. Isso é relevante para ONGs em período de campanha, quando o volume de novos doadores pode ser imprevisível.

### Quanto tempo leva para a API retornar o nome do doador?

A latência média é de ~900ms. Para a maioria dos fluxos de cadastro de doadores, esse tempo é imperceptível para o usuário. Se a validação ocorre em segundo plano (assíncrona), o tempo de resposta não impacta a experiência do doador no formulário.

### Como garantir conformidade com a LGPD ao validar CPF de doadores?

Use o CPF apenas para a finalidade declarada (emissão de recibos, prestação de contas), armazene somente o necessário, implemente controle de acesso aos registros de consulta e informe ao doador que seus dados serão verificados. A [ANPD](https://www.gov.br/anpd) orienta que dados de identificação devem ser tratados com o princípio da necessidade e com base legal clara — no caso de ONGs, a base costuma ser obrigação legal ou legítimo interesse devidamente documentado.

### Leia também

- [Consulta de CPF grátis para organizações do terceiro setor](https://cpfhub.io/blog/consulta-de-cpf-gratis-para-organizacoes-do-terceiro-setor)
- [Consulta de CPF grátis para plataformas de crowdfunding e vaquinhas](https://cpfhub.io/blog/consulta-de-cpf-gratis-para-plataformas-de-crowdfunding-e-vaquinhas)
- [Como garantir segurança ao usar uma API gratuita de CPF](https://cpfhub.io/blog/como-garantir-seguranca-ao-usar-uma-api-gratuita-de-cpf)
- [O que faz uma API de CPF gratuita ser melhor que outra](https://cpfhub.io/blog/o-que-faz-uma-api-de-cpf-gratuita-ser-melhor-que-outra)

---

## Conclusão

A validação de CPF de doadores é uma prática que fortalece a transparência, garante a validade fiscal dos recibos e protege a ONG contra fraudes. Para organizações com orçamento limitado, o plano Gratuito da [**CPFHub.io**](https://www.cpfhub.io/) cobre o volume de consultas da maioria das ONGs de pequeno e médio porte sem nenhum custo mensal. Quando a organização crescer, o plano Pro (R$149/mês) acompanha o aumento de volume sem mudança de integração.

Cadastre-se em [cpfhub.io](https://www.cpfhub.io/) e comece a validar os dados dos seus doadores ainda hoje.

