zplCloud Blog

GS1 Sunrise 2027: códigos de barras 2D en la caja – lo que necesitan ahora las etiquetas ZPL

A finales de 2027, las cajas del comercio minorista de todo el mundo deberían leer GS1 DataMatrix y códigos QR con GS1 Digital Link. El EAN-13 se mantiene. Cada regla con su fuente, ejemplos ZPL probados para ^BQ y ^BX y una forma de migrar automáticamente las plantillas existentes.

28 min de lectura zplCloud Team

A finales de 2027 la caja aprende a leer 2D

Banner “Sunrise 2027. 2D at the checkout.” con dos etiquetas de producto reales renderizadas por zplCore: delante, la misma etiqueta con un EAN-13 y un código QR con GS1 Digital Link; detrás, la versión actual solo con el EAN-13; debajo, un sol naciente

A finales de 2027, los escáneres de caja del comercio minorista de todo el mundo deberían leer, además de EAN/UPC, tres códigos de barras 2D: GS1 DataMatrix, código QR con GS1 Digital Link y Data Matrix con GS1 Digital Link. GS1 US lo llama «Sunrise 2027»; GS1 a nivel global, «Ambition 2027». El EAN-13 se mantiene y nadie está obligado a imprimir un código 2D. Si añade uno, va junto al código de barras lineal, con el mismo GTIN, y sigue las reglas de dimensión X, zona de silencio y ubicación de las GS1 General Specifications. Este artículo recoge cada regla con su fuente y ofrece ejemplos ZPL probados para ^BQ y ^BX, una etiqueta antes/después y una forma de comprobar y migrar automáticamente las plantillas existentes.

En resumen: 2027 es un objetivo para los escáneres del comercio minorista, no una fecha de retirada del EAN. Durante la transición, el código 2D se añade al envase, nunca sustituye al código de barras lineal. En ZPL a 203 dpi, eso significa: tamaño de módulo de 4 a 7 puntos, zona de silencio de 4 módulos alrededor del código QR y no más de 50 mm desde el centro del EAN.

Qué es Sunrise 2027 y qué no es

La formulación más clara está en la página de GS1 sobre la preparación de los escáneres: la industria se ha fijado el objetivo de que, a finales de 2027, todos los sistemas de punto de venta (POS) del comercio minorista sean capaces de leer y procesar un conjunto definido de códigos de barras 2D con estándares GS1, además de los códigos de barras lineales existentes. La guía de implementación global (Release 1.1.0, diciembre de 2025) concreta el mínimo: el POS debe identificar y decodificar el GTIN de cualquier código de barras lineal o 2D conforme a GS1, emitir un solo pitido y transmitir ese único GTIN. Es el modo de escaneo 1, el requisito mínimo para 2027.

Para la caja están aprobados exactamente tres códigos de barras 2D:

Código de barras 2DContenido (sintaxis)Identificador de simbología
GS1 DataMatrixSintaxis de cadena de elementos GS1 con FNC1, p. ej. (01)…(17)…(10)…]d2
Código QR con GS1 Digital LinkDirección web según la sintaxis de URI de GS1 Digital Link]Q1
Data Matrix con GS1 Digital LinkDirección web según la sintaxis de URI de GS1 Digital Link]d1

Lo que Sunrise 2027 no significa:

  • El EAN-13 no desaparece. La guía global indica que los códigos de barras lineales como EAN/UPC y GS1 DataBar «no desaparecerán y coexistirán con los códigos de barras 2D mientras sigan teniendo usos». GS1 Germany, GS1 Austria y GS1 Switzerland dicen lo mismo.
  • Nadie tiene que imprimir un código 2D en 2027. GS1 Germany afirma que las empresas que quieran seguir con el código de barras lineal no necesitan añadir un código 2D. GS1 US subraya que «no es necesario implementar todas las capacidades del 2D para esa fecha».
  • El 2D todavía no sustituye al código de barras lineal. GS1 General Specifications 26.0, sección 4.15.4: un GS1 DataMatrix, un código QR o un Data Matrix con Digital Link debe (SHALL) utilizarse además del EAN/UPC o del GS1 DataBar. La guía fija el umbral: solo cuando el 90 % de las soluciones de escaneo en el POS puedan procesar códigos de barras 2D conformes a GS1 se podrá prescindir del código lineal. No hay fecha para ello.
  • No es una ley. GS1 desarrolla estándares de adopción voluntaria. Las obligaciones solo surgen de los requisitos de los distribuidores o de una regulación propia, por ejemplo en el sector sanitario.

