Der GS1-Digital-Link-Resolver – erklärt (mit Live-Beispiel)

Ein DPP-QR-Code ist kein Link auf eine Webseite — er ist ein GS1 Digital Link, und der Resolver macht aus einem Identifier viele kontextabhängige Antworten. So funktioniert er, mit einem Live-Passport, den du sofort per curl abrufen kannst.

von QR3 Redaktion

Der GS1-Digital-Link-Resolver – erklärt (mit Live-Beispiel)

Die meisten Erklärungen zu DPP-QR-Codes hören bei „Code scannen, Website öffnet sich" auf. Damit fehlt der spannende Teil. Der QR-Code auf einem konformen Produkt kodiert einen GS1 Digital Link, und das, was ihn nützlich macht, ist der Resolver — der Dienst, der aus einem Produkt-Identifier viele verschiedene, kontextabhängige Antworten macht.

Dieser Beitrag zeigt, was der Resolver wirklich tut — mit einem Live-Passport, den du sofort abrufen kannst (ohne Anmeldung, ohne Key).

Ein GS1 Digital Link ist eine normale HTTPS-URL, die GS1-Identifier als Pfadsegmente einbettet, jeweils mit einem Application Identifier (AI) markiert:

https://id.gs1.org/01/04019999999902/21/DEMO-BAT-01
                   └─01─┘ └──GTIN───┘ └21┘ └─Serie─┘
  • 01 → GTIN (Global Trade Item Number) — welches Produkt
  • 21 → Seriennummer — welche einzelne Einheit
  • 10 → Charge/Los (Alternative zur Seriennummer)

Weil es eine schlichte URL ist, öffnet sie jede Handykamera. Weil sie strukturiert ist, können Maschinen sie parsen. Genau diese Doppelnatur ist der Kern.

Der Resolver: eine URI, viele Antworten

Ein dummer QR-Code liefert eine feste Seite. Ein Resolver prüft den Request und liefert die Repräsentation, die zum Aufrufer passt:

  • ein Verbraucher mit Handy-Browser bekommt eine lesbare HTML-Seite;
  • das System eines Recyclers fragt JSON-LD an und bekommt maschinenlesbare Daten;
  • eine Behörde kann das vollständige Linkset anfragen — alle typisierten Links des Produkts.

Gleiche URL, unterschiedliche Antworten, entschieden über den Accept-Header (oder ein ?format=-Override).

Ein Live-Resolver, den du sofort abrufen kannst

qr3.app hostet einen öffentlichen Demo-Batterie-Passport. Im Browser öffnen:

https://qr3.app/dpp/04019999999902/DEMO-BAT-01

Du siehst die Verbraucherseite für EcoMax 5000 (Demo) von GreenPower GmbH. Jetzt frag dieselbe URL nach maschinenlesbarem JSON-LD:

curl "https://qr3.app/dpp/04019999999902/DEMO-BAT-01?format=jsonld"
{
  "@context": ["https://schema.org", "https://gs1.org/voc/"],
  "@type": "Product",
  "gtin": "04019999999902",
  "name": "EcoMax 5000 (Demo)"
}

Das ist der Resolver bei der Arbeit: ein Identifier, eine menschliche Seite und ein JSON-LD-Dokument auf Basis von schema.org + dem GS1-Web-Vokabular. Weitere Repräsentationen gibt es genauso — ?format=json (roher Passport), ?format=linkset (alle typisierten Links), ?format=dcat-ap — oder per Standard-Accept-Negotiation (Accept: application/ld+json).

Ein Resolver ist nur so vertrauenswürdig wie die Identifier dahinter. Validiere eine GTIN, bevor du einen Digital Link dafür baust:

import { QR3 } from "@qr3/sdk";

const client = new QR3({ apiKey: process.env.QR3_API_KEY! });

const result = await client.gs1.validateGs1({
  identifier_type: "gtin",
  value: "04019999999902",
});

console.log(result.valid);   // true
console.log(result.detail);  // "Valid GTIN-14"

GTINs registrieren

Halte die genutzten Identifier unter Verwaltung, damit jeder Digital Link auf ein bekanntes Produkt zurückführt:

const gtin = await client.gs1.createGs1Identifier({
  identifier_type: "gtin", // oder "gln" | "company_prefix"
  value: "04019999999902",
  label: "EcoMax 5000",
});

qr3 als dein Resolver

Du musst keinen eigenen Resolver bauen und betreiben. Richte den Produkt-QR auf den Digital Link, hoste den Passport auf qr3.app — der Resolver liefert je Request die richtige Repräsentation. GTIN/Seriennummer in der URL bleiben für immer stabil (gedruckte Etiketten brechen nie), während die Daten dahinter aktualisierbar bleiben.

FAQ

Ist der QR-Code selbst anders als ein normaler? Nein — es ist ein Standard-QR (oder Data Matrix) mit einer GS1-Digital-Link-URL. Jede Kamera öffnet ihn; die Intelligenz steckt im Resolver, nicht im Symbol.

Bekommen Verbraucher und Recycler wirklich unterschiedliche Inhalte? Ja — das ist Content-Negotiation. Der Browser bekommt HTML; ein System, das application/ld+json (oder ?format=jsonld) anfragt, bekommt strukturierte Daten von derselben URL.

Kann ich meine eigene Produktseite behalten und trotzdem konform sein? Ja. Der Digital Link kann mehrere typisierte Links ausspielen (ein linkset) — deine Marketingseite, den offiziellen Passport, ein Recycling-Datenblatt — jeweils mit einem Link-Typ markiert.

Quellen

Probier den Live-Passport oben aus, dann kostenlos starten und deinen eigenen auflösen.