Unitag
Inicio de sesión

El GTIN en un código QR GS1 Digital Link


Esta página es la referencia técnica para poner un GTIN en un código QR que una caja pueda escanear y un teléfono pueda abrir. Trata el identificador, la URI que lo contiene, lo que hace con él cada tipo de lector y lo que hay que comprobar antes de enviar un diseño a imprenta. El generador en sí se describe en Crear un Digital Link.

Sigue el estándar GS1 Digital Link URI Syntax 1.7.0 y el GS1-Conformant Resolver Standard 1.2.1, ambos ratificados en agosto de 2026, así como las GS1 General Specifications 26.0. Si esta página y un estándar no coinciden, prevalece el estándar.

Por qué cambia la caja

Sunrise 2027 es el objetivo del sector, coordinado por GS1, de que los sistemas de punto de venta acepten los códigos de barras 2D de GS1, además de los EAN-13 y UPC-A que ya leen, antes de que acabe 2027. En productos de consumo, el símbolo 2D en cuestión es un código QR con una URI GS1 Digital Link, porque ese mismo símbolo también se abre con la cámara de un teléfono. El GS1 DataMatrix, que contiene cadenas de elementos GS1 y no una dirección web, sigue siendo la norma en el sector sanitario y no se trata aquí.

Es una fecha de preparación de los lectores, no de retirada de los códigos de barras lineales. Un envase que solo lleve un código 2D solo es seguro cuando todos los minoristas que lo venden escanean 2D en todas sus cajas; hasta entonces, ambos símbolos conviven en el envase. La sección sobre la migración, más abajo, trata ese periodo.

El calendario, los minoristas implicados y lo que hay que preparar se tratan en el blog, en GS1 Sunrise 2027: the QR code deadline, and what to prepare in 2026 (en inglés). Esta página se ciñe a la codificación.

Del número del código de barras a 14 dígitos

Un GTIN existe en cuatro longitudes. Una URI Digital Link solo acepta una de ellas.

  • GTIN-8 (EAN-8): envases pequeños donde no cabe un EAN-13.

  • GTIN-12 (UPC-A): sobre todo en Norteamérica.

  • GTIN-13 (EAN-13): unidades de consumo en el resto del mundo.

  • GTIN-14: unidades comerciales como cajas y embalajes exteriores, cuyo primer dígito indica el nivel de embalaje.

Desde la versión 1.4.0 de la sintaxis URI, el GTIN de una URI Digital Link se escribe siempre con 14 dígitos: un GTIN-8, GTIN-12 o GTIN-13 se completa por la izquierda con ceros. La abreviatura alfabética /gtin/ en lugar de /01/ quedó obsoleta en la 1.2 y se eliminó en la 1.3.0. Ambas formas antiguas son heredadas, y no se espera que el software de lectura nuevo las acepte.

Completar con ceros no cambia el número. El mismo GTIN, tal como aparece bajo el código de barras lineal y tal como se escribe en la URI:

  • GTIN-8 01234565/01/00000001234565
  • GTIN-12 614141000012/01/00614141000012
  • GTIN-13 9520123456788/01/09520123456788

El dígito de control es el último, y los ceros añadidos no lo invalidan porque se calcula desde la derecha. Deje aparte el dígito de control, multiplique los demás dígitos alternativamente por 3 y por 1, empezando por 3 en el dígito contiguo, y súmelos. El dígito de control es lo que lleva esa suma hasta el siguiente múltiplo de diez. Para 952012345678 más su dígito de control: la suma ponderada es 102, así que el dígito de control es 8.

Un dígito de control erróneo no detiene a un teléfono: la URI se abre igualmente. Detiene la caja, que valida el GTIN que extrae del código. El generador comprueba los datos GS1 antes de producir un código, y esa es una razón para construir las URI Digital Link con una herramienta y no a mano.