Un PDF de preguntas frecuentes más antiguo de GS1 Germany (de noviembre de 2022) todavía decía que a partir de 2028 los propietarios de marca elegirían entre el EAN y un código 2D. Los textos actuales vinculan la retirada del código lineal al umbral del 90 %, no a un año. La referencia son las General Specifications 26.0 y la guía 1.1.

Calendario e hitos

CuándoQuéFuente
2021Decisión de la Asamblea General global de GS1 sobre la migración a 2D en el POSGS1 Switzerland, FAQ
Feb. 2022Guía en alemán «Migration auf 2D Codes am POS», edición 1.1 (GS1 AT y GS1 DE)GS1 Austria
Nov. 2025Traducción alemana de la guía de implementación, edición 1.1GS1 Germany
Dic. 20252D Barcodes at Retail Point-of-Sale Implementation Guideline, Release 1.1.0GS1
Ene. 2026GS1 General Specifications Release 26.0 con la tabla 5-46 para 2D en el POSGS1
Jul. 2026Documento de posición 2.0.0: un único código de barras 2D para marcas de distribuidor y productos etiquetados en tiendaGS1
Ago. 2026GS1 Digital Link URI Syntax 1.7.0GS1
Finales de 2027Objetivo: el POS lee el GTIN de los tres códigos de barras 2D (al menos modo 1)GS1
DespuésSolo 2D en productos de marca, no antes de que el 90 % de las soluciones de escaneo en el POS sean compatibles con 2DGuía GS1 1.1, sección 4.1

GS1 mantiene una lista actualizada de forma continua en la que los fabricantes de escáneres, verificadores, impresoras y software de códigos de barras informan de su estado respecto a los criterios «2D capable»; en el momento de redactar este artículo, su fecha era el 8 de octubre de 2026. Entre los fabricantes de impresoras que figuran en ella están Zebra y TSC.

Situación por regiones: EE. UU., DACH y el resto del mundo

Estados Unidos. GS1 US trata el tema como «Sunrise 2027» y recomienda un enfoque gradual en tres fases (crawl, walk, run). Para las marcas: añadir códigos de barras 2D a los envases existentes y actualizar los códigos QR existentes a GS1 Digital Link con el GTIN; después, añadir datos como variantes y fechas de producción o de caducidad; por último, usar el 2D para la interacción con el consumidor. Para los distribuidores: instalar escáneres compatibles con Sunrise que lean 2D y extraigan el GTIN en el POS; después, añadir 2D a las marcas propias; por último, optimizar la seguridad, la trazabilidad y el inventario. En una encuesta a consumidores de GS1 US de 2025, el 79 % afirmó que es más probable que compre productos con un código QR escaneable que ofrezca información adicional del producto.

Alemania. GS1 Germany califica el doble marcado durante la transición de «in der Regel sinnvoll beziehungsweise erforderlich» (por lo general conveniente o necesario), porque todavía no todos los sistemas de caja procesan 2D. Menciona a dm y Beiersdorf como el primer caso en el POS. Una lista de control de 5 puntos de GS1 Germany aconseja empezar con un caso de uso y un grupo de productos, y probar con regularidad la impresión, la escaneabilidad y la integración de sistemas.

Austria. GS1 Austria indica que los códigos 2D complementarán al código de barras lineal clásico, no lo sustituirán, y que durante la fase de transición actual se requiere un código de barras 1D junto al código 2D. Los códigos 2D solo pueden leerlos escáneres basados en imagen; los escáneres láser clásicos no.

Suiza. GS1 Switzerland afirma que los códigos de barras EAN/UPC seguirán en el comercio minorista mucho después de 2027. Sobre la tecnología de caja, señala que la mayoría de los sistemas de punto de venta en Suiza ya pueden escanear códigos 2D y que a menudo basta con una actualización de software.

Otras regiones. GS1 señala que la transición avanza de forma progresiva y con calendarios distintos en todo el mundo. Entre sus casos de estudio figuran Woolworths en Australia, la tienda delicatessen Parla Deli en Brasil y 7-Eleven en Tailandia.

A quién afecta

QuiénQué hacer
Propietarios de marcaDecidir si se añade un código de barras 2D, cuál y en qué productos, definir el dominio de Digital Link, adaptar envases y etiquetas.
DistribuidoresConfigurar el software del escáner en uno de los modos 1 a 3, preparar el software del POS para datos adicionales, un solo pitido por artículo cuando haya dos códigos de barras.
Impresión de etiquetas e ITPlantillas ZPL, etiquetas de balanza y de productos frescos, resolución de impresora, fuentes de datos para lote y fechas.
Proveedores de software e impresorasCriterios GS1 «2D capable»: ]d2, ]d1, ]Q1, dimensión X, zona de silencio y calidad de impresión según las tablas de especificación de símbolos.
Sector sanitario y farmacéuticoSigue con GS1 DataMatrix, ver más abajo.

