Plataformas de transporte e entrega podem usar a API gratuita da CPFHub.io para validar o CPF de motoristas diretamente no onboarding, cruzando nome e data de nascimento em tempo real. O plano gratuito oferece 50 consultas mensais sem cartão de crédito — suficiente para MVPs e testes de integração. A latência média da API é de ~900ms, compatível com fluxos de cadastro em etapas.
Plataformas de transporte por aplicativo e serviços de entrega enfrentam um desafio crítico no onboarding: garantir que o motorista ou entregador é quem diz ser. Um cadastro com CPF falso ou de terceiros coloca passageiros em risco, expõe a plataforma a responsabilidades legais e compromete a confiança no serviço.
A validação de CPF no momento do cadastro é a primeira barreira contra essas fraudes. Com a API gratuita da CPFHub.io
Por que validar motoristas de aplicativo
Segurança dos passageiros
A principal responsabilidade de uma plataforma de transporte é a segurança de quem usa o serviço. Permitir que alguém se cadastre com documentos falsos cria uma situação em que o passageiro não sabe com quem está realmente viajando.
Responsabilidade legal
A plataforma pode ser responsabilizada judicialmente se um incidente envolver um motorista cadastrado com dados falsos. A diligência na verificação de identidade é um fator atenuante em disputas legais. O Ministério do Trabalho e Emprego orienta que prestadores de serviço por plataforma devem ter seus dados cadastrais corretamente identificados para fins de compliance trabalhista.
Qualidade da base de motoristas
CPFs duplicados, perfis falsos e cadastros inconsistentes geram problemas operacionais: repasses incorretos, dificuldade de comunicação e dados fiscais inválidos.
Compliance fiscal
Para emitir recibos ou informar pagamentos à Receita Federal, a plataforma precisa de CPFs válidos e dados corretos dos prestadores de serviço.
Fluxo de validação no onboarding
Etapa 1 -- Cadastro inicial
O motorista preenche o formulário com CPF, nome completo, data de nascimento e demais dados.
Etapa 2 -- Validação via API
O sistema consulta o CPF automaticamente antes de aprovar o cadastro:
curl -X GET "https://api.cpfhub.io/cpf/98765432100" \
-H "x-api-key: SUA_CHAVE_GRATUITA" \
-H "Accept: application/json" \
--connect-timeout 10 \
--max-time 30
Resposta:
{
"success": true,
"data": {
"cpf": "98765432100",
"name": "Roberto Silva Mendes",
"nameUpper": "ROBERTO SILVA MENDES",
"gender": "M",
"birthDate": "1995-06-14",
"day": "14",
"month": "06",
"year": "1995"
}
}
Etapa 3 -- Comparação automática
O sistema compara o nome e a data de nascimento informados com os retornados pela API.
Etapa 4 -- Decisão
- Dados conferem: cadastro prossegue para as próximas etapas (upload de documentos, foto).
- Dados divergem: cadastro é bloqueado para análise manual.
Implementação do validador de motoristas
import requests
import logging
from typing import Dict
from datetime import datetime
logger = logging.getLogger(__name__)
API_KEY = "SUA_CHAVE_GRATUITA"
TIMEOUT = 30
def validar_motorista(
cpf: str,
nome_informado: str,
nascimento_informado: str
) -> Dict:
"""
Valida dados do motorista contra o CPF informado.
Args:
cpf: CPF do motorista
nome_informado: nome declarado no cadastro
nascimento_informado: data de nascimento (YYYY-MM-DD)
Returns:
Resultado da validação com status e detalhes
"""
cpf_limpo = cpf.replace(".", "").replace("-", "").strip()
if len(cpf_limpo) != 11 or not cpf_limpo.isdigit():
return {
"status": "rejeitado",
"motivo": "CPF com formato invalido",
"pode_prosseguir": False
}
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 {
"status": "nao_encontrado",
"motivo": "CPF nao localizado na base",
"pode_prosseguir": False
}
nome_api = dados["data"]["nameUpper"]
nascimento_api = dados["data"]["birthDate"]
nome_confere = nome_informado.upper().strip() == nome_api
nascimento_confere = nascimento_informado == nascimento_api
# Verificar idade mínima (18 anos)
try:
data_nasc = datetime.strptime(nascimento_api, "%Y-%m-%d")
idade = (datetime.now() - data_nasc).days // 365
maior_de_idade = idade >= 18
except ValueError:
maior_de_idade = True # em caso de erro, não bloquear por idade
if nome_confere and nascimento_confere and maior_de_idade:
return {
"status": "aprovado",
"motivo": "Dados verificados com sucesso",
"pode_prosseguir": True,
"nome_verificado": dados["data"]["name"],
"idade": idade
}
problemas = []
if not nome_confere:
problemas.append(f"Nome divergente (informado: {nome_informado})")
if not nascimento_confere:
problemas.append("Data de nascimento divergente")
if not maior_de_idade:
problemas.append(f"Menor de 18 anos (idade: {idade})")
return {
"status": "pendente_analise",
"motivo": "; ".join(problemas),
"pode_prosseguir": False
}
except requests.exceptions.Timeout:
logger.error("Timeout na validacao do motorista")
return {
"status": "erro_temporario",
"motivo": "Servico de validacao indisponivel",
"pode_prosseguir": False
}
except requests.exceptions.RequestException as e:
logger.error(f"Erro na validacao: {e}")
return {
"status": "erro_temporario",
"motivo": "Erro na comunicacao com servico de validacao",
"pode_prosseguir": False
}
# Exemplo de uso no fluxo de onboarding
resultado = validar_motorista(
cpf="987.654.321-00",
nome_informado="Roberto Silva Mendes",
nascimento_informado="1995-06-14"
)
if resultado["pode_prosseguir"]:
print(f"Cadastro aprovado: {resultado['nome_verificado']}, {resultado['idade']} anos")
else:
print(f"Cadastro bloqueado: {resultado['motivo']}")
Integração com APIs de onboarding
Para plataformas que usam um fluxo de onboarding em etapas, a validação de CPF é a primeira barreira:
class OnboardingMotorista:
"""Fluxo de onboarding com validação de CPF como primeira etapa."""
ETAPAS = ["validacao_cpf", "upload_cnh", "foto_perfil", "aprovacao_final"]
def __init__(self):
self.etapa_atual = 0
self.dados_validados = {}
def processar_etapa(self, dados: dict) -> dict:
etapa = self.ETAPAS[self.etapa_atual]
if etapa == "validacao_cpf":
resultado = validar_motorista(
cpf=dados["cpf"],
nome_informado=dados["nome"],
nascimento_informado=dados["nascimento"]
)
if resultado["pode_prosseguir"]:
self.dados_validados["nome"] = resultado["nome_verificado"]
self.dados_validados["cpf"] = dados["cpf"]
self.etapa_atual += 1
return {"sucesso": True, "proxima_etapa": self.ETAPAS[self.etapa_atual]}
else:
return {"sucesso": False, "motivo": resultado["motivo"]}
# Demais etapas...
return {"sucesso": True, "proxima_etapa": "concluido"}
Cenários para diferentes tipos de plataforma
Transporte de passageiros
Validação obrigatória para todos os motoristas. A segurança do passageiro depende da identidade confirmada do condutor.
Entregas e logística
Entregadores que acessam endereços residenciais precisam ter identidade verificada. A validação do CPF é o primeiro passo.
Aluguel de veículos peer-to-peer
Plataformas de compartilhamento de carros precisam validar tanto o locador quanto o locatário.
Serviços domésticos
Plataformas que conectam profissionais (diaristas, eletricistas, encanadores) a clientes precisam verificar a identidade dos prestadores.
Volume e planos adequados
| Tamanho da plataforma | Cadastros/mês | Plano recomendado |
|---|---|---|
| MVP / validação de conceito | 10-50 | Gratuito |
| Startup em crescimento | 50-500 | Pro |
| Plataforma estabelecida | 500+ | Corporativo |
O plano Gratuito da CPFHub.io
Perguntas frequentes
Como funciona a API de CPF para validar motoristas de aplicativo?
A API recebe o CPF do motorista via requisição GET e retorna nome completo, data de nascimento e gênero vinculados ao documento. A plataforma compara esses dados com as informações que o motorista declarou no cadastro — se houver divergência, o perfil é bloqueado para revisão manual. A latência média da API é de ~900ms, compatível com fluxos de onboarding em etapas.
O plano gratuito é suficiente para começar a validar motoristas?
Sim. O plano gratuito oferece 50 consultas por mês sem necessidade de cartão de crédito — ideal para MVPs e testes de integração. Se o volume ultrapassar esse limite, a API não bloqueia: cada consulta adicional custa R$0,15. Para plataformas em crescimento, o plano Pro (R$149/mês) inclui 1.000 consultas mensais.
O que fazer quando a API retorna dados divergentes do motorista?
A recomendação é bloquear o cadastro automaticamente e encaminhar o perfil para análise humana. O sistema deve registrar a divergência — se o nome ou a data de nascimento não conferem, pode ser erro de digitação ou tentativa de fraude. O motorista pode ser contatado para corrigir os dados antes de nova tentativa de validação.
Como garantir conformidade com a LGPD ao validar CPF de motoristas?
O tratamento do CPF nesse contexto tem base legal na execução de contrato ou legítimo interesse da plataforma, conforme a LGPD. É fundamental informar o motorista sobre a coleta no momento do cadastro, armazenar apenas o necessário, e descartar dados de perfis rejeitados. A ANPD orienta que dados de identificação devem ser tratados com o princípio da necessidade e finalidade específica.
Conclusão
A validação de CPF no cadastro de motoristas de aplicativo é uma medida essencial de segurança que protege passageiros, reduz fraudes e garante compliance fiscal. A implementação é direta -- uma chamada de API que retorna o nome e a data de nascimento vinculados ao CPF em cerca de 900ms.
Para plataformas em estágio inicial, o plano Gratuito da CPFHub.io
Cadastre-se em cpfhub.io
CPFHub.io
Pronto para integrar a API?
50 consultas gratuitas para testar agora. Sem cartão de crédito. Acesso imediato à documentação.
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.



