Calcular dígito de control EAN-13, UPC-A y Code 128
Obtenga el dígito de control que le falta a un código de barras: para los dígitos 400638133393 de un EAN-13 es 1, y el código completo queda 4006381333931. Sirve para EAN-13, UPC-A y Code 128, conserva los ceros iniciales y rechaza caracteres sueltos. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Número
- 400638133393
- Simbología
- ean13
- Dígito de control
- 1
- Código de barras completo
- 4006381333931
El dígito de control de un código de barras es una pequeña protección aritmética que ayuda a los lectores y sistemas de catálogo a detectar errores de escritura. Introduzca la carga numérica, elija EAN-13, UPC-A o Code 128 Mod-103 y esta calculadora devolverá el valor exigido por esa simbología. La herramienta comprueba la longitud antes de calcular, conserva los ceros iniciales y trabaja de forma determinista sin consultar registros. Úsela al preparar fichas de producto, etiquetas, pruebas o procesos automáticos de importación.
Introduzca la carga útil, no un código ya completo
Empiece con los dígitos que contienen los datos y omita el dígito de control que desea calcular. Para EAN-13, introduzca exactamente doce dígitos de datos; el resultado proporciona el decimotercero y también devuelve el código completo de trece dígitos. Para UPC-A, introduzca exactamente once y obtendrá el duodécimo.
La calculadora rechaza espacios, signos, puntos decimales y cualquier carácter no numérico, ya que una limpieza silenciosa podría ocultar un error de transcripción. También rechaza cargas cuya cantidad de dígitos no corresponda a la simbología elegida. Este contrato explícito resulta útil cuando una columna de una hoja de cálculo o un catálogo reúne varios formatos: seleccione el estándar previsto en vez de deducirlo de la entrada.
El cálculo solo confirma coherencia matemática; no asigna prefijos empresariales, verifica propiedad ni demuestra que el número esté registrado para un producto real.
Cómo se calculan los dígitos de EAN-13 y UPC-A
EAN-13 y UPC-A emplean el mismo patrón de ponderación módulo diez. Desde el dígito de datos situado más a la derecha hacia la izquierda, la calculadora multiplica las posiciones alternas por tres y uno, suma los productos y elige el dígito que lleva el total al siguiente múltiplo de diez. Si la suma ya es divisible por diez, el dígito de control es cero.
Los nombres siguen siendo importantes porque las longitudes obligatorias difieren: EAN-13 tiene doce dígitos de carga antes del control y UPC-A tiene once. Un dígito correcto detecta todas las sustituciones de una sola cifra y muchas transposiciones habituales, por lo que ayuda en capturas y escaneos, pero no constituye una firma criptográfica. Dos o más cambios coordinados pueden conservar el mismo resultado.
Trátelo como una comprobación estructural rápida y aplique después las reglas comerciales adicionales de su catálogo.
Tratamiento de Code 128 Mod-103 numérico
Para Code 128 Mod-103, esta capacidad utiliza el juego C, la representación compacta destinada a datos numéricos agrupados por parejas. Introduzca una cantidad par de entre dos y noventa y ocho dígitos. Cada pareja se convierte en una palabra de código Code 128 con un valor de cero a noventa y nueve.
La suma de control comienza con el valor 105 de Start C y añade cada palabra de datos multiplicada por su posición, empezando en uno. El resto de dividir ese total entre 103 es el valor devuelto. Un generador de barras debe codificar esa palabra y agregar después el patrón de parada.
Esta calculadora no elige entre los juegos A, B y C ni optimiza cambios entre ellos; aceptar solo dígitos deja la suposición de codificación clara y reproducible. Use otro codificador si hay letras, puntuación o un último dígito impar que requiera cambiar de juego.
Qué puede hacer con ella
Preparar etiquetas de productos
Calcule el último dígito EAN-13 o UPC-A antes de enviar números aprobados al programa de diseño de etiquetas o generación de barras.
Comprobar un proceso de importación
Genere valores esperados para pruebas de catálogos y rechace registros cuya longitud no coincida con el estándar declarado.
Crear pruebas numéricas de Code 128
Obtenga la palabra de control Mod-103 del juego C al probar lectores, codificadores, etiquetas de almacén o integraciones.
Preguntas frecuentes
¿Debo incluir el dígito de control existente?
No. Introduzca doce dígitos para EAN-13, once para UPC-A o la carga numérica par de Code 128.
¿Un resultado correcto demuestra que el producto está registrado?
No. Solo demuestra que el valor de control cumple la regla aritmética elegida; no consulta registros de productos o empresas.
¿Por qué Code 128 exige una cantidad par de dígitos?
Esta capacidad usa el juego C, que codifica datos numéricos en parejas. El contenido mixto o impar requiere un codificador completo.
¿Cómo se calcula el dígito de control de un EAN-13?
Desde el último dígito de datos hacia la izquierda, las posiciones se multiplican alternando por tres y por uno, y los productos se suman. El dígito de control es el que lleva ese total al siguiente múltiplo de diez, o cero si ya lo es.
¿Qué errores detecta un dígito de control?
Cualquier dígito equivocado y muchos intercambios habituales de dígitos vecinos, por eso es tan útil al teclear y al escanear. No es un sello de seguridad: dos cambios coordinados pueden, en ocasiones, mantener el mismo dígito.
Herramientas relacionadas
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/web/barcode-check-digit \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"400638133393","symbology":"ean13"}'const res = await fetch("https://api.kit.forhosting.com/web/barcode-check-digit", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "400638133393",
"symbology": "ean13"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/barcode-check-digit",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "400638133393",
"symbology": "ean13"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/barcode-check-digit", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"400638133393","symbology":"ean13"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"400638133393","symbology":"ean13"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/barcode-check-digit", 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
{
"number": "400638133393",
"symbology": "ean13"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.barcode_check_digit",
"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.
Límites
timeout_sec | 30 |
max_crawl_pages | 25 |
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. |
Notas técnicas
Introduzca la carga útil, no un código ya completo
En la API, conserve el valor como texto para que cualquier cero inicial siga formando parte del código.
Cómo se calculan los dígitos de EAN-13 y UPC-A
Como la operación usa únicamente aritmética entera fija, una misma entrada y simbología siempre producen idéntica salida tanto en el navegador como mediante la API.
Tratamiento de Code 128 Mod-103 numérico
Puede ocupar uno, dos o tres caracteres decimales en la respuesta JSON, pero representa una sola palabra de control Code 128, no dígitos imprimibles que deban añadirse al texto original.
Preguntas técnicas
¿Por qué hay que enviar el número como texto?
El texto conserva exactamente los ceros iniciales. Un valor numérico JSON puede perderlos y cambiar la longitud requerida.
¿Cuánto cuesta una solicitud por API?
Cada solicitud por API cuesta $0.002. El mismo cálculo determinista también se ejecuta gratis en el navegador.