Tres reglas sobre qué GTIN va en el código:

  • Tiene que ser suyo. El GTIN debe proceder de su prefijo de empresa GS1 o de una licencia de GTIN individual de su organización miembro de GS1. La validación comprueba la estructura, no el titular: un GTIN bien formado que no le pertenece genera un código QR que se abre, pero los sistemas de los minoristas y Verified by GS1 no lo asociarán a su empresa.

  • Tiene que identificar la unidad en la que está impreso. Un código en una unidad de consumo lleva el GTIN de esa unidad, el que la caja cobra. Un GTIN-14 va en la caja que identifica.

  • Un código de barras nuevo no implica un GTIN nuevo. Añadir un código 2D a un diseño existente cambia el marcado, no el producto. Según el GTIN Management Standard, el GTIN cambia cuando cambia el producto, no cuando cambia su código de barras.

Anatomía de la URI

Una URI GS1 Digital Link es una dirección HTTPS normal. Lo que la convierte en Digital Link es que su ruta y su query string llevan identificadores de aplicación GS1 (AI) y sus valores según una gramática fija:

https://id.example.com/01/09520123456788/10/ABC1/21/12345?17=271231

  • https://id.example.com: cualquier dominio. Decide adónde va el teléfono, no qué es el producto. La identidad es todo lo que viene después.

  • /01/09520123456788: la clave primaria, es decir, el AI (01) seguido del GTIN de 14 dígitos. Siempre va primero.

  • /10/ABC1/21/12345: los calificadores de clave, que acotan el GTIN a una variante, un lote o una unidad. Los tres disponibles para un GTIN son (22) variante de producto de consumo, (10) número de lote y (21) número de serie. Todos son opcionales, pero los que aparezcan deben ir en ese orden: /21/…/10/… no es válido.

  • ?17=271231: los atributos de datos, en la query string e identificados por su AI. Aquí (17) es la fecha de caducidad en formato AAMMDD. Los atributos describen el artículo, no lo identifican, y por eso nunca van en la ruta. Una URI como /01/…/17/271231 está mal formada.

Esa URI contiene exactamente los mismos datos que la cadena de elementos GS1 (01)09520123456788(17)271231(10)ABC1(21)12345, la forma que llevaría un GS1 DataMatrix o un código GS1-128. El software de lectura puede convertir una en otra sin conexión de red.

Cuatro reglas detectan la mayoría de las URI construidas a mano:

  • Los valores distinguen mayúsculas y minúsculas. ABC1 y abc1 son dos lotes distintos. Solo el esquema y el dominio no las distinguen.

  • Los caracteres reservados se codifican con porcentaje dentro de un valor. Un lote escrito A/1 se codifica A%2F1; del mismo modo, # pasa a %23, % a %25, & a %26 y + a %2B.

  • No hace falta nada antes de los AI. Un prefijo de ruta como /products/ está permitido, pero no identifica nada y cada uno de sus caracteres agranda el símbolo.

  • linkType y context están reservados. Son palabras clave de query string para el resolver, descritas más abajo, y no pueden usarse para nada más.

Toda URI Digital Link tiene además una forma canónica: los mismos AI sobre https://id.gs1.org, sin linkType ni context. Dos códigos en dos dominios distintos que se reducen a la misma URI canónica identifican lo mismo. El ejemplo anterior se reduce a:

https://id.gs1.org/01/09520123456788/10/ABC1/21/12345?17=271231

Qué ocurre en la caja

Una caja compatible con 2D no se conecta a internet para cobrar un producto. El lector decodifica el código QR y lo notifica con el identificador de simbología ]Q1, el de un código QR simple. Su software reconoce después el texto decodificado como una URI GS1 Digital Link por su estructura, extrae los AI de la ruta y de la query string, y entrega al sistema de caja los mismos datos que habría producido un código de barras lineal, con el GTIN primero. La búsqueda del precio se hace en local, como siempre.

