1001Ferramentas
🪪Validadores

Validador de Número CNH BR (registro)

Valide o número de registro da CNH brasileira (11 dígitos) pelo dígito verificador oficial. Útil para cadastros, RH e validação de documentos.

Número da CNH vs RENACH: dois identificadores distintos no mesmo cartão

Ao olhar para uma CNH - Carteira Nacional de Habilitacao e tentar extrair "o número", logo se percebe que o plastico impresso tem mais de um campo numérico. Os dois que importam para validação são o número da CNH (também chamado de "número de registro" ou "número do espelho") e o RENACH (Registro Nacional de Carteiras de Habilitacao). Eles não são a mesma coisa, e confundi-los e a fonte mais comum de bug em fluxos de onboarding de apps de delivery, mobilidade e KYC.

O número da CNH e uma sequência de 11 dígitos emitida pelo Detran estadual quando um determinado espelho físico e impresso. Historicamente mudava a cada renovação, a cada upgrade de categoria e, obviamente, quando o titular trocava de UF. O RENACH, ao contrário, e um registro nacional vitalício que segue o condutor por todas as renovacoes, mudanças de categoria e transferencias de estado. O campo 5 da CNH moderna mostra o RENACH; o campo 4 costuma mostrar o número da CNH.

Esta ferramenta valida especificamente o número da CNH — os 11 dígitos com dois verificadores ao final. Se você precisa validar o algoritmo conforme as regras dos sistemas de impressão do Detran, e a ferramenta certa. Se precisa rastrear o mesmo motorista através de várias CNHs ao longo do tempo, o campo que você realmente quer e o RENACH.

O algoritmo modulo 11 com a regra do decremento global

Os 11 dígitos da CNH se compoem de 9 dígitos base + 2 verificadores (DV1 e DV2). Diferente do CPF, o algoritmo da CNH usa pesos decrescentes começando em 9 e aplica um decremento global quando o primeiro verificador estoura. Implementação de referência:

// Digitos verificadores do numero da CNH
pesos1 = [9, 8, 7, 6, 5, 4, 3, 2, 1]
pesos2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
dec    = 0

soma1 = sum(digito[i] * pesos1[i] for i in 0..8)
dv1   = soma1 % 11
if dv1 == 10:
    dv1 = 0
    dec = 2

soma2 = sum(digito[i] * pesos2[i] for i in 0..8)
dv2   = (soma2 % 11) - dec
if dv2 < 0:  dv2 += 11
if dv2 == 10: dv2 = 0

O dec = 2 e a parte que mais bibliotecas de terceiros erram. Quando o DV1 estoura para 10, ele e forcado para 0 e o DV2 precisa ser calculado com o offset. Esquecer o decremento gera validadores que rejeitam cerca de 1 em cada 11 CNHs reais.

Exemplo sobre 048.814.725-61

  • Dígitos base: 0 4 8 8 1 4 7 2 5.
  • Soma1 = 0*9 + 4*8 + 8*7 + 8*6 + 1*5 + 4*4 + 7*3 + 2*2 + 5*1 = 187. 187 mod 11 = 0 -> DV1 = 0 (sem decremento).
  • O DV1 impresso e 6: o exemplo padrão 04881472561 depende de como zeros a esquerda são preservados. Sempre complete a base com zeros até 9 dígitos antes do cálculo.

Lei 14.071/2020, CPF como chave única e a convergencia com a CIN

A Lei Federal 14.071/2020 reformou o Código de Trânsito Brasileiro (CTB) e, entre muitas outras mudanças, estreitou o vinculo entre CNH e CPF. Na pratica, o CPF virou o identificador único funcional do condutor, mesmo que o número da CNH e o RENACH continuem existindo por compatibilidade. Sistemas do SENATRAN indexam por CPF, e apps integrados a stack gov.br (Carteira Digital de Trânsito, e-Social, cruzamento com Bolsa Família) esperam o CPF como chave primária.

