De GS1 Digital Link Resolver, uitgelegd (met een live voorbeeld)

Een DPP-QR-code is geen link naar een webpagina — het is een GS1 Digital Link, en de resolver zet één identifier om in vele contextbewuste antwoorden. Zo werkt het, met een live paspoort dat je nu meteen kunt curlen.

door QR3 Redaktion

De GS1 Digital Link Resolver, uitgelegd (met een live voorbeeld)

De meeste uitleg over QR-codes voor het Digital Product Passport blijft steken bij "scan de code, open een website." Dat mist het interessante deel. De QR-code op een conform product codeert een GS1 Digital Link, en het onderdeel dat hem bruikbaar maakt is de resolver — de service die één productidentifier omzet in vele verschillende, contextbewuste antwoorden.

Dit artikel laat zien wat de resolver werkelijk doet, met een live paspoort dat je nu meteen kunt aanroepen (geen aanmelding, geen sleutel).

Een GS1 Digital Link is een gewone HTTPS-URL die GS1-identifiers als padsegmenten inbedt, elk gemarkeerd met een Application Identifier (AI):

https://id.gs1.org/01/04019999999902/21/DEMO-BAT-01
                   └─01─┘ └──GTIN───┘ └21┘ └─serial─┘
  • 01 → GTIN (Global Trade Item Number) — welk product
  • 21 → serienummer — welke individuele eenheid
  • 10 → batch/lot (alternatief voor serienummer)

Omdat het een gewone URL is, opent elke telefooncamera hem. Omdat hij gestructureerd is, kunnen machines hem parsen. Die dubbele aard is precies waar het om draait.

De resolver: één URI, vele antwoorden

Een domme QR-code geeft één vaste pagina terug. Een resolver inspecteert het verzoek en geeft de representatie terug die bij de beller past:

  • een consument met een telefoonbrowser krijgt een leesbare HTML-pagina;
  • het systeem van een recycler vraagt om JSON-LD en krijgt machineleesbare gestructureerde data;
  • een autoriteit kan de volledige linkset opvragen — elke getypeerde link die het product blootlegt.

Dezelfde URL, verschillende antwoorden, bepaald door de Accept-header (of een ?format=-override).

Een live resolver die je nu meteen kunt aanroepen

qr3.app host een openbaar demo-batterijpaspoort. Open het in een browser:

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

Je ziet de consumentenpagina voor EcoMax 5000 (Demo) van GreenPower GmbH. Vraag nu dezelfde URL om machineleesbare 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)"
}

Dat is de resolver die zijn werk doet: één identifier, een menselijke pagina én een JSON-LD-document gebouwd op schema.org + de GS1-webvocabulaire. Andere representaties zijn op dezelfde manier beschikbaar — ?format=json (ruw paspoort), ?format=linkset (alle getypeerde links), ?format=dcat-ap — of via standaard Accept-onderhandeling (Accept: application/ld+json).

Een resolver is niet betrouwbaarder dan de identifiers erachter. Valideer een GTIN voordat je er een Digital Link voor bouwt:

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"

Registreer je GTIN's

Houd de identifiers die je gebruikt onder beheer, zodat elke Digital Link te herleiden is tot een bekend product:

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

qr3 gebruiken als jouw resolver

Je hoeft niet zelf een resolver te bouwen en te beheren. Richt je product-QR-code op de Digital Link, host het paspoort op qr3.app, en de resolver levert per verzoek de juiste representatie. De GTIN/serienummer in de URL blijven voor altijd stabiel (zodat gedrukte labels nooit kapotgaan), terwijl de data erachter bijwerkbaar blijft.

FAQ

Is de QR-code zelf anders dan een gewone? Nee — het is een standaard-QR (of Data Matrix) die een GS1 Digital Link-URL bevat. Elke camera opent hem; de intelligentie zit in de resolver, niet in het symbool.

Krijgen consumenten en recyclers echt verschillende inhoud? Ja — dat is content-onderhandeling. De browser krijgt HTML; een systeem dat application/ld+json opvraagt (of ?format=jsonld) krijgt gestructureerde data van dezelfde URL.

Kan ik mijn eigen productpagina behouden en toch conform zijn? Ja. De Digital Link kan meerdere getypeerde links blootleggen (een linkset) — je marketingpagina, het officiële paspoort, een recyclingdatablad — elk gemarkeerd met een linktype.

Bronnen

Probeer het live paspoort hierboven, en begin gratis om je eigen paspoort te resolven.