GS1 Digital Link for the EU DPP: A Practical Guide
The identifier layer most real DPP implementations will actually use: how GS1 Digital Link URIs work, how they resolve, and how they map to EN 18219 and EN 18220.
In 30 seconds
- •What: a web URI that encodes product identifiers (GTIN + serial) so a scan resolves to online data
- •Role in DPP: the practical identifier + carrier layer under EN 18219 / 18220
- •Carrier: typically QR or Data Matrix — the printed bridge to the passport
- •Key choice: model-level vs unit-level granularity — driven by your delegated act
What GS1 Digital Link is
GS1 Digital Link
A GS1 standard that expresses GS1 identifiers — GTIN, GLN, serial numbers, batch numbers — as structured web URIs, so that any barcode scan can resolve to online information about the identified product, place or entity.
The insight behind Digital Link is simple but powerful: a barcode is an identifier, and an identifier encoded as a URL is a resolvable pointer. Encode a GTIN as a URI and the same printed symbol works both at the checkout scanner and as a doorway to the product's online data — including its Digital Product Passport.
For the DPP this is almost perfectly shaped: the regulation needs a persistent, machine-resolvable link between a physical product and its data. Digital Link is already standardised (ISO/IEC 18975), globally deployed, and built for exactly that bridging role.
URI syntax
A Digital Link URI encodes GS1 Application Identifiers (AIs) as URI path segments:
https://id.gs1.org/01/09506000134352
│ │ └─ GTIN (AI 01)
│ └─ Application Identifier
└─ resolver domain
https://id.gs1.org/01/09506000134352/21/SN-00012345
│
└─ serial number (AI 21)
https://id.gs1.org/01/09506000134352/10/BATCH-77
│
└─ batch/lot (AI 10)The core AIs you will use: 01 = GTIN (product type), 21 = serial number (individual unit), 10 = batch/lot, 235/8003/8006 for more specialised identifiers. Compose them to express the granularity your delegated act requires — model-level is just the GTIN; unit-level adds a serial; batch-level adds the lot.
You are not required to use the id.gs1.org domain — the URI can live on your own domain (e.g. id.yourbrand.com/01/{gtin}/21/{serial}) as long as the structured pattern holds. The domain is resolution infrastructure, not identity.
Choosing granularity: model vs batch vs unit
| Level | Identifier | When to use |
|---|---|---|
| Model level | GTIN only — /01/{gtin} | One passport per product type; simpler, lower data volume; many delegated acts start here |
| Batch level | GTIN + batch — /01/{gtin}/10/{batch} | Variation matters at batch granularity — runs, formulations, material lots |
| Unit level | GTIN + serial — /01/{gtin}/21/{serial} | Per-item lifecycle tracking — batteries, high-value goods, repair/transfer/EoL events |
The delegated act dictates minimum granularity — battery passports are unit-level; many other groups will permit model or batch level. Unit-level is the most capable (every item has its own passport, its own events, its own EoL record) but serialisation at production scale is real operational cost.
The Application Identifiers that carry it
Each path segment in a Digital Link URI is an Application Identifier (AI) — a defined numeric prefix telling systems what the value means. The ones that matter for the DPP:
| AI | Carries | DPP role |
|---|---|---|
| (01) | GTIN — Global Trade Item Number | The primary product key most passports build on |
| (10) | Batch / lot number | Batch-level passport granularity |
| (21) | Serial number | Unit-level passports (e.g. battery, high-value goods) |
| (235) | Third-party-controlled serial | Serials issued outside the brand owner — component passports |
| (8003) | GRAI — Global Returnable Asset Identifier | Reusable assets, packaging, pallets |
| (253) | GDTI — document identifier | Identifying linked documents / declarations |
| (91–99) | Company-internal information | Custom segments — internal SKUs, plant codes |
The composability is the point: an identifier like /01/…/10/…/21/… layers model, batch and unit keys into one URI — and each AI is globally unambiguous, so any resolver knows how to parse it.
How resolution works
Encode the identifier as a URI
Compose the Digital Link URI for the product (GTIN, plus serial/batch if unit or batch level).
Print the carrier
Encode the URI into a QR code or Data Matrix and apply it to the product, packaging or documents.
Scan → HTTP GET
Any scanner reads the carrier and performs a web request to the URI — the same request a browser would make.
Resolver routes by link type
The resolver interprets the request and routes to the right destination: product page for consumers, passport data for machines, regulator view for authorities — driven by link types and Accept headers.
Serve the passport data
The resolver returns or redirects to the DPP data (JSON-LD) hosted by the operator or service provider — public slice open, restricted slice behind access control.
That indirection is the design's strength: the printed code never changes, but where it resolves can be remapped as systems, providers and delegated acts evolve.
Link types: how one scan serves many audiences
The single most important — and least understood — feature of GS1 Digital Link is that a single identifier URI can resolve to many different resources, selected by link type. A scan does not have to return one page; the resolver returns a linkset — a menu of typed links — and the client picks the one it wants.
This is the mechanism that lets one QR code serve a consumer, a regulator and a recycler differently. The linkset returned for a product might look like:
Link: <https://brand.example/product/12345>; rel="gs1:productPage",
<https://dpp.brand.example/01/09501234567890/21/SN-884211>; rel="gs1:sustainabilityInfo",
<https://dpp.brand.example/cert/12345>; rel="gs1:certificationInfo",
<https://docs.brand.example/manual/12345>; rel="gs1:instructions"Each rel is a registered link type. The DPP lives behind the sustainability / certification link types — so the same physical scan that takes a consumer to a product page can take a market-surveillance tool straight to the passport record. Content negotiation by link type is what makes a single carrier satisfy the ESPR's multi-audience requirement.
Practically, resolver choice matters: a self-hosted resolver gives you full control over the linkset; the GS1 resolver (id.gs1.org) provides a neutral, globally-deployed resolution backbone. Many implementations use the GS1 resolver for the canonical link and redirect from there to their own DPP service.
Encoding in carriers
| Carrier | Characteristics | DPP fit |
|---|---|---|
| QR code | Free, universally scannable, larger footprint | Default for consumer-facing products |
| Data Matrix | Compact, damage-tolerant, direct-part-marking capable | Batteries, industrial parts, small surfaces |
| NFC | Tap-to-read, no line of sight, harder to clone | Higher-value goods, anti-counterfeit contexts |
| RFID | Bulk reads, no line of sight, infrastructure cost | Logistics and warehouse-facing items |
How Digital Link maps to EN 18219 and EN 18220
EN 18219 defines the DPP identifier system (UPI at model/batch/unit level, plus UOI and UFI for actors). GS1 Digital Link is the natural concrete implementation: the UPI is expressed as a GTIN (optionally + serial/batch), encoded as a Digital Link URI so it resolves over the web.
EN 18220 governs the data carrier. Digital Link is carrier-agnostic — the same URI encodes into QR, Data Matrix, NFC or RFID — so a Digital Link strategy satisfies the carrier flexibility the standard requires.
In short: EN 18219/18220 define what must be true of identifiers and carriers; GS1 Digital Link is the how most organisations will actually build it — because the resolution infrastructure, scanning ecosystem and tooling already exist.
Implementation pitfalls to avoid
Serialisation is the real cost, not the code
Printing a GTIN-level QR is trivial. Issuing, tracking and engraving a unique serial per unit at line speed is a manufacturing-systems change — plan it as such.
Resolution is infrastructure, not a redirect
The resolver must serve tiered access (public vs restricted), not a single landing page. Treat it as an API surface, not a vanity URL.
The carrier must outlive the data
A QR that fades, scuffs or separates from the product breaks the passport at the physical layer. EN 18220 durability requirements exist for exactly this reason.
Batch vs unit changes your data model
Deciding granularity late forces rework on identifiers, carriers, data volume and resolution. Decide it when you scope applicability, not when you build.
Frequently asked questions
Build this hands-on
The CDPI certification includes an interactive identifier-resolution lab — you build and resolve GS1 Digital Link URIs against a real resolver model.
Explore CDPIRelated: the EN 182xx standards · the complete DPP guide