A tendencia se acelera com a CIN (Carteira de Identidade Nacional), novo documento definido pelo Decreto 10.977/2022, que adota o CPF como número único de identificação em todos os documentos federais. A CIN deve, ao longo dos anos, unificar RG, CPF, número da CNH e outros identificadores em uma so chave numérica, mas até a adesao total o número da CNH segue como artefato distinto, validavel, impresso no cartão.

eCNH, CDT e o gemeo digital do plastico

A CNH Digital, ou eCNH, vive dentro do app Carteira Digital de Trânsito (CDT), distribuido pelo SENATRAN no ecossistema gov.br. A eCNH carrega o mesmo número da CNH e o mesmo RENACH do plastico — o algoritmo de validação não muda. A versão digital acrescenta um QR Code que resolve para um JSON assinado pelo SERPRO contendo CPF, número da CNH, RENACH, categoria, validade e assinatura criptografica.

Um validador puramente de formato como este olha apenas para os 11 dígitos. Não consegue dizer se o cartão e digital ou físico, se o titular esta suspenso, se a CNH foi cassada nem se a foto e a biometria batem. Essas checagens exigem sessão em portal do Detran ou integracao paga com bureau do SENATRAN.

Casos de uso: apps de delivery, KYC e dados de teste

Cenários reais onde um validador offline de número de CNH faz diferença:

  • Onboarding de delivery e mobilidade: telas de iFood, Uber, 99, Rappi e Loggi rejeitam números obviamente malformados antes de bater no proxy do SENATRAN, que e rate-limited e pago por requisição.
  • Gestão de frota: SaaS de telemetria como Cobli, Frota Plus e Maxtrack mantém master de motorista com número da CNH + RENACH e reaproveitam o validador na importacao.
  • Seguros: apolices auto exigem CNH valida no momento da cotacao; o validador no front evita ida e volta ao back-office da seguradora.
  • Dados de mock e seed: ambientes de QA precisam de CNHs que passem nos verificadores mas sejam claramente fake. Combine este validador com um gerador aleatório.
  • Fintechs e abertura de conta: contas PJ de motoristas (MEI) frequentemente armazenam o número da CNH como ID secundario.

PPD vs PD, cassacao e o que o validador não enxerga

O Brasil emite a PPD (Permissão Para Dirigir) na primeira aprovacao — habilitacao provisoria valida por 1 ano. Depois de 12 meses sem infracoes graves, o titular e promovido a PD (CNH definitiva). Os dois documentos carregam números gerados pelo mesmo algoritmo, e esta ferramenta os valida igualmente.

Cassacao (revogacao total), suspensao (temporaria) e bloqueio administrativo ficam registrados na camada do RENACH, nunca no número da CNH em si. Um motorista cassado continua tendo um número que passa no algoritmo — apenas consulta online ao Detran ou SENATRAN revela o status. Essa e a ressalva mais importante para qualquer equipe de KYC que dependa de validação offline.

FAQ

RENACH vs número da CNH — qual e o que aparece no cartão?

Ambos. O plastico mostra o número da CNH (campo 4, "número de registro") e o RENACH (campo 5). O RENACH e o registro vitalício; o número da CNH e vinculado ao espelho específico.

O número da CNH muda quando eu mudo de UF?

Historicamente sim — o Detran de destino reemitia o número. Com o sistema nacional unificado, a tendencia e preservar o número quando possível, mas o campo garantido como estável para a vida toda e o RENACH.

Posso consultar a CNH online?

Sim, pelo portal do Detran estadual (detran.<UF>.gov.br) ou pelo app CDT no gov.br. Alguns Detrans exigem login com CPF e pergunta de segurança; o SENATRAN não expõe API publica gratuita.

A ferramenta consulta BrasilAPI ou algum serviço externo?

Não. Os verificadores são calculados localmente no navegador. A BrasilAPI não tem proxy Detran confiável — seu endpoint de CNH e instavel porque os Detrans estaduais bloqueiam scraping.

Por que alguns números de CNH começam com 0?

Zeros a esquerda fazem parte do número. O algoritmo completa a base com zeros até 9 dígitos antes de aplicar os pesos, então 04881472561 e processado igual a um número que comece com dígito diferente de zero.

Ferramentas Relacionadas