Ferramenta para desenvolvedores

Gerador de RENAVAM Válido

RENAVAM (Registro Nacional de Veículos Automotores) com 11 dígitos e dígito verificador calculado corretamente pelo algoritmo mod-11 do DENATRAN. Passa em qualquer validador de formato. Ideal para mock de despachante, sistema de multas, integração com API do DENATRAN e fixture de QA.

11 dígitos com DV calculado por mod-11 DENATRAN

Clique em Gerar para começar

O que é o RENAVAM

RENAVAM é o número único que o DENATRAN atribui a cada veículo automotor registrado no Brasil. Tem 11 dígitos e serve como identificador nacional (diferente da placa, que muda se o veículo for transferido de estado). Aparece no CRLV, boletos de IPVA, licenciamento, multas e qualquer interação com órgão de trânsito.

O último dígito é o verificador, calculado por mod-11 com pesos 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 aplicados aos 10 dígitos base. Se seu sistema valida RENAVAM antes de bater na API do DENATRAN, ele confere esse checksum.

Como funciona o algoritmo

Para gerar um RENAVAM válido:

  1. Gere 10 dígitos aleatórios (posições 1-10)
  2. Multiplique cada dígito pelos pesos 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 respectivamente
  3. Some os produtos
  4. Multiplique a soma por 10
  5. Calcule o resto da divisão por 11
  6. Se o resto for 10 ou 11, o dígito verificador é 0. Senão, é o próprio resto.

Implementação de referência em TypeScript no blog.

Uso via API REST

# Gerar 100 RENAVAMs válidos
curl "https://fakeforge.com.br/api/generate?type=renavam&quantity=100"

# CSV pra importar em fixture de veículo
curl "https://fakeforge.com.br/api/generate?type=renavam&quantity=1000&format=csv" \
  -o fixtures/renavam.csv

Grátis: 50 chamadas/dia, até 100 RENAVAMs por chamada. Plano Dev (R$29/mês) libera 10.000/dia.

Node.js: seed de banco de veículos

// 500 veículos com RENAVAM + placa correlacionados
const [renavams, placas] = await Promise.all([
  fetch("https://fakeforge.com.br/api/generate?type=renavam&quantity=500")
    .then(r => r.json()).then(r => r.data),
  fetch("https://fakeforge.com.br/api/generate?type=placa&quantity=500")
    .then(r => r.json()).then(r => r.data),
]);

for (let i = 0; i < 500; i++) {
  await db.veiculo.create({
    data: {
      renavam: renavams[i],
      placa: placas[i],
    }
  });
}

Perguntas Frequentes

O RENAVAM gerado corresponde a algum veículo real?+

Não. Nossa geração cria números que passam mod-11 do DENATRAN, mas não estão registrados na base oficial. Se sua aplicação consulta o DENATRAN via API, a resposta vai ser 'veículo não encontrado', o que é o comportamento esperado em ambiente de teste.

Gerar RENAVAM fake é crime?+

Não. Gerar números que passam validação de formato para testes de software é prática padrão. Crime é usar RENAVAM (fake ou real) pra emitir documento fraudulento, transferir propriedade indevidamente ou circular sem registro.

Posso testar com API oficial do DENATRAN?+

Não. A API oficial só responde pra veículos registrados. Use o RENAVAM fake pra teste de front-end, mock de despachante e validação de formato. Pra teste end-to-end com API oficial, cada estado tem sandbox próprio com números de teste específicos.

RENAVAM tem UF codificada como o CPF?+

Não. RENAVAM é nacional e não codifica UF. Se um veículo é transferido de SP pra RJ, o RENAVAM permanece o mesmo, só a placa muda (ou nem isso, com placa Mercosul).

Qual formato exibir o RENAVAM?+

O DENATRAN não define formato oficial de exibição. Documentos e sistemas usam variações: XXXXXXXXXXX (contínuo), XXXX XXXX XXX (com espaços a cada 4) ou X.XXX.XXX.XXXX (com pontos). Nossa API devolve com espaços a cada 4 quando formatted=true, ou contínuo quando formatted=false.

Como validar RENAVAM no meu código?+

Extraia só os dígitos, verifique se são 11, aplique o mod-11 com pesos 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 nos 10 primeiros, multiplique por 10, calcule o resto e compare com o 11º dígito. Rejeite sequências repetidas tipo 11111111111.

Ferramentas relacionadas