zplCloud Blog

GS1 Sunrise 2027: 2D-Codes an der Kasse – was ZPL-Etiketten jetzt brauchen

Bis Ende 2027 sollen Kassen weltweit GS1 DataMatrix und QR-Codes mit GS1 Digital Link lesen. Der EAN-13 bleibt. Alle Regeln mit Quelle, geprüfte ZPL-Beispiele für ^BQ und ^BX und der Weg, bestehende Vorlagen automatisch umzustellen.

22 Min. Lesezeit zplCloud Team

Bis Ende 2027 lernt die Kasse 2D

Banner „Sunrise 2027. 2D at the checkout.“ mit zwei echten, von zplCore gerenderten Produktetiketten: vorne dasselbe Etikett mit EAN-13 und zusätzlichem QR-Code mit GS1 Digital Link, dahinter die heutige Fassung nur mit EAN-13, darunter eine aufgehende Sonne

Bis Ende 2027 sollen Kassenscanner im Einzelhandel weltweit neben EAN/UPC auch drei 2D-Codes lesen: GS1 DataMatrix, QR-Code mit GS1 Digital Link und Data Matrix mit GS1 Digital Link. GS1 US nennt das „Sunrise 2027“, GS1 global „Ambition 2027“. Der EAN-13 bleibt, eine Pflicht zum 2D-Code entsteht nicht. Wer 2D drucken will, setzt den Code neben den Strichcode, mit derselben GTIN, und hält sich an X-Dimension, Hellzone und Platzierung aus den GS1 General Specifications. Dieser Beitrag zeigt alle Regeln mit Quelle und bringt geprüfte ZPL-Beispiele für ^BQ und ^BX, ein Vorher/Nachher-Etikett und den Weg, bestehende Vorlagen automatisch zu prüfen und umzustellen.

Kurz gesagt: 2027 ist ein Ziel für die Scanner im Handel, kein Abschaltdatum für den EAN. Während der Übergangszeit kommt ein 2D-Code zusätzlich auf die Verpackung, nie statt des Strichcodes. Für ZPL heißt das bei 203 dpi: Modulgröße 4 bis 7 Dots, Hellzone 4 Module um den QR-Code, höchstens 50 mm vom Mittelpunkt des EAN entfernt.

Was Sunrise 2027 ist und was nicht

Die verbindlichste Formulierung steht auf der Seite von GS1 global zur Scanner-Bereitschaft: Die Branche hat sich das Ziel gesetzt, dass bis Ende 2027 alle Kassensysteme im Einzelhandel einen festgelegten Satz von 2D-Barcodes mit GS1-Standards lesen und verarbeiten können, zusätzlich zu den bestehenden linearen Strichcodes. Der globale Implementierungsleitfaden (Release 1.1.0, Dezember 2025) präzisiert das Minimum: Die Kasse muss aus jedem GS1-konformen linearen oder 2D-Code die GTIN erkennen, einmal piepen und genau diese eine GTIN übertragen. Das ist der Scan-Modus 1, die Mindestanforderung für 2027.

Für Kassen sind genau drei 2D-Codes vorgesehen:

2D-CodeInhalt (Syntax)Symbologie-Kennung
GS1 DataMatrixGS1 Datenelement-Syntax mit FNC1, z. B. (01)…(17)…(10)…]d2
QR-Code mit GS1 Digital LinkWeb-Adresse nach GS1 Digital Link URI Syntax]Q1
Data Matrix mit GS1 Digital LinkWeb-Adresse nach GS1 Digital Link URI Syntax]d1

Was Sunrise 2027 nicht bedeutet:

  • Der EAN-13 verschwindet nicht. GS1 Germany schreibt: „Der lineare EAN-Barcode wird nicht abgeschafft.“ Der globale Leitfaden sagt, lineare Strichcodes wie EAN/UPC und GS1 DataBar bleiben, „solange es Verwendungen dafür gibt“.
  • Niemand muss 2027 einen 2D-Code drucken. Laut GS1 Germany müssen Unternehmen, die zunächst nur den linearen Barcode verwenden möchten, keinen zusätzlichen 2D-Code aufbringen. GS1 US betont, dass nicht alle 2D-Möglichkeiten bis zu diesem Datum umgesetzt sein müssen.
  • 2D ersetzt den Strichcode vorerst nicht. GS1 General Specifications 26.0, Abschnitt 4.15.4: Ein GS1 DataMatrix, QR-Code oder Data Matrix mit Digital Link SHALL zusätzlich zu EAN/UPC oder GS1 DataBar verwendet werden. Der Leitfaden nennt die Schwelle: Erst wenn 90 % der Kassen-Scanlösungen GS1-konforme 2D-Codes verarbeiten können, darf der lineare Code entfallen. Ein Datum dafür gibt es nicht.
  • Es ist kein Gesetz. GS1 entwickelt Standards für die freiwillige Anwendung. Pflichten entstehen erst durch Händlervorgaben oder durch eigene Regulierung, etwa im Gesundheitswesen.

Ein älteres FAQ-PDF von GS1 Germany (Stand November 2022) sprach noch davon, dass ab 2028 der Markeninhaber zwischen EAN und 2D-Code wählt. Die heute gültigen Texte koppeln das Weglassen des Strichcodes an die 90-%-Schwelle, nicht an ein Jahr. Maßgeblich sind die General Specifications 26.0 und der Leitfaden 1.1.

Zeitplan und Meilensteine

WannWasQuelle
2021Beschluss der GS1 Global Generalversammlung zur 2D-Migration am POSGS1 Switzerland, FAQ
Feb. 2022Deutschsprachiger Leitfaden „Migration auf 2D Codes am POS“, Ausgabe 1.1 (GS1 AT und GS1 DE)GS1 Austria
Nov. 2025Deutsche Übersetzung des Implementierungsleitfadens, Ausgabe 1.1GS1 Germany
Dez. 20252D Barcodes at Retail Point-of-Sale Implementation Guideline, Release 1.1.0GS1
Jan. 2026GS1 General Specifications Release 26.0 mit Tabelle 5-46 für 2D am POSGS1
Jul. 2026Positionspapier 2.0.0: einzelner 2D-Code für Handelsmarken und im Markt etikettierte WareGS1
Aug. 2026GS1 Digital Link URI Syntax 1.7.0GS1
Ende 2027Ziel: Kassen lesen die GTIN aus allen drei 2D-Codes (mindestens Modus 1)GS1
danachNur-2D für Markenware erst ab 90 % 2D-fähiger Kassen-ScanlösungenGS1 Leitfaden 1.1, Abschnitt 4.1

GS1 führt eine laufend aktualisierte Liste, in der Hersteller von Scannern, Prüfgeräten, Druckern und Barcode-Software ihren Stand zu den Kriterien für „2D capable“ melden; Stand bei Redaktionsschluss: 8. Oktober 2026. Unter den Druckerherstellern stehen dort unter anderem Zebra und TSC.

Regionale Lage: USA, DACH und der Rest der Welt

USA. GS1 US führt das Thema unter „Sunrise 2027“ und empfiehlt ein Vorgehen in drei Stufen (Crawl, Walk, Run). Für Marken: 2D-Codes auf bestehende Verpackungen bringen und vorhandene QR-Codes auf GS1 Digital Link mit GTIN umstellen; danach weitere Daten wie Varianten, Produktions- oder Verfallsdatum aufnehmen; schließlich die Kundenansprache ausbauen. Für Händler: Sunrise-fähige Scanner installieren, die 2D lesen und die GTIN extrahieren; dann Eigenmarken mit 2D versehen; zuletzt Sicherheit, Rückverfolgung und Bestand optimieren. Laut einer GS1-US-Verbraucherumfrage von 2025 kaufen 79 % eher Produkte mit scanbarem QR-Code, der zusätzliche Produktinformationen liefert.

Deutschland. GS1 Germany bezeichnet die doppelte Kennzeichnung während der Übergangsphase als „in der Regel sinnvoll beziehungsweise erforderlich“, weil noch nicht alle Kassensysteme 2D verarbeiten. GS1 Germany nennt dm und Beiersdorf mit dem „ersten POS-Case“. Eine 5-Punkte-Checkliste von GS1 Germany rät, mit einem Use Case und einer Produktgruppe zu beginnen und Druck, Scanbarkeit und Systemintegration regelmäßig zu testen.

Österreich. GS1 Austria: „2D Codes werden den klassischen Strichcode (1D Code) nicht ablösen, sondern ergänzen.“ Und: „Aktuell, während der Übergangsphase, ist neben einem 2D Code auch ein 1D Strichcode notwendig.“ Gelesen werden 2D-Codes nur von bildbasierten Scannern, klassische Laserscanner können es nicht.

Schweiz. GS1 Switzerland stellt klar, dass es EAN/UPC-Strichcodes „auch noch lange nach 2027 im Handel geben“ wird. Zur Technik an der Kasse heißt es dort, die meisten Kassensysteme in der Schweiz könnten 2D-Codes bereits scannen, oft reiche ein Software-Update.

Weitere Regionen. GS1 global schreibt, dass die Umstellung schrittweise und weltweit in unterschiedlichem Tempo verläuft. Als Praxisbeispiele führt GS1 unter anderem Woolworths in Australien, das Feinkostgeschäft Parla Deli in Brasilien und 7-Eleven in Thailand.

Wen es betrifft

WerWas zu tun ist
MarkeninhaberEntscheiden, ob und welcher 2D-Code auf welche Produkte kommt, Digital-Link-Domain festlegen, Verpackung und Etiketten anpassen.
HandelScanner-Software auf einen der Modi 1 bis 3 einstellen, Kassensoftware für Zusatzdaten vorbereiten, nur ein Piepton pro Artikel bei zwei Codes.
Etikettendruck und ITZPL-Vorlagen, Waagen- und Frischetiketten, Druckerauflösung, Datenquellen für Charge und Datum.
Software- und DruckeranbieterGS1-Kriterien für „2D capable“: ]d2, ]d1, ]Q1, X-Dimension, Hellzone und Druckqualität nach den Symbolspezifikationstabellen.
Gesundheitswesen und PharmaBleibt bei GS1 DataMatrix, siehe unten.

Im Markt etikettierte Ware ist der schnellste Hebel. Das GS1-Positionspapier vom Juli 2026 nennt Theke, Bäckerei und Eigenmarken als Bereiche, in denen ein Händler schon heute mit einem einzigen 2D-Code arbeiten kann, weil er Etikett, Scanner und Kasse selbst kontrolliert. Voraussetzung ist mindestens Scan-Modus 2. Solche Etiketten kommen oft aus Waagen und Etikettendruckern, nicht selten als ZPL.

Gesundheitswesen. Hier hat die Branche GS1 DataMatrix schon Anfang der 2000er als einzigen 2D-Code gewählt; laut Leitfaden ist er auch für Gesundheitsprodukte an der Ladenkasse der 2D-Code der Wahl. GS1 Digital Link wird im Gesundheitswesen nicht in einen 2D-Code geschrieben. In den USA verlangt die FDA für Medizinprodukte eine UDI aus Device Identifier und Production Identifier (Charge, Seriennummer, Verfalls- oder Herstelldatum) in Klarschrift und maschinenlesbar. Für verschreibungspflichtige Arzneimittel schreibt der DSCSA einen Product Identifier vor (NDC-basierte Nummer mit Seriennummer, Charge, Verfallsdatum), auf der Packung in einem 2D-Data-Matrix-Code. Sunrise 2027 ändert an diesen Pflichten nichts.

Was 2D an der Kasse bringt

Der EAN-13 trägt nur die GTIN. Ein 2D-Code kann zusätzlich Charge, Verfalls- oder Mindesthaltbarkeitsdatum und Seriennummer tragen. Der GS1-Leitfaden nennt unter anderem diese Anwendungen:

  • Abgelaufene Ware an der Kasse sperren, weil das Verfallsdatum im Code steht.
  • Gezielte Rückrufe auf Chargenebene statt ganzer Artikel.
  • Weniger Lebensmittelabfall und automatische Preisabschriften nach Datum. Woolworths nennt laut GS1 Germany bis zu 40 % weniger Lebensmittelabfall.
  • Information für Kundinnen und Kunden: Der QR-Code mit GS1 Digital Link öffnet mit der normalen Handykamera eine Webseite und ist zugleich an der Kasse scanbar.
  • Digitaler Produktpass: Laut EU-Kommission verbindet ein Datenträger wie ein QR-Code das Produkt mit seinem DPP; für bestimmte Batterien wird der DPP am 18. Februar 2027 Pflicht; die delegierten Rechtsakte für Textilien, Aluminium und Reifen sind für 2027 geplant, danach gilt eine Übergangsfrist von mindestens 18 Monaten. Mehr dazu in unserem Beitrag GS1 QR Code und Digitaler Produktpass.

Technik: So ist eine GS1-Digital-Link-URI aufgebaut

https://example.com/01/09506000134352/10/L2610A?15=271231
└──────┬──────────┘└──────┬─────────┘└───┬────┘└───┬────┘
   Domain (+ Pfad)    Primärschlüssel   Qualifikator Attribut
                      (01) GTIN-14      (10) Charge  (15) MHD

Die Regeln aus der GS1 Digital Link URI Syntax 1.7.0 (August 2026):

  • Domain frei wählbar. Zwischen Domain und /01/ dürfen beliebig viele eigene Pfadsegmente stehen, etwa https://example.com/gs1/01/…. GS1 empfiehlt Markeninhabern die eigene Domain; https://id.gs1.org ist die Referenz-Domain von GS1.
  • GTIN immer 14-stellig. Seit Version 1.4.0 wird eine GTIN-13 mit führender Null auf 14 Stellen gebracht: aus EAN 9506000134352 wird /01/09506000134352.
  • Schlüsselqualifikatoren im Pfad, in fester Reihenfolge: für die GTIN /22/ (Variante), /10/ (Charge), /21/ (Seriennummer). /21/…/10/… ist ungültig.
  • Attribute in die Query: Datumsangaben wie 15 (Mindesthaltbarkeit) oder 17 (Verfall) stehen als ?15=271231.
  • Keine Kurzformen. „Convenience Alphas“ wie /gtin/ statt /01/ wurden mit Version 1.3.0 entfernt.
  • Unkomprimiert. An der Kasse muss die URI laut Tabelle 5-46 der General Specifications in unkomprimierter Form stehen.
URIGültig?
https://example.com/01/09506000134352Ja, nur GTIN
https://example.com/gs1/01/09506000134352/10/L2610A?15=271231Ja, eigener Pfad, Charge, MHD
https://example.com/01/9506000134352Nein, GTIN nur 13-stellig
https://example.com/01/09506000134352/21/0001/10/L2610ANein, Charge muss vor der Seriennummer stehen
https://example.com/gtin/09506000134352Nein, Kurzform entfernt

Ein Tipp aus dem GS1-Leitfaden: Großbuchstaben und Ziffern belegen im QR-Code weniger Platz als Kleinbuchstaben und Sonderzeichen. Wer Chargen selbst vergibt, hält sie besser numerisch oder in Großbuchstaben.

GS1 DataMatrix, Data Matrix oder QR-Code?

Drei von zplCore gerenderte 2D-Codes mit gleichem Inhalt und gleicher Modulgröße: GS1 DataMatrix mit 18 × 18 Modulen, Data Matrix mit GS1 Digital Link mit 26 × 26 Modulen und QR-Code mit GS1 Digital Link mit 33 × 33 Modulen

Alle drei Codes oben tragen GTIN, Charge und MHD, gedruckt mit 4 Dots je Modul bei 203 dpi (0,50 mm). Die GS1 DataMatrix misst 18 × 18 Module, also 9,0 mm. Die Data Matrix mit Digital Link braucht 26 × 26 Module (13,0 mm), der QR-Code 33 × 33 Module (16,5 mm). Alle Barcodes in diesem Beitrag haben wir mit zplCore und mit Labelary gerendert und mit ZXing dekodiert; beide Renderer liefern dieselben Daten und Positionen.

KriteriumGS1 DataMatrixQR-Code + Digital LinkData Matrix + Digital Link
Handykamera öffnet eine WebseiteNein, App nötigJaNein, App nötig
Größe bei gleichem Inhaltam kleinstenam größtenklein
Gesundheitswesenweltweit zugelassennicht vorgesehennicht vorgesehen
Kassenscanneroft nur freischaltenSoftware-Update nötigSoftware-Update nötig

Daraus folgt: QR-Code mit Digital Link, wenn Kundinnen und Kunden scannen sollen. GS1 DataMatrix, wenn Platz knapp ist, kein Web-Link gebraucht wird oder der Artikel aus dem Gesundheitswesen kommt. Die Data Matrix mit Digital Link ist der Mittelweg für kleine Packungen mit Web-Link.

Druckqualität: X-Dimension, Hellzone, Platzierung, Klarschrift

Die Maße stehen in den GS1 General Specifications, Release 26.0 (Januar 2026), Abschnitt 5.12.3.1, Tabelle 5-46 „Symbol specification table 1 addendum 2 for 2D barcodes“. Sie gilt für Artikel, die an der Ladenkasse gescannt werden:

2D-CodeX-Dimension min.Zielmax.HellzoneMindestqualität
GS1 DataMatrix (ECC 200)0,396 mm0,495 mm0,990 mm1X rundum1.5/12/660
Data Matrix (GS1 Digital Link URI)0,396 mm0,495 mm0,990 mm1X rundum1.5/12/660
QR-Code (GS1 Digital Link URI)0,396 mm0,495 mm0,990 mm4X rundum1.5/12/660

Die 2D-Module sind damit 1,5-mal so groß wie die X-Dimension der linearen Codes. Für Artikel, die zusätzlich in der Logistik gescannt werden, gilt Tabelle 5-49 (Symbolspezifikationstabelle 3, Addendum 1) mit 0,743 bis 0,990 mm.

In ZPL ist die X-Dimension eine ganze Zahl von Dots. Daraus ergeben sich diese zulässigen Modulgrößen (Parameter 3 von ^BQ, Parameter 2 von ^BX):

Druckerauflösung1 Doterlaubte Modulgrößenah am Ziel 0,495 mm
203 dpi (8 Dots/mm)0,125 mm4 bis 7 Dots4 Dots = 0,500 mm
300 dpi (12 Dots/mm)0,085 mm5 bis 11 Dots6 Dots = 0,508 mm
600 dpi (24 Dots/mm)0,042 mm10 bis 23 Dots12 Dots = 0,508 mm

Ein häufiger Fehler steckt im Strichcode daneben: Tabelle 5-44 erlaubt für den EAN-13 mindestens 0,264 mm. ^BY2 ergibt bei 203 dpi nur 0,250 mm und liegt damit darunter; erst ^BY3 (0,375 mm) passt. Bei 300 dpi ist ^BY3 (0,254 mm) zu schmal, ^BY4 (0,339 mm) passt. Die Mindesthöhe der Striche wächst mit: 22,85 mm bei 0,330 mm, also rund 26 mm bzw. 208 Dots bei ^BY3 und 203 dpi.

Weitere Regeln:

  • Hellzone: 1 Modul um die Data Matrix, 4 Module um den QR-Code. ZPL zeichnet die Hellzone nicht, sie muss frei bleiben, auch von Text und Rahmen.
  • Platzierung: GS1-Tests haben gezeigt, dass der 2D-Code höchstens 50 mm vom Mittelpunkt des linearen Codes entfernt sein soll, damit die Kasse 40 bis 70 Artikel pro Minute schafft.
  • Gleiche GTIN: Alle Codes auf einem Artikel müssen dieselbe GTIN tragen (Abschnitt 4.15.1).
  • Klarschrift: Steht der 2D-Code neben einem EAN-13 mit Klarschrift, braucht er keine eigene (Abschnitt 4.14.2). Ist er der einzige Code, zeigt er (01) und die 14-stellige GTIN.
  • Prüfen: Gemessen wird nach ISO/IEC 15415. 1.5/12/660 heißt: Gesamtnote mindestens 1,5, Messblende Nr. 12 (0,30 mm), Wellenlänge 660 nm.

ZPL-Beispiele, geprüft mit zplCore und Labelary

QR-Code mit 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 heißt: normale Ausrichtung, QR-Modell 2, 4 Dots je Modul (0,50 mm bei 203 dpi). Die ersten zwei Zeichen im ^FD sind die Fehlerkorrektur (M = 15 %) und der Eingabemodus (A = automatisch). Höhere Fehlerkorrektur macht den Code größer; GS1 überlässt die Wahl dem Anwendungsfall. Der Code dekodiert mit Symbologie-Kennung ]Q1 und genau dieser URI. Ein Hinweis zur Position: In zplCore und Labelary beginnt der QR-Code um die aktuelle ^BY-Balkenhöhe (ohne ^BY 10 Dots) unterhalb der ^FO-Koordinate; das beim Platzieren einrechnen.

GS1 DataMatrix mit FNC1 (^BX)

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

^BXN,4,200,,,,_ heißt: 4 Dots je Modul, Qualität 200 (ECC 200, Pflicht für GS1) und _ als Escape-Zeichen. _1 am Anfang erzeugt das FNC1, das aus einer Data Matrix eine GS1 DataMatrix macht. Dekodiert: ]d2 mit (01)09506000134352(15)271231(10)L2610A.

Die Reihenfolge ist Absicht. GTIN (01) und Datum (15) haben eine feste Länge und brauchen kein Trennzeichen. Die Charge (10) hat eine variable Länge und steht am Ende, also ebenfalls ohne Trennzeichen. Steht ein variables Feld in der Mitte, folgt ihm ein _1 als Trenner:

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

Das ergibt dieselben Daten, aber ein 20 × 20 statt 18 × 18 Module großes Symbol. Ein Fehler, der uns beim Testen selbst passiert ist: Wer nach der GTIN _10L2610A schreibt, bekommt FNC1 plus „0L2610A“ statt der Charge. Nach Feldern fester Länge gehört kein FNC1.

Ohne den Qualitätsparameter 200 erzeugt ^BX den alten ECC-000-Typ; für GS1 ist das falsch. Für eine Data Matrix mit Digital Link (]d1) entfällt das FNC1 ganz: ^BXN,4,200^FDhttps://example.com/01/…^FS.

Vorher und nachher: dasselbe Etikett mit 2D

Das Ausgangsetikett, 4 × 2 Zoll bei 203 dpi, nur mit EAN-13:

Von zplCore gerendertes Produktetikett 4 × 2 Zoll: ACME FOODS, Oat Drink Barista 1 L, Charge L2610A, mindestens haltbar bis 31.12.2027, darunter nur ein EAN-13 mit der 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

Nach der Migration mit zplCore (Befehl weiter unten) kommt ein QR-Code mit GS1 Digital Link rechts neben den EAN-13, mit derselben GTIN, Charge und MHD:

Dasselbe von zplCore gerenderte Produktetikett nach der Migration: EAN-13 links unverändert, rechts daneben ein QR-Code mit der GS1-Digital-Link-URI 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

Der QR-Code ist 16,5 mm groß, mit 4 Dots (0,500 mm) je Modul und 16 Dots Hellzone. Sein Mittelpunkt liegt rund 33 mm vom Mittelpunkt des EAN-13 entfernt, also innerhalb der 50 mm. Beide Codes liefern in zplCore und Labelary dieselbe GTIN 09506000134352. Die GTIN 9506000134352 ist eine Beispiel-GTIN von GS1, example.com ist ein reservierter Platzhalter.

Vorlagen prüfen und umstellen mit zplCore

zplCore ist die ZPL-Engine hinter zplCloud. Sie bringt zwei Werkzeuge für Sunrise 2027 mit: einen Pre-Check gegen die GS1-Regeln und einen Migrationsassistenten, der bestehenden ZPL-Etiketten den 2D-Code hinzufügt. Beide rendern das Etikett und messen die gedruckte Geometrie, statt nur den Text zu lesen. Die Dokumentation steht unter Compliance-Pre-Check und GS1 Digital Link & Sunrise-2027-Migration.

Pre-Check per Kommandozeile

Ein bewusst fehlerhaftes Etikett: EAN-13 mit ^BY2, QR-Code mit 3 Dots je Modul, GTIN 13-stellig und Seriennummer vor der Charge:

^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

Der Pre-Check findet:

$ 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.

Den zu schmalen EAN-13 meldet das Paket sunrise nicht, denn es prüft die 2D-Seite; für den Strichcode gilt Tabelle 5-44 (siehe oben). Mit --annotate zeichnet zplCore die Befunde direkt auf das Etikett:

Von zplCore annotiertes Etikett: der EAN-13 ist mit Regel ZPL3210 markiert, der zu kleine QR-Code mit den Regeln ZPL3202 und ZPL3207

Das Paket sunrise deckt 13 Regeln ab, unter anderem: 2D-Träger mit GTIN vorhanden, Digital-Link-Syntax, ECC 200, X-Dimension nach Tabelle 5-46, Hellzone, linearer Code noch vorhanden, gleiche GTIN in allen Codes, abgeschnittene oder überdruckte Symbole. Das Vorher-Etikett oben meldet übrigens einen Fehler (ZPL3201, kein 2D-Träger), weil das Paket die 2D-Bereitschaft prüft. Ein Etikett nur mit EAN-13 bleibt nach GS1 trotzdem gültig. Mit --format sarif landen die Befunde in GitHub Code Scanning, der Exit-Code 1 stoppt die CI-Pipeline.

Migration per Kommandozeile

$ 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.

Die GTIN liest der Assistent aus dem EAN-13. Charge und MHD stehen auf diesem Etikett nur als Text, deshalb kommen sie per --add dazu; aus einem GS1-128 oder GS1 DataBar Expanded übernimmt er sie selbst. Findet er keinen freien Platz mit Hellzone, ändert er nichts und meldet den Platzbedarf; --extend-label verlängert stattdessen das Etikett. --carrier datamatrix setzt eine GS1 DataMatrix statt des QR-Codes.

Dasselbe im C#-SDK

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, // oder DataMatrixElementString
    DigitalLinkStem = "https://example.com",         // eigene Domain, sonst 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()); // Platzierung und Sunrise-Pre-Check des Ergebnisses

Das Snippet haben wir gegen das Vorher-Etikett laufen lassen; die Ausgabe entspricht der Kommandozeile oben.

Wichtig: zplCore liefert einen Pre-Check und einen Migrationsassistenten, keine Zertifizierung. Ein leerer Bericht heißt nur, dass keine Regel angeschlagen hat. Die Druckqualität des fertigen Etiketts misst ein Barcode-Prüfgerät; die Freigabe kommt vom Händler oder von der GS1-Länderorganisation.

In zplCloud ohne Code

Ohne Installation geht es im Browser mit dem kostenlosen Tool Sunrise-2027-Migration: ZPL-Etikett mit EAN/UPC, GS1-128, ITF-14 oder GS1 DataBar einfügen, die GTIN kommt samt Charge, Verfallsdatum und Seriennummer in einen QR-Code mit GS1 Digital Link oder eine GS1 DataMatrix. Das Tool setzt den Code mit Hellzone in eine freie Fläche, prüft das Ergebnis erneut mit den Sunrise-2027-Regeln und zeigt vorher und nachher nebeneinander.

Im zplCloud-Designer hat jedes Barcode-Element einen GS1-Bereich: Datenbezeichner auswählen, Werte binden, Digital Link für den QR-Code wählen; die Trennzeichen setzt der Editor selbst. Einzelne Codes erzeugen die kostenlosen Tools GS1 AI QR-Code zu ZPL und GS1 AI DataMatrix zu ZPL, gedruckte Codes prüft Barcode prüfen. Alle Datenbezeichner mit Format und Bedeutung stehen in der GS1-AI-Datenbank.

Checkliste für Teams

  • Bestand aufnehmen: Welche Vorlagen tragen einen EAN/UPC (^BE, ^BU, ^B8, ^B9) oder GS1 DataBar (^BR)? Mit welchen Druckern und welcher Auflösung werden sie gedruckt?
  • Use Case wählen: Verbraucherinfo (QR-Code mit Digital Link), Verfall und Charge an der Kasse (GS1 DataMatrix oder QR), Platzmangel (GS1 DataMatrix). Mit einer Produktgruppe anfangen.
  • Digital Link festlegen: eigene Domain und Pfad, Weiterleitung auf eine bestehende Produktseite. GTIN 14-stellig, Reihenfolge 22/10/21, Datumsangaben als Query, unkomprimiert.
  • Daten klären: Kommen Charge und Datum beim Druck aus ERP, Waage oder Linie? Variable Daten bedeuten Druck in der Linie oder am Etikettendrucker, nicht auf der vorgedruckten Verpackung.
  • Maße nach Tabelle 5-46: 2D-Modul 0,396 bis 0,990 mm (203 dpi: 4 bis 7 Dots). EAN-13 mindestens 0,264 mm (203 dpi: ab ^BY3).
  • Layout prüfen: Hellzone 1X bzw. 4X, höchstens 50 mm vom EAN-Mittelpunkt, dieselbe GTIN, Klarschrift nach Abschnitt 4.14.2.
  • Automatisch vorprüfen: zplcore comply --pack sunrise in der CI, zplcore gs1 migrate für bestehende Vorlagen.
  • Gedruckt messen: Barcode-Prüfgerät nach ISO/IEC 15415, Ziel 1.5/12/660 oder besser; die GS1-Testsuite und echte Kassenscanner des Handelspartners.
  • Handel: Scanner-Modus festlegen (mindestens Modus 1), ein Piepton bei zwei Codes, Kassensoftware für Zusatzdaten; Eigenmarken und Thekenware als Pilot.
  • Abstimmen: mit Handelspartnern und der GS1-Länderorganisation (GS1 Germany, GS1 Austria, GS1 Switzerland).

Häufige Fragen

Muss ich bis Ende 2027 einen 2D-Code auf meine Produkte drucken?

Nein. Sunrise 2027 ist ein Ziel für die Lesefähigkeit der Kassen. GS1 Germany schreibt ausdrücklich, dass Unternehmen, die nur den linearen Barcode verwenden möchten, keinen 2D-Code aufbringen müssen. Einzelne Händler können eigene Vorgaben machen.

Wird der EAN-13 abgeschafft?

Nein. GS1 Germany, GS1 Austria und GS1 Switzerland stellen das klar, der globale Leitfaden ebenso. Lineare Codes bleiben, solange es Verwendungen gibt.

Darf ich den EAN-13 durch einen QR-Code ersetzen?

Für Markenware vorerst nicht. Die General Specifications 26.0 verlangen den 2D-Code zusätzlich zum EAN/UPC oder GS1 DataBar, bis 90 % der Kassen-Scanlösungen 2D verarbeiten. Ausnahme ist der geschlossene Kreislauf eines Händlers: Eigenmarken und im Markt etikettierte Ware können laut GS1-Positionspapier mit einem einzigen 2D-Code arbeiten, wenn die eigenen Kassen mindestens Modus 2 beherrschen.

Brauche ich eine eigene Domain für GS1 Digital Link?

Die Syntax erlaubt jede Domain mit beliebigem Pfad davor, GS1 empfiehlt die eigene. Ein Unterpfad der Firmendomain mit Weiterleitung reicht. Wie das ohne neuen Server geht, steht in unserem Beitrag zum Digitalen Produktpass.

Welche Fehlerkorrektur soll der QR-Code haben?

GS1 legt keine Stufe fest: höhere Fehlerkorrektur ist robuster, macht den Code aber größer. Ein Beispiel im GS1-Leitfaden nutzt Stufe M (15 %), ebenso unsere Beispiele. Wichtig ist, dass die Modulgröße in Tabelle 5-46 bleibt.

Kann ein 203-dpi-Drucker Sunrise-konforme Codes drucken?

Ja. Bei 203 dpi sind 4 bis 7 Dots je Modul zulässig, 4 Dots ergeben 0,500 mm und liegen fast genau auf dem Zielwert 0,495 mm. Der Engpass ist eher der EAN-13 daneben, der bei 203 dpi mindestens ^BY3 braucht.

Braucht der QR-Code eine eigene Klarschrift?

Nicht, wenn er neben einem EAN-13 mit Klarschrift steht. Ist der 2D-Code der einzige Code, zeigt er (01) gefolgt von der 14-stelligen GTIN (General Specifications, Abschnitt 4.14.2).

Was ist mit Arzneimitteln und Medizinprodukten?

Dort bleibt es bei der GS1 DataMatrix mit Element-Strings und bei den bestehenden Pflichten wie UDI oder DSCSA. GS1 Digital Link wird im Gesundheitswesen nicht im 2D-Code verwendet.

Ist der zplCore-Check eine GS1-Zertifizierung?

Nein. Er ist ein Pre-Check gegen veröffentlichte Regeln und ein Assistent für die Umstellung. Für die Abnahme zählen das Prüfgerät, der Händler und die GS1-Länderorganisation.

Quellen

Alle Quellen am 19. Oktober 2026 abgerufen.

GS1, GS1 DataMatrix und GS1 Digital Link sind Marken von GS1 AISBL und werden hier nur beschreibend verwendet. zplCloud und zplCore sind keine Produkte von GS1.

Weitere Artikel