✓ Sin registro 🔒 Todo en tu navegador Lotes de 1 a 100 · CSV y JSON

Generador de código de barras EAN-13

EAN-13 con el dígito verificador que exige cualquier lector, Code128 para texto libre y códigos QR. Se dibujan en tu navegador y se descargan en PNG o en SVG para imprimir.

100 % privado. No hay servidor: los datos se generan en tu navegador y no se envían ni se guardan en ninguna parte.

Cómo funciona

Tres pasos, cero configuración

1

Elige el tipo

EAN-13 para productos de venta al público. Code128 si necesitas codificar texto o un código interno. QR para enlaces o datos más largos.

2

Escribe el contenido, o déjalo al azar

En el EAN-13 puedes elegir el prefijo de país y dejar que se calcule el verificador. En Code128 y QR escribes lo que quieras.

3

Descarga en PNG o SVG

El SVG no pierde definición al ampliarlo, que es lo que necesitas para imprimir una etiqueta. El PNG va bien para una pantalla.

El dígito verificador del EAN-13

Un EAN-13 son trece dígitos, y el último no es un dato: es un control que calcula el propio código. Se multiplican los doce primeros por pesos que alternan 1 y 3, se suman, y el verificador es lo que falta para llegar al siguiente múltiplo de diez:

function dvEan13(doce) {
  let suma = 0;
  for (let i = 0; i < 12; i++) suma += Number(doce[i]) * (i % 2 ? 3 : 1);
  return String((10 - (suma % 10)) % 10);
}

dvEan13("775123456789")   // el 13.º dígito
dvEan13("400638133393")   // "1"

El % 10 final importa: cuando la suma ya es múltiplo de diez, el verificador es 0, no 10. Y esto tiene una consecuencia muy práctica: un lector de códigos de barras comprueba ese dígito antes de aceptar la lectura. Si el verificador está mal, el escáner ni pita: el código no llega nunca a tu aplicación. Por eso los que genera esta herramienta lo llevan correcto, para que la prueba alcance de verdad a tu software.

Los prefijos de país

Los primeros dígitos identifican a la organización GS1 que asignó el rango. No indican dónde se fabricó el producto, sino dónde se registró la empresa:

PrefijoPaísPrefijoPaís
775Perú84España
779Argentina80 a 83Italia
780Chile400 a 440Alemania
770 y 771Colombia50Reino Unido
789 y 790Brasil00 a 09Estados Unidos y Canadá

Si tu sistema deduce el país de origen a partir del código, necesitas datos con prefijos reales: elígelos en el generador.

EAN-13, UPC-A y EAN-8: el cero que confunde

En Estados Unidos y Canadá se usa UPC-A, de doce dígitos. Y aquí está la trampa: un UPC-A es exactamente un EAN-13 con un cero delante. Son el mismo producto:

"012345678905"    // UPC-A, 12 dígitos
"0012345678905"   // el MISMO producto como EAN-13

La consecuencia para tu base de datos es directa: si guardas el código como número entero, el cero inicial desaparece y el UPC-A y el EAN-13 dejan de coincidir. Es el error clásico de los catálogos de producto, y la razón por la que un código de barras siempre debe guardarse como texto.

Existe además el EAN-8, de ocho dígitos, para envases muy pequeños donde no cabe el código completo. Si tu aplicación acepta códigos de producto, debería tragar las tres longitudes: 8, 12 y 13.

Code128: para cuando no vendes nada

El EAN-13 solo sirve para productos registrados en GS1. Para todo lo demás —un código interno de almacén, un número de expediente, una etiqueta de activo— el estándar es Code128, que codifica cualquier texto: letras, dígitos y símbolos, sin longitud fija.

Tiene tres subconjuntos —A, B y C— y el codificador elige el más eficiente automáticamente: el C comprime pares de dígitos, así que un código puramente numérico ocupa casi la mitad de ancho. No tienes que preocuparte por eso, pero explica por qué dos códigos de la misma longitud pueden dibujarse con anchos distintos.

Si vas a imprimir, cuida tres cosas

  • Descarga el SVG, no el PNG. El PNG se pixela al ampliar y el lector empieza a fallar. El SVG es vectorial: se imprime nítido a cualquier tamaño.
  • Deja la zona de silencio. Los márgenes blancos a los lados del código no son decoración: el lector los necesita para saber dónde empieza y acaba. Recortar la etiqueta al ras del código es la causa más común de lecturas fallidas.
  • No lo estires solo a lo ancho. Un código deformado cambia la proporción de las barras. Escálalo manteniendo la relación, o el escáner lo rechazará.

Qué probar con códigos sintéticos

  • El código como texto. Genera uno que empiece por cero, guárdalo y vuelve a leerlo. Si perdiste el cero, tienes un INT donde debería haber un VARCHAR.
  • Las tres longitudes. 8, 12 y 13 dígitos en el mismo campo de búsqueda de producto.
  • Verificador incorrecto. Cámbiale un dígito a mano y comprueba que tu aplicación lo rechaza antes de intentar buscarlo.
  • Lectura real. Descarga el PNG, ábrelo en pantalla y léelo con el escáner de tu móvil. Es la única prueba que confirma que el código está bien dibujado, no solo bien calculado.
  • Code128 con caracteres raros. Prueba con espacios, guiones y letras acentuadas: no todas las variantes las admiten, y conviene saber dónde está el límite de tu flujo.

Códigos válidos, productos inexistentes

Un EAN-13 generado aquí tiene el verificador correcto y un prefijo de país real, así que cualquier lector lo acepta como código bien formado. Pero no está registrado en GS1 y no corresponde a ningún artículo: no lo pongas en un producto que vayas a vender. Para eso hay que comprar un rango de códigos a GS1 de tu país.

Preguntas frecuentes

Dudas habituales

¿El EAN-13 generado corresponde a un producto real?

No. El dígito verificador es correcto y cualquier lector lo acepta como código bien formado, pero no está registrado en GS1 ni corresponde a ningún artículo. Para vender un producto hay que comprar un rango de códigos a GS1.

¿Por qué mi lector no lee el código?

Las tres causas habituales: el dígito verificador está mal y el escáner lo descarta sin avisar, no hay zona de silencio —los márgenes blancos a los lados—, o el código se imprimió desde un PNG ampliado y las barras salieron pixeladas. Descarga el SVG.

¿Qué diferencia hay entre EAN-13 y UPC-A?

El UPC-A tiene doce dígitos y se usa en Estados Unidos y Canadá; el EAN-13 tiene trece y se usa en el resto del mundo. Un UPC-A es exactamente un EAN-13 con un cero delante: es el mismo producto, y por eso el código debe guardarse como texto y no como número.

¿Cuándo uso Code128 en vez de EAN-13?

EAN-13 solo vale para productos registrados en GS1. Para códigos internos —almacén, expedientes, etiquetas de activo— usa Code128, que codifica cualquier texto sin longitud fija.

¿Puedo imprimir estos códigos?

Sí, descargando el SVG, que no pierde definición. Deja los márgenes blancos a los lados y no deformes la proporción al escalar. Recuerda que son códigos de prueba: no los pongas en productos de venta.

¿Qué prefijo corresponde a Perú?

El 775. España es el 84, Chile el 780, Colombia el 770 y 771, Brasil el 789 y 790, y Argentina el 779. El prefijo indica dónde se registró la empresa, no dónde se fabricó el producto.