Los productos etiquetados en tienda son la palanca más rápida. El documento de posición de GS1 de julio de 2026 menciona los productos de charcutería y panadería y las marcas de distribuidor como ámbitos en los que un distribuidor ya puede trabajar con un único código de barras 2D, porque controla él mismo la etiqueta, el escáner y el POS. El requisito es, como mínimo, el modo de escaneo 2. Estas etiquetas suelen salir de balanzas e impresoras de etiquetas, con frecuencia en ZPL.

Sector sanitario. Aquí el sector eligió ya a principios de los años 2000 GS1 DataMatrix como único código de barras 2D; según la guía, también es el código de barras 2D preferido para los productos sanitarios que se escanean en la caja del comercio minorista. En el sector sanitario, GS1 Digital Link no se codifica en un código de barras 2D. En EE. UU., la FDA exige para los productos sanitarios un UDI compuesto por un identificador de dispositivo y un identificador de producción (lote, número de serie, fecha de caducidad o de fabricación), en texto legible y en formato legible por máquina. Para los medicamentos con receta, la DSCSA prescribe un identificador de producto (un número basado en el NDC con número de serie, lote y fecha de caducidad), que figura en el envase en un código de barras 2D Data Matrix. Sunrise 2027 no cambia ninguna de estas obligaciones.

Qué aporta el 2D en la caja

El EAN-13 solo contiene el GTIN. Un código de barras 2D puede contener además el lote, la fecha de caducidad o de consumo preferente y el número de serie. Entre los casos de uso que enumera la guía de GS1:

  • Bloquear la venta de productos caducados en la caja, porque la fecha de caducidad está en el código de barras.
  • Retiradas selectivas a nivel de lote en lugar de productos completos.
  • Menos desperdicio alimentario y rebajas automáticas en función de la fecha. Según GS1 Germany, Woolworths informa de hasta un 40 % menos de desperdicio alimentario.
  • Información para el consumidor: un código QR con GS1 Digital Link abre una página web con la cámara normal del móvil y, al mismo tiempo, se escanea en la caja.
  • Pasaporte digital de producto: según la Comisión Europea, un soporte de datos como un código QR vincula el producto físico con su DPP; para determinadas baterías, el DPP será obligatorio el 18 de febrero de 2027, y los actos delegados para textiles, aluminio y neumáticos están previstos para 2027, seguidos de un periodo de transición de al menos 18 meses. Más información en nuestro artículo Código QR GS1 y pasaporte digital de producto: un solo código para la caja y para el cliente.

Cómo se construye una URI de GS1 Digital Link

https://example.com/01/09506000134352/10/L2610A?15=271231
└──────┬──────────┘└──────┬─────────┘└───┬────┘└───┬────┘
  dominio (+ ruta)  clave primaria    calificador  atributo
                      (01) GTIN-14      (10) lote  (15) cons. pref.

Las reglas de GS1 Digital Link URI Syntax 1.7.0 (agosto de 2026):

  • Cualquier dominio. Entre el dominio y /01/ puede haber tantos segmentos de ruta propios como se quiera, por ejemplo https://example.com/gs1/01/…. GS1 recomienda a los propietarios de marca usar su propio dominio; https://id.gs1.org es el dominio de referencia de GS1.
  • El GTIN siempre tiene 14 dígitos. Desde la versión 1.4.0, un GTIN-13 se completa con un cero a la izquierda: el EAN 9506000134352 pasa a ser /01/09506000134352.
  • Los calificadores de clave van en la ruta, en un orden fijo: para el GTIN, /22/ (variante de producto de consumo), /10/ (lote), /21/ (número de serie). /21/…/10/… no es válido.
  • Los atributos van en la cadena de consulta: las fechas como 15 (consumo preferente) o 17 (caducidad) aparecen como ?15=271231.
  • Sin formas abreviadas. Los «convenience alphas» como /gtin/ en lugar de /01/ se eliminaron en la versión 1.3.0.
  • Sin comprimir. En la caja, la URI debe usar la forma sin comprimir, según la tabla 5-46 de las General Specifications.
URI¿Válida?
https://example.com/01/09506000134352Sí, solo GTIN
https://example.com/gs1/01/09506000134352/10/L2610A?15=271231Sí, ruta propia, lote, consumo preferente
https://example.com/01/9506000134352No, el GTIN solo tiene 13 dígitos
https://example.com/01/09506000134352/21/0001/10/L2610ANo, el lote debe ir antes del número de serie
https://example.com/gtin/09506000134352No, forma abreviada eliminada

