Valide el dígito de control de un VIN de 17 caracteres
El número de identificación del vehículo contiene un dígito de control que ayuda a detectar errores de transcripción antes de incorporar un VIN a un registro, inventario, trámite de seguro o base de datos de mantenimiento.
Ejecutar — gratis
Este validador aplica la transliteración y la ponderación estándar a los 17 caracteres, calcula el noveno carácter esperado y lo compara con el indicado. El resultado muestra con claridad si el VIN supera la comprobación, ambos dígitos y el resto del módulo, sin consultar ni guardar datos del vehículo.
Qué puede indicarle el dígito de control del VIN
Un VIN moderno es un identificador estructurado de 17 caracteres, y su novena posición se reserva para un dígito de control en los sistemas que aplican la regla estándar. Este validador responde a una pregunta concreta: ¿coincide el noveno carácter con los demás según el cálculo de transliteración ponderada? Un resultado válido aporta evidencia útil de que el identificador se copió de forma coherente. Si falla, conviene compararlo con la placa del salpicadero, la etiqueta de certificación, el permiso de circulación o la fuente original. Sin embargo, no demuestra que el vehículo sea auténtico, esté matriculado legalmente ni que su descripción sea correcta. Se puede construir un VIN inventado con un dígito matemáticamente válido. Además, el fabricante, el mercado o la antigüedad pueden determinar si se usa esta convención. Considere el resultado un control de calidad que detecta errores comunes y consulte registros oficiales para identidad, titularidad, robos, llamadas a revisión o especificaciones.
Cómo funciona el cálculo de transliteración ponderada
El cálculo convierte primero cada letra admitida en un valor numérico, mientras que los dígitos conservan su valor. Las letras I, O y Q se excluyen de los VIN porque pueden confundirse con números. Cada uno de los 17 valores se multiplica por el peso de su posición: 8, 7, 6, 5, 4, 3, 2, 10, cero para la posición de control y después 9, 8, 7, 6, 5, 4, 3 y 2. Se suman los productos y se divide el total entre 11. El resto es el dígito esperado: de cero a nueve se utiliza la cifra correspondiente y para el resto 10 se emplea X. El peso cero impide que el carácter proporcionado influya en su propio cálculo. La capacidad devuelve el VIN normalizado en mayúsculas, el noveno carácter recibido, el calculado y el resto, para que usted pueda inspeccionar la decisión en lugar de recibir únicamente un valor verdadero o falso.
Cómo usar la validación con seguridad en formularios y procesos
Envíe el VIN exactamente como una cadena de 17 caracteres. Se aceptan minúsculas y se convierten a mayúsculas, pero no se eliminan en silencio espacios, signos, separadores decorativos ni saltos de línea. Esta exigencia es deliberada: una integración debe detectar entradas inesperadas, no modificar un identificador sin avisar. Cualquier otra longitud genera un error de entrada no válida, al igual que los caracteres ajenos al alfabeto VIN. Un VIN bien formado cuyo dígito no coincida devuelve un resultado normal con valid establecido como falso; no se trata como entrada mal formada. Así, una interfaz puede explicar si debe corregirse el formato o revisarse el identificador. En cargas masivas, conserve la fuente original junto al resultado normalizado, derive las discrepancias para revisión y no rechace registros legales o históricos solo por este cálculo si su jurisdicción o año de modelo puede seguir otras reglas. La automatización mediante API cuesta $0.002 por solicitud y el ejecutor del navegador realiza localmente el mismo cálculo determinista.
Qué puede hacer con ella
Detecte errores al registrar inventario
Compruebe un VIN escrito o escaneado antes de crear el registro y remita las discrepancias para cotejarlas con el vehículo.
Valide formularios de citas de taller
Distinga identificadores mal formados de VIN correctos cuyo noveno carácter no coincide con el dígito calculado.
Revise registros de vehículos importados
Añada un control de calidad determinista a la importación y mantenga la verificación oficial de identidad como paso independiente.
Preguntas frecuentes
¿Cuánto cuesta validar el dígito de un VIN?
La API cuesta $0.002 por solicitud. El ejecutor del navegador realiza gratis el mismo cálculo determinista en esta página.
¿Qué carácter es el dígito de control del VIN?
Es el noveno carácter del VIN de 17 caracteres. Puede ser una cifra de 0 a 9 o la letra X.
¿Por qué el dígito calculado puede ser X?
El cálculo utiliza módulo 11. Cuando el resto es 10, la representación estándar del dígito de control es X.
¿Un dígito válido demuestra que el vehículo es auténtico?
No. Solo comprueba la coherencia matemática. Consulte registros oficiales para identidad, titularidad, robos, revisiones y especificaciones.
¿Se admiten letras minúsculas en el VIN?
Sí. Se convierten a mayúsculas. No se eliminan espacios ni signos y se rechazan las letras I, O y Q.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/misc2/vin-check-digit-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"vin":"1M8GDM9AXKP042788"}'const res = await fetch("https://api.kit.forhosting.com/misc2/vin-check-digit-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"vin": "1M8GDM9AXKP042788"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/misc2/vin-check-digit-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"vin": "1M8GDM9AXKP042788"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/misc2/vin-check-digit-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"vin":"1M8GDM9AXKP042788"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"vin":"1M8GDM9AXKP042788"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/misc2/vin-check-digit-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"vin": "1M8GDM9AXKP042788"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "misc2.vin_check_digit_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |