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).
Was ein GS1 Digital Link wirklich ist
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 Produkt21→ Seriennummer — welche einzelne Einheit10→ 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:
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).
Identifier validieren, bevor du Links erzeugst
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.