Un consejo de la guía de GS1: los dígitos y las letras mayúsculas ocupan menos espacio en un código QR que las minúsculas y los caracteres especiales. Si asigna usted mismo los números de lote, manténgalos numéricos o en mayúsculas.

¿GS1 DataMatrix, Data Matrix o código QR?

Tres códigos de barras 2D renderizados por zplCore con el mismo contenido y el mismo tamaño de módulo: GS1 DataMatrix de 18 × 18 módulos, Data Matrix con GS1 Digital Link de 26 × 26 módulos y código QR con GS1 Digital Link de 33 × 33 módulos

Los tres códigos de barras de arriba contienen GTIN, lote y fecha de consumo preferente, impresos con 4 puntos por módulo a 203 dpi (0,50 mm). El GS1 DataMatrix mide 18 × 18 módulos, es decir, 9,0 mm. El Data Matrix con Digital Link necesita 26 × 26 módulos (13,0 mm) y el código QR, 33 × 33 módulos (16,5 mm). Hemos renderizado todos los códigos de barras de este artículo con zplCore y con Labelary y los hemos decodificado con ZXing; ambos renderizadores devuelven los mismos datos y posiciones.

CriterioGS1 DataMatrixCódigo QR + Digital LinkData Matrix + Digital Link
La cámara del móvil abre una página webNo, hace falta una appSíNo, hace falta una app
Tamaño con el mismo contenidoel más pequeñoel más grandepequeño
Sector sanitarioaprobado a nivel mundialno aplicableno aplicable
Escáneres de cajaa menudo basta con activarlorequiere actualización de softwarerequiere actualización de software

Conclusión: código QR con Digital Link cuando deban escanear los consumidores. GS1 DataMatrix cuando falte espacio, no se necesite un enlace web o el producto sea sanitario. El Data Matrix con Digital Link es la opción intermedia para envases pequeños que necesitan un enlace web.

Calidad de impresión: dimensión X, zona de silencio, ubicación, HRI

Las dimensiones figuran en las GS1 General Specifications, Release 26.0 (enero de 2026), sección 5.12.3.1, tabla 5-46 «Symbol specification table 1 addendum 2 for 2D barcodes». Se aplica a las unidades comerciales que se escanean en el punto de venta del comercio minorista:

Código de barras 2DDimensión X mín.ObjetivoMáx.Zona de silencioCalidad mínima
GS1 DataMatrix (ECC 200)0,396 mm0,495 mm0,990 mm1X en los cuatro lados1.5/12/660
Data Matrix (GS1 Digital Link URI)0,396 mm0,495 mm0,990 mm1X en los cuatro lados1.5/12/660
Código QR (GS1 Digital Link URI)0,396 mm0,495 mm0,990 mm4X en los cuatro lados1.5/12/660

Los módulos 2D son, por tanto, 1,5 veces la dimensión X de los códigos de barras lineales. Para los artículos que también se escanean en la distribución general se aplica la tabla 5-49 (tabla de especificación de símbolos 3, addendum 1), con 0,743 a 0,990 mm.

En ZPL, la dimensión X es un número entero de puntos. De ahí resultan estos tamaños de módulo permitidos (parámetro 3 de ^BQ, parámetro 2 de ^BX):

Resolución de impresora1 puntoTamaño de módulo permitidoCercano al objetivo de 0,495 mm
203 dpi (8 puntos/mm)0,125 mm4 a 7 puntos4 puntos = 0,500 mm
300 dpi (12 puntos/mm)0,085 mm5 a 11 puntos6 puntos = 0,508 mm
600 dpi (24 puntos/mm)0,042 mm10 a 23 puntos12 puntos = 0,508 mm

Un error frecuente se esconde en el código de barras lineal contiguo: la tabla 5-44 fija el mínimo del EAN-13 en 0,264 mm. ^BY2 a 203 dpi solo da 0,250 mm, por debajo de ese mínimo; ^BY3 (0,375 mm) es el primero que cumple. A 300 dpi, ^BY3 (0,254 mm) es demasiado estrecho y ^BY4 (0,339 mm) cumple. La altura mínima de las barras varía en proporción: 22,85 mm con 0,330 mm, es decir, unos 26 mm o 208 puntos con ^BY3 a 203 dpi.

Más reglas:

  • Zona de silencio: 1 módulo alrededor de un Data Matrix, 4 módulos alrededor de un código QR. ZPL no dibuja la zona de silencio, así que debe quedar libre de textos y recuadros.
  • Ubicación: las pruebas de GS1 demostraron que el código de barras 2D debe estar a menos de 50 mm del centro del código de barras lineal para que la caja alcance de 40 a 70 artículos por minuto.
  • Mismo GTIN: todos los códigos de barras de un artículo deben codificar el mismo GTIN (sección 4.15.1).
  • HRI: un código de barras 2D junto a un EAN-13 con HRI no necesita su propio texto legible (sección 4.14.2). Si es el único código de barras, muestra (01) y el GTIN de 14 dígitos.
  • Verificación: la calidad se mide según ISO/IEC 15415. 1.5/12/660 significa una calificación global de al menos 1,5, número de referencia de apertura 12 (0,30 mm) y una longitud de onda de 660 nm.

Ejemplos ZPL, probados con zplCore y Labelary

Código QR con GS1 Digital Link (^BQ)

^XA
^PW406
^LL406
^FO40,40^BQN,2,4^FDMA,https://example.com/01/09506000134352/10/L2610A?15=271231^FS
^XZ

^BQN,2,4 significa orientación normal, QR modelo 2, 4 puntos por módulo (0,50 mm a 203 dpi). Los dos primeros caracteres de ^FD son el nivel de corrección de errores (M = 15 %) y el modo de entrada (A = automático). Una corrección de errores mayor agranda el símbolo; GS1 deja la elección al caso de uso. El símbolo se decodifica con el identificador de simbología ]Q1 y exactamente esta URI. Una nota sobre la posición: en zplCore y Labelary, el código QR empieza por debajo de la coordenada ^FO, desplazado la altura de barra ^BY vigente (10 puntos sin ^BY); téngalo en cuenta al colocarlo.

GS1 DataMatrix con FNC1 (^BX)

^XA
^PW406
^LL406
^FO40,40^BXN,4,200,,,,_^FD_101095060001343521527123110L2610A^FS
^XZ

^BXN,4,200,,,,_ significa 4 puntos por módulo, calidad 200 (ECC 200, obligatoria para GS1) y _ como carácter de escape. _1 al principio genera el FNC1 que convierte un Data Matrix en un GS1 DataMatrix. Decodificado: ]d2 con (01)09506000134352(15)271231(10)L2610A.

El orden es intencionado. El GTIN (01) y la fecha (15) tienen una longitud predefinida y no necesitan separador. El lote (10) tiene longitud variable y va al final, así que tampoco necesita separador. Si un campo de longitud variable queda en medio, lo sigue un _1 como separador:

^FO40,40^BXN,4,200,,,,_^FD_1010950600013435210L2610A_115271231^FS

Así se obtienen los mismos datos, pero un símbolo de 20 × 20 módulos en lugar de 18 × 18. Un error que cometimos nosotros mismos durante las pruebas: escribir _10L2610A justo después del GTIN produce FNC1 más «0L2610A» en lugar del lote. Detrás de un campo de longitud predefinida nunca va un FNC1.

Sin el parámetro de calidad 200, ^BX genera el antiguo tipo ECC 000, que no es válido para GS1. Un Data Matrix con Digital Link (]d1) no necesita ningún FNC1: ^BXN,4,200^FDhttps://example.com/01/…^FS.

Antes y después: la misma etiqueta con 2D

La etiqueta original, de 4 × 2 pulgadas a 203 dpi, solo con un EAN-13:

Etiqueta de producto renderizada por zplCore, 4 × 2 pulgadas: ACME FOODS, Oat Drink Barista 1 L, lote L2610A, consumir preferentemente antes del 31.12.2027 y, debajo, solo un EAN-13 con el GTIN 9506000134352
^XA
^CI28
^PW812
^LL406
^FO40,28^A0N,26,26^FDACME FOODS^FS
^FO40,60^A0N,48,48^FDOat Drink Barista 1 L^FS
^FO40,118^A0N,28,28^FDLOT L2610A   BEST BEFORE 31.12.2027^FS
^FO60,150^BY3,3,1^BEN,208,Y,N^FD950600013435^FS
^XZ

Tras la migración con zplCore (comando más abajo), a la derecha del EAN-13 aparece un código QR con GS1 Digital Link, con el mismo GTIN más el lote y la fecha de consumo preferente:

La misma etiqueta de producto renderizada por zplCore tras la migración: el EAN-13 a la izquierda, sin cambios, y a su derecha un código QR con la URI de GS1 Digital Link https://example.com/01/09506000134352/10/L2610A?15=271231
^FO60,150^BY3,3,1^BEN,208,Y,N^FD950600013435^FS
^FX zplCore GS1 2D migration
^BY3,3,10^FO394,243^BQN,2,4^FDMA,https://example.com/01/09506000134352/10/L2610A?15=271231^FS^BY3,3,1

El código QR mide 16,5 mm de lado, con 4 puntos (0,500 mm) por módulo y una zona de silencio de 16 puntos. Su centro está a unos 33 mm del centro del EAN-13, muy por debajo de los 50 mm. En zplCore y Labelary, ambos códigos de barras devuelven el mismo GTIN 09506000134352. El GTIN 9506000134352 es un GTIN de ejemplo de GS1 y example.com es un dominio reservado para ejemplos.

Comprobar y migrar plantillas con zplCore

zplCore es el motor ZPL de zplCloud. Incluye dos herramientas para Sunrise 2027: una verificación previa frente a las reglas de GS1 y un asistente de migración que añade el código de barras 2D a las etiquetas ZPL existentes. Ambas renderizan la etiqueta y miden la geometría impresa en lugar de limitarse a leer el texto. La documentación está en Verificación previa de conformidad y GS1 Digital Link y migración a Sunrise 2027.

Verificación previa en la línea de comandos

Una etiqueta deliberadamente incorrecta: EAN-13 con ^BY2, código QR con 3 puntos por módulo, un GTIN de 13 dígitos y el número de serie antes del lote:

^FO60,150^BY2,3,1^BEN,150,Y,N^FD950600013435^FS
^FO330,170^BQN,2,3^FDMA,https://example.com/01/9506000134352/21/0001/10/L2610A^FS

La verificación previa detecta:

$ zplcore comply bad.zpl --pack sunrise --dpi 203
bad.zpl:8:1: error ZPL3210: label 1 ^BE: ^BE encodes GTIN 09506000134352, ^BQ encodes 9506000134352. [GS1 General Specifications 26.0 §4.15.1 rules 2 and 8]
bad.zpl:9:1: error ZPL3202: label 1 ^BQ: Digital Link URI "https://example.com/01/9506000134352/21/0001/10/L2610A": key qualifiers of (01) must be in the order /22, /10, /21 or /235 (each optional, alternatives not mixed). [GS1 Digital Link URI Syntax 1.7.0 (gs1path grammar, qualifier order, 14-digit GTIN, percent-encoding); GS1 General Specifications 26.0 §3, §7.9]
bad.zpl:9:1: error ZPL3202: label 1 ^BQ: Digital Link URI "https://example.com/01/9506000134352/21/0001/10/L2610A": the GTIN has 13 digits; a GS1 Digital Link URI needs 14 (pad GTIN-8/12/13 with leading zeros). [GS1 Digital Link URI Syntax 1.7.0 (gs1path grammar, qualifier order, 14-digit GTIN, percent-encoding); GS1 General Specifications 26.0 §3, §7.9]
bad.zpl:9:1: error ZPL3207: label 1 ^BQ: QR Code (Digital Link) X-dimension 0.375 mm (3 dots at 203 dpi) is outside 0.396–0.99 mm. [GS1 General Specifications 26.0 §5.12.3.1 Table 5-46]
    fix: Use a module size of 4–7 dots at 203 dpi.
1 label(s) at 203 dpi, packs sunrise GenSpecs 26.0 / DL 1.7.0: 4 error(s), 0 warning(s), 0 info(s). Pre-check only, not a certification.

El paquete sunrise no avisa del EAN-13 demasiado estrecho porque comprueba la parte 2D; para el código de barras lineal rige la tabla 5-44 (ver más arriba). Con --annotate, zplCore dibuja los hallazgos directamente sobre la etiqueta:

Etiqueta anotada por zplCore: el EAN-13 está marcado con la regla ZPL3210 y el código QR demasiado pequeño con las reglas ZPL3202 y ZPL3207

El paquete sunrise abarca 13 reglas, entre ellas: hay un soporte 2D con el GTIN, sintaxis de Digital Link, ECC 200, dimensión X según la tabla 5-46, zona de silencio, el código de barras lineal sigue presente, el mismo GTIN en todos los códigos de barras y símbolos recortados o sobreimpresos. Por cierto, la etiqueta original de arriba da un error (ZPL3201, sin soporte 2D), porque el paquete comprueba la preparación para 2D. Una etiqueta solo con un EAN-13 sigue siendo válida según las reglas de GS1. Con --format sarif, los hallazgos van a GitHub code scanning, y el código de salida 1 detiene el pipeline de CI.

Migración en la línea de comandos

$ zplcore gs1 migrate before.zpl --domain https://example.com --add 10=L2610A --add 15=271231 -o after.zpl
label 1: migrated – added a QR Code with GS1 Digital Link URI with GTIN 09506000134352 right of the EAN-13 (^BE, line 8), bottom-aligned
  source: EAN-13 ^BE (line 8), GTIN 09506000134352
  added: QR Code with GS1 Digital Link URI at x=394 y=253 dots (49.3 / 31.7 mm), 132 × 132 dots (16.5 × 16.5 mm), module 4 dots = 0.500 mm, quiet zone 16 dots
  placement: right of the EAN-13 (^BE, line 8), bottom-aligned
  uri: https://example.com/01/09506000134352/10/L2610A?15=271231
  data: (01)09506000134352(15)271231(10)L2610A
  zpl: ^BY3,3,10^FO394,243^BQN,2,4^FDMA,https://example.com/01/09506000134352/10/L2610A?15=271231^FS^BY3,3,1
sunrise pre-check of the migrated ZPL: 0 error(s), 0 warning(s), 0 info(s)
result: ok – 1 of 1 label(s) migrated, 0 counting sunrise error(s)
GS1 2D migration assistant (pre-check, not a certification): verify the printed label with a barcode verifier and your GS1 Member Organisation or retailer.

El asistente lee el GTIN del EAN-13. En esta etiqueta, el lote y la fecha de consumo preferente solo están impresos como texto, por eso se añaden con --add; si hay un GS1-128 o un GS1 DataBar Expanded, los toma de ahí por sí mismo. Si no encuentra un área libre con la zona de silencio, no cambia nada e informa del espacio necesario; --extend-label alarga la etiqueta en su lugar. --carrier datamatrix añade un GS1 DataMatrix en lugar del código QR.

Lo mismo con el SDK de C#

using ZplCore.Barcodes;
using ZplCore.Compliance;
using ZplCore.Tools;

var report = ZplCompliance.Check(zpl, CompliancePacks.Sunrise2027, new ComplianceOptions { Dpi = 203 });
foreach (var f in report.Findings)
    Console.WriteLine(f); // label 1: ZPL3201 error: No GS1 DataMatrix or QR Code / Data Matrix with GS1 Digital Link URI carrying the GTIN.

var options = new Gs1MigrationOptions
{
    Carrier = Gs1MigrationCarrier.QrCodeDigitalLink, // o DataMatrixElementString
    DigitalLinkStem = "https://example.com",         // su dominio; si no, https://id.gs1.org
    Dpi = 203,
};
options.AdditionalElements.Add(new Gs1Element("10", "L2610A"));
options.AdditionalElements.Add(new Gs1Element("15", "271231"));

var migration = ZplGs1Migration.Migrate(zpl, options);
File.WriteAllText("after.zpl", migration.MigratedZpl);
Console.WriteLine(migration.ToText()); // ubicación y verificación previa sunrise del resultado

Hemos ejecutado este fragmento con la etiqueta original; su salida coincide con la de la línea de comandos anterior.

Importante: zplCore ofrece una verificación previa y un asistente de migración, no una certificación. Un informe vacío solo significa que no se ha activado ninguna regla. Un verificador de códigos de barras mide la calidad de impresión de la etiqueta terminada; la aprobación la da el distribuidor o su organización miembro de GS1.

En zplCloud sin código

Sin instalar nada, la herramienta gratuita Migración Sunrise 2027 hace lo mismo en el navegador: pegue una etiqueta ZPL con EAN/UPC, GS1-128, ITF-14 o GS1 DataBar y el GTIN, junto con lote, fecha de caducidad y número de serie, pasa a un código QR con GS1 Digital Link o a un GS1 DataMatrix. La herramienta coloca el código en un área libre con su zona de silencio, vuelve a comprobar el resultado con las reglas de Sunrise 2027 y muestra el antes y el después lado a lado.

En el diseñador de zplCloud, cada elemento de código de barras tiene una sección GS1: elegir identificadores de aplicación, vincular valores, elegir Digital Link para el código QR; el editor coloca los separadores por sí mismo. Para códigos de barras sueltos están las herramientas gratuitas GS1 AI QR Code a ZPL y GS1 AI DataMatrix a ZPL, y Comprobar código de barras revisa los ya impresos. Todos los identificadores de aplicación, con su formato y significado, están en la Base de datos GS1 AI.

