RENAVAM

O número do Registro Nacional de Veículos Automotores.

  • Matriz de paridade

Validar

Valida um RENAVAM: o formato antigo (9 dígitos, completado com zeros à esquerda até 11) ou o novo (11 dígitos), com dígito verificador por módulo 11.

  • A função ignora espaços, pontos, hífens e barras, sozinhos ou em sequência, então toda forma com pontuação é aceita (0063988.4962, 0063988/4962, 00639884-962). Qualquer outro caractere, em particular uma letra ou um sublinhado, torna o valor inválido. Até a 2.4.0 a barra era rejeitada.
  • Dígito verificador: os dez dígitos da base, lidos da direita para a esquerda, são multiplicados por 2, 3, 4, 5, 6, 7, 8, 9, 2 e 3. O dígito é o resto da divisão por 11 de dez vezes a soma, com resto 10 lido como 0.
  • Um valor com todos os dígitos iguais é rejeitado.
  • Um número só é lido se for um inteiro seguro não negativo. Número negativo ou fracionário é inválido: a 2.4.0 aceitava -639884962 e 63988496.2. Strings e inteiros não negativos dão o mesmo resultado de antes.
  • A Portaria DENATRAN nº 27/2013 dá 10 dígitos e um dígito verificador "calculado através do módulo 11, peso 9". Ela não escreve os pesos, o tratamento de resto 0, 1 ou 10, nem como um código de 9 dígitos é lido em 11. Essas partes seguem referências da comunidade e a prática de mercado.
  • Um número perde os zeros à esquerda, então um RENAVAM de 11 dígitos que começa com 0 só é aceito como string: "08794266580" é válido e 8794266580 não é.
  • Um valor que não é string nem número retorna false.
ParâmetroTipoObrigatório
renavamstring | numbersim
retornaboolean

Valida um RENAVAM (Registro Nacional de Veículos Automotores). Aceita o formato antigo (9 dígitos) e o formato novo (11 dígitos).

  • Espaços, pontos, hífens e barras são ignorados; qualquer outro caractere invalida o valor.
  • Um número perde os zeros à esquerda, então um RENAVAM de 11 dígitos que começa com 0 só é aceito como string: isValidRenavam('08794266580') é true e isValidRenavam(8794266580) é false.
  • O dígito verificador é o da Portaria DENATRAN nº 27/2013, art. 1º: "10 dígitos e um dígito verificador, calculado através do módulo 11, peso 9", lido como os pesos 3, 2, 9, 8, 7, 6, 5, 4, 3 e 2. A portaria não escreve os pesos um a um nem diz o que fazer com resto 0, 1 ou 10, o que segue o validation-br e o brutils; completar com zeros um código de 9 dígitos até 11 é prática de mercado.
import { isValidRenavam } from '@brazilian-utils/brazilian-utils';

isValidRenavam('639884962'); // true (9 dígitos, formato antigo)
isValidRenavam('00639884962'); // true (11 dígitos, formato novo)
isValidRenavam('0063988.4962'); // true (o ponto é ignorado)
isValidRenavam('12345678901'); // false (checksum inválido)
isValidRenavam('00000000000'); // false (dígitos repetidos)
isValidRenavam('ab00639884962'); // false (letras são rejeitadas)

Fonte: Portaria DENATRAN nº 27/2013.

Código: brazilian-utils/javascript
Teste com JavaScript isValidRenavam
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (39) e o resultado em cada biblioteca renavam.isValid

Gerar

Gera um RENAVAM aleatório e válido no formato de 11 dígitos: 10 dígitos base mais o dígito verificador.

ParâmetroTipoObrigatório
retornastring

Gera um RENAVAM válido aleatório na forma de 11 dígitos: dez dígitos de base mais o dígito verificador.

import { generateRenavam } from '@brazilian-utils/brazilian-utils';

generateRenavam(); // '12345678900'
Código: brazilian-utils/javascript
Teste com JavaScript generateRenavam
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (1) e o resultado em cada biblioteca renavam.generate

Fontes oficiais

Veja também Placa de veículo, Chassi (VIN)

Atualizado em

Nesta página