Dígito verificador UIC de vagão
Um vagão cujos onze primeiros dígitos são 21812471217 recebe o dígito verificador 3, e o número UIC completo fica 218124712173. Se colar um número inteiro de doze dígitos, você vê na hora se o último bate. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Número
- 21812471217
- Modo de cálculo
- Compute
- Entrada
- 21812471217
- Dígito verificador
- 3
- Número do vagão
- 218124712173
Operadoras ferroviárias, proprietários de vagões e sistemas logísticos identificam o material de carga e de passageiros com um número europeu de veículo UIC de doze dígitos. Onze desses dígitos codificam tipo, país e identidade de série; o décimo segundo é um dígito de autoconferência derivado de uma ponderação fixa alternada dois-um, de modo que um erro de digitação ou uma transposição falha com muito mais frequência do que parecer outro veículo válido. Esta capacidade calcula esse dígito verificador a partir de uma carga útil de onze dígitos, ou valida um número completo de doze e indica se o dígito final armazenado coincide com o valor recalculado.
Como o dígito verificador UIC é calculado
As regras UIC e de numeração europeia de veículos definem um dígito verificador determinístico sobre os onze primeiros dígitos do número de veículo de doze. Numere essas posições de carga útil da esquerda para a direita começando no índice zero: cada dígito é multiplicado por peso dois quando o índice é par e por peso um quando é ímpar; em seguida, qualquer produto maior que nove é dobrado somando seus dígitos decimais (a mesma dobra no estilo Luhn de esquemas mod-10 relacionados). Os onze valores dobrados são somados.
O dígito verificador é dez menos essa soma módulo dez, tomada de novo módulo dez, de forma que uma soma já divisível por dez produz dígito verificador zero. Ao acrescentar esse único dígito obtém-se o número completo de doze que aparece no costado do vagão e nas bases de frota, muitas vezes impresso com espaços de agrupamento e um hífen antes do dígito verificador. A validação é a operação inversa: recalcula-se o dígito esperado a partir dos onze primeiros caracteres e compara-se com o décimo segundo.
*
Como calcular um dígito verificador ou validar um número completo
Envie um campo number com os dígitos da carga útil ou do veículo completo. O modo validate espera exatamente doze dígitos após a limpeza. Essa forma facilita mostrar «você digitou X, esperava-se Y» em uma UI de frota sem uma segunda requisição.
Strings vazias, number ausente, valores de mode inválidos e comprimentos incorretos (por exemplo dez ou treze dígitos) falham antes de qualquer soma ponderada e não são cobrados. Prefira compute ao criar ou completar um novo bloco de série; prefira validate quando receber um número completo de um scanner, um CSV ou um formulário de troca de keeper e precisar de um portão booleano antes de gravar o ativo.
Onde dígitos verificadores UIC cabem em fluxos ferroviários reais
Proprietários e keepers de material rodante atribuem séries dentro de uma classe e código de país; antes de atualizar pintura, placas e registros TAF/TSI devem acrescentar o dígito verificador correto para que parceiros e sistemas de via aceitem a identidade na primeira leitura. Sistemas de oficina e manutenção importam CSV de keepers com números de doze dígitos e devem rejeitar linhas cujo dígito verificador já não coincida, o que detecta tanto edições humanas quanto bugs de um a mais em geradores a montante.
Aplicações de terminal e intermodal que permitem ao pessoal digitar um número de vagão podem validar ao perder o foco e bloquear movimentos até que valid seja true, reduzindo trocas EDI falhas e desalinhamentos no pátio. Não trate um dígito verificador válido como prova de alocação, direitos de keeper ou correção de código de tipo — ele só prova que a string de doze dígitos é aritmeticamente bem formada sob a regra UIC de pesos alternados dois-um, o mesmo critério de honestidade que se aplica a qualquer checksum industrial.
Casos de uso
Auditar arquivos de keeper e troca RIV
Valide em lote cada número de veículo de doze dígitos em um CSV de parceiro ou exportação EDI e coloque em quarentena as linhas cujo dígito verificador já não coincida com o valor esperado recalculado.
Perguntas frequentes
O que é o dígito verificador de um número de vagão UIC?
É o décimo segundo dígito de um número europeu de veículo ferroviário, calculado a partir dos onze primeiros com pesos alternados 2 e 1 e uma dobra de soma de dígitos no estilo Luhn, de modo que erros de um único dígito falham com bem mais frequência do que parecer outro veículo.
A ferramenta de dígito verificador UIC de vagão é grátis?
A ferramenta do navegador é grátis e roda localmente.
Como é calculado o dígito verificador de um vagão UIC?
Da esquerda para a direita, os onze dígitos são multiplicados por 2, 1, 2, 1 e assim por diante. Um produto acima de 9 vira a soma dos seus dois dígitos, tudo é somado e o dígito é o que falta para chegar à próxima dezena (0 se já for uma).
Um dígito verificador válido prova que o vagão está registrado?
Não. Ele só mostra que os doze dígitos são coerentes entre si. Não diz se o número foi atribuído, quem é o detentor do vagão nem se o código de tipo está correto.
Posso colar o número com espaços, hífens ou pontos?
Sim. Os espaços, o hífen e os pontos do formato impresso comum são removidos antes da conferência. Letras e outros símbolos são recusados, para que um caractere perdido não passe despercebido.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/uic-wagon \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"21812471217"}'const res = await fetch("https://api.kit.forhosting.com/enc/uic-wagon", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "21812471217"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/uic-wagon",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "21812471217"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/uic-wagon", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"21812471217"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"21812471217"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/uic-wagon", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"number": "21812471217"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.uic_wagon",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Espaços, hífens e pontos do layout impresso usual são removidos antes da aritmética; letras e outros não dígitos são rejeitados com um erro invalid_input claro. Execute grátis no navegador ou chame a API do KIT pelo preço publicado; ambos os caminhos usam o mesmo algoritmo inteiro puro, sem rede e sem registros de veículos armazenados.
Como o dígito verificador UIC é calculado
Como o algoritmo é aritmética inteira pura com pesos fixos, a mesma carga útil produz sempre o mesmo dígito verificador em cada plataforma — navegador, Worker ou harness de testes offline —, por isso a capacidade é entregue como motor parse de tier A e não como chamada a um modelo.
Como calcular um dígito verificador ou validar um número completo
Espaços, hífens e pontos opcionais são removidos para que formulários aceitem o layout de exibição usual com grupos e um traço final antes do dígito verificador; letras e outros símbolos são rejeitados como entrada não numérica com invalid_input, de modo que um formulário nunca aceite um valor limpo em silêncio que ainda esteja errado. O modo compute é o padrão: forneça exatamente onze dígitos de carga útil após a limpeza; o motor devolve check_digit como string de um caractere, vehicle_number como esses onze dígitos mais o verificador, e length doze. A resposta indica valid true quando o dígito final coincide com o expected_check_digit recalculado, e sempre inclui payload (os onze primeiros dígitos), check_digit conforme enviado, expected_check_digit e o vehicle_number canônico formado com payload mais o dígito esperado. Como o caminho é parse puro, sem relógio, fonte aleatória ou rede, a mesma entrada produz sempre o mesmo JSON na ferramenta gratuita do navegador e na API. A US$ 0,002 por solicitação bem-sucedida você pode proteger importações em massa de frota, arquivos de troca RIV e auditorias EDI de parceiros sem negociar um tier personalizado.
Onde dígitos verificadores UIC cabem em fluxos ferroviários reais
Testes de integração e jobs de qualidade de dados recalculam expected_check_digit em cada coluna de veículo de uma exportação e colocam em quarentena as divergências antes que cheguem a registros nacionais ou internacionais. Impressoras de etiquetas que compõem estênceis a partir de cargas úteis de onze dígitos chamam o modo compute uma vez por veículo e colocam vehicle_number sob o gráfico de marcação. Em todo fluxo o contrato é o mesmo: dígitos após a limpeza opcional de separadores, onze para compute ou doze para validate, JSON estruturado testável com goldens, comportamento idêntico grátis no navegador ou com saldo pré-pago do KIT, e falha honesta quando a entrada não é uma string UIC bem formada.
Casos de integração
Completar uma carga útil de onze dígitos para placas e pintura
Pegue os dígitos de tipo, país e série (onze no total), chame o modo compute e imprima vehicle_number no vagão para que a marcação leve um dígito verificador UIC válido para o parceiro.
Validar números de vagão lidos ou digitados na entrada
Quando um scanner de mão ou um formulário enviar doze dígitos, chame o modo validate e bloqueie atualizações de frota ou pátio se valid for false, mostrando expected_check_digit para corrigir um erro de digitação.
Perguntas técnicas
Como calculo um dígito verificador UIC com esta API?
Faça POST com number de exatamente onze dígitos (espaços, hífens e pontos opcionais) e mode compute (ou omita mode). A resposta inclui check_digit e vehicle_number (o código completo de doze dígitos).
Como valido um número de veículo completo de doze dígitos?
Faça POST com a string de doze dígitos e mode validate. A resposta inclui valid, check_digit, expected_check_digit, payload e o vehicle_number canônico.
O que acontece com letras, comprimentos errados ou separadores ruins?
Espaços, hífens e pontos são removidos; não dígitos restantes e comprimentos diferentes de onze (compute) ou doze (validate) são rejeitados com invalid_input. Tarefas de validação falhas não são cobradas.