Lista de control para equipos

  • Hacer inventario: ¿qué plantillas llevan un EAN/UPC (^BE, ^BU, ^B8, ^B9) o GS1 DataBar (^BR)? ¿En qué impresoras y con qué resolución se imprimen?
  • Elegir un caso de uso: información al consumidor (código QR con Digital Link), caducidad y lote en la caja (GS1 DataMatrix o QR), poco espacio (GS1 DataMatrix). Empezar con un grupo de productos.
  • Definir el Digital Link: dominio y ruta propios, con redirección a una página de producto existente. GTIN de 14 dígitos, orden 22/10/21, fechas en la cadena de consulta, sin comprimir.
  • Aclarar los datos: ¿el lote y las fechas vienen del ERP, de la balanza o de la línea en el momento de imprimir? Datos variables significa imprimir en la línea o en la impresora de etiquetas, no en envases preimpresos.
  • Dimensiones según la tabla 5-46: módulo 2D de 0,396 a 0,990 mm (203 dpi: 4 a 7 puntos). EAN-13 de al menos 0,264 mm (203 dpi: ^BY3 o más ancho).
  • Comprobar el diseño: zona de silencio de 1X o 4X, a menos de 50 mm del centro del EAN, el mismo GTIN, HRI según la sección 4.14.2.
  • Verificación previa automática: zplcore comply --pack sunrise en la CI, zplcore gs1 migrate para las plantillas existentes.
  • Medir la impresión: un verificador de códigos de barras según ISO/IEC 15415, objetivo 1.5/12/660 o mejor; la batería de pruebas de GS1 y los escáneres de caja reales de su socio comercial.
  • Distribuidores: configurar el modo del escáner (al menos modo 1), un pitido para dos códigos de barras, software del POS preparado para datos adicionales; marcas de distribuidor y charcutería como piloto.
  • Coordinarse: con los socios comerciales y su organización miembro de GS1.

Preguntas frecuentes

¿Tengo que imprimir un código de barras 2D en mis productos antes de finales de 2027?

No. Sunrise 2027 es un objetivo sobre lo que pueden leer las cajas. GS1 Germany dice explícitamente que las empresas que quieran seguir con el código de barras lineal no necesitan añadir un código 2D. Cada distribuidor puede fijar sus propios requisitos.

¿Se va a suprimir el EAN-13?

No. GS1 Germany, GS1 Austria y GS1 Switzerland lo dejan claro, igual que la guía global. Los códigos de barras lineales se mantienen mientras sigan teniendo usos.

¿Puedo sustituir el EAN-13 por un código QR?

Por ahora no en productos de marca. Las General Specifications 26.0 exigen el código de barras 2D además del EAN/UPC o del GS1 DataBar hasta que el 90 % de las soluciones de escaneo en el POS puedan procesar 2D. La excepción es el circuito cerrado de un distribuidor: según el documento de posición de GS1, las marcas de distribuidor y los productos etiquetados en tienda pueden llevar un único código de barras 2D si las cajas del propio distribuidor admiten al menos el modo 2.

¿Necesito un dominio propio para GS1 Digital Link?

La sintaxis admite cualquier dominio con cualquier ruta delante, y GS1 recomienda usar el propio. Basta con una subruta en el dominio de la empresa con una redirección. Nuestro artículo sobre el pasaporte digital de producto explica cómo hacerlo sin un servidor nuevo.

¿Qué nivel de corrección de errores debe usar el código QR?

GS1 no prescribe ninguno: una corrección de errores mayor es más robusta, pero agranda el símbolo. Un ejemplo de la guía de GS1 usa el nivel M (15 %), igual que nuestros ejemplos. Lo importante es que el tamaño de módulo se mantenga dentro de la tabla 5-46.

¿Puede una impresora de 203 dpi imprimir códigos de barras conformes con Sunrise?

Sí. A 203 dpi se permiten de 4 a 7 puntos por módulo, y 4 puntos dan 0,500 mm, casi exactamente el objetivo de 0,495 mm. El cuello de botella suele ser más bien el EAN-13 contiguo, que necesita al menos ^BY3 a 203 dpi.

¿Necesita el código QR su propio texto legible?

No, si está junto a un EAN-13 con HRI. Si el código de barras 2D es el único código de barras, muestra (01) seguido del GTIN de 14 dígitos (General Specifications, sección 4.14.2).

¿Qué pasa con los medicamentos y los productos sanitarios?

Siguen con GS1 DataMatrix y cadenas de elementos, y con las obligaciones existentes como UDI o DSCSA. En el sector sanitario, GS1 Digital Link no se codifica en el código de barras 2D.

¿Es la comprobación de zplCore una certificación de GS1?

No. Es una verificación previa frente a reglas publicadas y un asistente para la migración. La aceptación depende del verificador, del distribuidor y de su organización miembro de GS1.

Fuentes

Todas las fuentes se consultaron el 19 de octubre de 2026.

GS1, GS1 DataMatrix y GS1 Digital Link son marcas registradas de GS1 AISBL y aquí se utilizan únicamente con fines descriptivos. zplCloud y zplCore no son productos de GS1.

Más artículos