Por eso la gramática es estricta: la caja analiza la URI, no la visita. Un código con un GTIN de 13 dígitos, la abreviatura /gtin/ o calificadores desordenados puede seguir abriéndose en un teléfono y fallar en caja.

Por eso, también, un código QR dinámico normal no puede sustituir a uno Digital Link. Una URL corta como opn.to/abc123 no lleva ningún GTIN, así que la caja no tiene nada que leer.

Codificar un lote (10) o una fecha de caducidad (17) permite a una caja hacer lo que un EAN no puede, como negarse a vender un lote caducado o retirado. Solo funciona si el sistema del minorista usa esos datos, y el código cambia entonces con cada lote: el envase pasa a ser una impresión de datos variables en lugar de una plancha fija.

Qué ocurre en un teléfono

La cámara de un teléfono ve una dirección HTTPS y la abre. La petición llega al resolver que hay detrás del dominio, que decide adónde enviarla. En un Digital Link de Unitag, ese resolver es el de Unitag. El GS1-Conformant Resolver Standard fija su comportamiento:

  • Un único enlace por defecto. Cada identificador tiene exactamente un enlace por defecto, y un escaneo simple se redirige allí.

  • El LinkType solicitado, o un 404. Un cliente puede pedir un tipo concreto de contenido con el parámetro linkType, por ejemplo linkType=gs1:allergenInfo. Si existe un enlace activo de ese tipo, el resolver redirige a él. Si no, responde 404 Not Found; no recurre al enlace por defecto, un cambio respecto a Digital Link 1.1.

  • El linkset bajo petición. linkType=linkset, o una cabecera Accept: application/linkset+json, devuelve todos los enlaces del identificador como linkset (RFC 9264) en lugar de redirigir.

  • La query string se transmite. Los atributos de datos de la URI llegan a la página de destino con la redirección.

  • Un archivo de descripción. Un resolver conforme publica una descripción JSON de sí mismo en /.well-known/gs1resolver de su dominio. El de Unitag es público:

https://opn.to/.well-known/gs1resolver

Los LinkTypes son términos del GS1 Web Vocabulary, como gs1:pip para la página de información del producto, gs1:nutritionalInfo o gs1:recallStatus. Se configuran en la pestaña LinkTypes de un código, descrita en Gestionar los Digital Links. Los artículos de Más información, al final de esta página, explican para qué sirve cada tipo y cómo funciona el repliegue a lo largo de la jerarquía de identificadores.

La impresión en el envase

La URI queda fija en cuanto se graba la plancha. Todo lo que puede cambiar después, como destinos, LinkTypes e idiomas, vive en el resolver. Ese reparto decide qué va en el código:

  • Un dominio que sea suyo y que vaya a conservar. La URI está en el envase toda la vida del producto, así que el dominio tiene que resolver durante todo ese tiempo. GS1 recomienda el dominio de la marca, idealmente un subdominio dedicado como id.; en el generador se puede elegir un dominio propio.

  • La URI más corta que cumpla su función. Cada carácter añade módulos al símbolo. Codifique los AI que leerá un socio comercial y nada más; los parámetros de campaña van en el resolver, no en el código. El esquema y el dominio no distinguen mayúsculas, y las mayúsculas se codifican de forma más compacta en un código QR, pero el resto de la URI sí las distingue.

  • Dimensionado para la caja, no para el teléfono. Las GS1 General Specifications fijan tamaños de módulo (dimensión X) mínimo, objetivo y máximo para los códigos QR escaneados en el punto de venta. Un teléfono lee códigos que un lector fijo de caja no lee: un símbolo que supera la prueba del teléfono puede fallar en caja.

  • Zona de silencio. La ISO/IEC 18004 exige cuatro módulos de espacio libre en cada lado de un código QR. Un diseño que invade esa zona es una de las causas más habituales de fallos de lectura.

  • Corrección de errores. Un nivel más alto resiste mejor el roce y la curvatura, pero hace el símbolo más denso al mismo tamaño. Elíjalo según el soporte y la manipulación, y después vuelva a comprobar el tamaño de módulo.

  • Texto legible. Las GS1 General Specifications y la GS1 HRI Guideline regulan lo que se imprime junto al símbolo, en particular el GTIN. Sígalas en lugar de imprimir la URL completa.

  • Un único código 2D por envase. El objetivo de GS1 es un solo código de barras 2D que sirva a la vez a la caja y al teléfono. Un código QR de marketing al lado deja al cajero y al comprador dos símbolos entre los que elegir.

  • Verifique la impresión. Haga calificar muestras impresas según la ISO/IEC 15415 con un verificador de códigos de barras, y pruébelas en el hardware de caja de sus minoristas siempre que pueda.

