Dígito de control UPC-A
El número de producto 01234567890 lleva el dígito de control 5, así que el UPC-A completo es 012345678905. Pegue un código entero de doce cifras de un proveedor o un lector para ver si el último dígito es correcto. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Número
- 01234567890
- Modo de cálculo
- Compute
- Entrada
- 01234567890
- Dígito de control
- 5
- Con dígito de control
- 012345678905
Los números de producto minorista en Norteamérica casi siempre terminan con un dígito de control UPC-A: once dígitos de carga que identifican al fabricante y al artículo, más un dígito final que demuestra que toda la cadena se escribió o escaneó sin un error de un solo dígito. Esta capacidad implementa la regla estándar GTIN-12 mod-10 usada en todo UPC-A de doce dígitos: las posiciones impares desde la izquierda se ponderan por tres, las pares por uno, y el dígito de control es la cantidad necesaria para alcanzar el siguiente múltiplo de diez. Use el modo compute cuando solo disponga del número de producto de once dígitos y necesite el dígito para una etiqueta, base de datos o generador de códigos de barras; use el modo validate cuando un socio, escáner o formulario envíe un código completo de doce dígitos y necesite un indicador valid claro más el dígito esperado para mensajes de error.
Cómo se calcula el dígito de control UPC-A
Un código UPC-A tiene siempre doce dígitos. Los once primeros forman el número de producto (a menudo un prefijo de empresa GS1 más una referencia de artículo); el duodécimo es el dígito de control. Para calcularlo, recorra los once dígitos de carga de izquierda a derecha con posiciones basadas en 1: multiplique cada dígito en posición impar por tres y cada dígito en posición par por uno, sume esos productos y tome el dígito de control como (10 menos esa suma módulo 10) módulo 10.
De forma equivalente, la cadena completa de doce dígitos incluido el de control debe tener una suma ponderada múltiplo de diez bajo los mismos pesos de posición. Es la misma familia de reglas mod-10 usada en GTIN-8, GTIN-12, GTIN-13 y GTIN-14; UPC-A es específicamente la forma de doce dígitos habitual en el embalaje de EE. UU. y Canadá.
El algoritmo es determinista y local: sin consulta de catálogo, sin llamada de red y sin reloj. Esta herramienta no expande UPC-E, no inventa prefijos de país EAN-13 y no afirma que un checksum válido signifique que el producto está autorizado para la venta: solo demuestra que la cadena de dígitos está bien formada según la regla UPC-A.
Frente a validadores de códigos de barras multiformato, la intención de búsqueda aquí es estrecha: quien necesita la calculadora de dígito de control UPC-A para cargas de once dígitos, no un comprobador general de EAN o ISBN.
Dónde encajan los dígitos de control UPC-A en flujos reales
Los equipos de catálogo y PIM reciben números de producto internos de once dígitos y deben añadir el dígito de control UPC-A oficial antes de imprimir etiquetas de estantería o publicar en mercados que rechazan GTIN inválidos. Los escáneres de almacén y las aplicaciones de recepción validan códigos de doce dígitos en el muelle para que una sola transposición no cree un SKU fantasma ni un desajuste de existencias.
Los trabajos de calidad de datos recorren cada columna UPC de una exportación CSV, llaman al modo validate y ponen en cuarentena las filas donde valid es false, capturando tanto ediciones humanas como errores de generadores en uno. No trate un UPC-A que pasa la comprobación como prueba de titularidad de marca o de registro GS1; solo demuestra que el dígito mod-10 es coherente con la carga bajo los pesos estándar.
Qué puede hacer con ella
Auditar columnas UPC en exportaciones de catálogo
Valide por lotes cada UPC de doce dígitos en un CSV de PIM o de socio y ponga en cuarentena las filas cuyo dígito de control ya no coincida con el valor esperado recalculado.
Preguntas frecuentes
¿Qué es un dígito de control UPC-A?
Es el duodécimo dígito de un código UPC-A, calculado con una suma ponderada mod-10 para que los errores de un solo dígito al escribir o escanear se detecten habitualmente antes de almacenar o imprimir el código.
¿Qué ocurre con longitud incorrecta, letras o guiones?
Las tareas de validación fallidas no se facturan.
¿Es gratuita la herramienta de dígito de control UPC-A?
La herramienta del navegador es gratuita y se ejecuta en local.
¿Cómo se calcula el dígito de control UPC-A?
Leyendo las once cifras desde la izquierda, multiplique las de posición impar por 3 y las de posición par por 1, y sume todo. El dígito de control es lo que lleva esa suma al siguiente múltiplo de diez, o 0 si ya lo es.
¿Un UPC-A es lo mismo que un EAN-13?
Pertenecen a la misma familia de reglas de control, pero el UPC-A es la forma de doce cifras, también llamada GTIN-12, habitual en envases de Estados Unidos y Canadá. Esta herramienta solo trata esa forma, no EAN-13 ni ISBN.
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/enc/upc-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"01234567890"}'const res = await fetch("https://api.kit.forhosting.com/enc/upc-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "01234567890"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/upc-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "01234567890"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/upc-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"01234567890"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"01234567890"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/upc-check", 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": "01234567890"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.upc_check",
"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. |
Notas técnicas
La entrada no numérica y las longitudes incorrectas fallan con invalid_input en lugar de un recorte silencioso, de modo que nunca almacene un código a medias. La misma aritmética pura se ejecuta gratis en el navegador y al precio publicado de la API.
Contrato de entrada, modos y comportamiento de error
Envíe un campo number que contenga solo caracteres del cero al nueve. Una longitud incorrecta es un error explícito que nombra el modo y la longitud enviada —once para compute, doce para validate— de modo que los formularios cliente puedan mostrar «se necesitan once dígitos» sin adivinar. Las cadenas vacías, el number ausente y los valores de mode inválidos fallan antes de cualquier suma ponderada y no se facturan. Prefiera compute cuando cree o complete números de producto; prefiera validate cuando condicione una consulta o importación a un código completo de un usuario o archivo de socio. Espacios, guiones, letras y puntos decimales se rechazan como entrada no numérica con invalid_input para que un valor recortado en silencio no llegue al almacenamiento. El modo compute es el predeterminado: el motor exige exactamente once dígitos, devuelve check_digit como cadena de un carácter y devuelve with_check como el UPC-A de doce dígitos que usted puede imprimir o persistir. El modo validate exige exactamente doce dígitos; la respuesta indica valid true cuando el dígito final coincide con el expected_check_digit recalculado, e incluye siempre payload (los once primeros dígitos), check_digit, expected_check_digit y length doce. Se aceptan alias como digits, upc y code para el mismo campo de carga, de forma que las integraciones que ya hablan de «upc» no necesiten renombrar. Como la ruta es parse puro sin reloj, fuente aleatoria ni red, el mismo cuerpo JSON produce siempre el mismo resultado JSON en la herramienta gratuita del navegador y en la API a $0.002 por solicitud correcta.
Dónde encajan los dígitos de control UPC-A en flujos reales
Los formularios de alta de comercio electrónico pueden recalcular expected_check_digit y mostrar una corrección amable cuando un vendedor pega un código con el último dígito mal escrito. En todo flujo el contrato es el mismo: solo dígitos, longitud fija por modo, JSON estructurado que usted puede probar con goldens, comportamiento idéntico en navegador gratuito y API prepago, e invalid_input honesto cuando la cadena no es una secuencia pura de dígitos de la longitud correcta.
Casos de integración
Completar un número de producto de 11 dígitos para etiquetas
Llame al modo compute con la carga de once dígitos, almacene with_check y envíe el UPC-A de doce dígitos a su impresora de códigos de barras o anuncio en el mercado.
Validar UPC-A escaneado o tecleado en la entrada
Cuando un escáner o formulario envíe doce dígitos, llame al modo validate y bloquee la consulta si valid es false, mostrando expected_check_digit para corregir un error de un solo dígito.
Preguntas técnicas
¿Cómo calculo un dígito de control UPC-A con esta API?
Haga POST con number en exactamente once dígitos y mode compute (o omita mode). La respuesta incluye check_digit y with_check (el UPC-A completo de doce dígitos).
¿Cómo valido un UPC-A completo de doce dígitos?
Haga POST con la cadena de doce dígitos y mode validate. La respuesta incluye valid, check_digit, expected_check_digit y payload (dígitos sin el último).