Migrar desde un código de barras lineal

La transición se hace con doble marcado, y cada regla de ese periodo protege la caja:

  • Mantenga el EAN-13 o el UPC-A y añada el código QR Digital Link, mientras algún minorista que le venda solo escanee códigos de barras lineales.

  • Ponga el mismo GTIN en ambos. Un envase cuyos dos códigos de barras no coinciden se cobra según el que la caja lea.

  • Acuerde el cambio con cada minorista, incluido qué símbolo leen sus cajas cuando aparecen los dos.

  • Retire el código de barras lineal en último lugar, cuando todos los minoristas hayan confirmado la lectura 2D en todas sus cajas y las recomendaciones de su organización miembro de GS1 para ese mercado lo permitan.

Un envase que ya lleva un código QR de marketing normal pasa a Digital Link en su siguiente cambio de diseño: el código Digital Link lo sustituye, y el código antiguo sigue funcionando mientras su destino siga en línea.

Antes de aprobar el diseño

Compruebe cada punto en la prueba impresa, no en el archivo de diseño:

  • El GTIN le pertenece y está asignado exactamente a esta unidad.
  • Sigue a /01/ con 14 dígitos y un dígito de control válido.
  • Los calificadores, si los hay, aparecen como /22/, /10/, /21/, en ese orden, con los caracteres reservados codificados.
  • La query string solo contiene atributos de datos que leerá un socio comercial.
  • El dominio usa HTTPS, es suyo y durará más que el producto.
  • Un escaneo simple lleva a una página sobre este producto, no a una página de inicio.
  • Si todavía se imprime un código de barras lineal, lleva el mismo GTIN.
  • El tamaño de módulo, la zona de silencio y la corrección de errores siguen las GS1 General Specifications, y se han verificado muestras impresas.

Unitag: conforme y certificado

La aplicación Digital Link de Unitag es totalmente conforme con los estándares GS1 de esta página, y está certificada por GS1:

  • URI conformes. Cada código que genera es una URI GS1 Digital Link según el estándar URI Syntax: un GTIN de 14 dígitos, calificadores en orden, atributos de datos en la query string y datos GS1 validados antes de crear el código.

  • Un resolver conforme. El resolver de Unitag implementa el GS1-Conformant Resolver Standard: un enlace por defecto, LinkTypes, un 404 para un LinkType no configurado y un archivo público de descripción del resolver.

  • Certificado por GS1. Unitag superó la cualificación de GS1 France sobre la estructura del GS1 Digital Link URI Standard y el símbolo QR Code, y figura como GS1 France Solution Provider.

Un certificado indica quién lo emitió y qué cubre. El artículo sobre la certificación, en Más información, explica cómo comprobar ambas cosas en cualquier proveedor, Unitag incluido.

En otras partes de esta documentación:

Más información

En el blog de Unitag, para el contexto de esta página (en inglés):

Fuentes oficiales

Los documentos de GS1 en los que se basa esta página, publicados en inglés. Los estándares de ref.gs1.org son el texto normativo; las páginas de gs1.org los presentan.