GS1 Digital Link explained
Last updated October 1, 2026
One code for people and systems
A traditional barcode only carries a number. A web link only opens a page. GS1 Digital Link combines the two: a URL whose path is the product's GS1 identifier. That's the format every PassportCraft QR code uses, and it matters for Digital Product Passports because the same physical code must serve shoppers, retailers, customs, and recyclers. Our insights article on product passport QR codes and GS1 Digital Link covers why the EU landed on this standard; this page covers how it behaves in PassportCraft.
Anatomy of your passport's URL
passportcraft.com/01/05060123456781—01is the GS1 Application Identifier for GTIN, followed by your GTIN padded to 14 digits (the GS1 Digital Link format requires exactly 14).passportcraft.com/01/05060123456781/21/SER123— when the passport's Serial Number field is filled, the URL adds21(the Application Identifier for serial number), identifying the individual item rather than the product line.passportcraft.com/01/05060123456790— a barcode saved as one of the passport's sizes and colours. It is a plain/01/URL like the first, built from that entry's own GTIN, and it opens the same passport with the size and colour named.
These URLs use passportcraft.com until your own domain is live. After that, the same paths follow your domain instead: dpp.yourbrand.com/01/05060123456781. The /01/ path is what makes the URL a GS1 Digital Link, whichever domain comes before it.
A serial number and a size are different things: the serial identifies one item and needs its own passport record, while a size or colour identifies a version of the model and lives under the shared passport.
You don't construct these URLs yourself; the QR panel builds them from the passport's GTIN and Serial Number, as covered in Downloading and printing QR codes.
What happens on a scan
The /01/ path on passportcraft.com is a GS1 Digital Link resolver, built to the GS1-Conformant Resolver standard (version 1.2.0). When a code is scanned:
- The resolver reads the GTIN (and serial, if present) from the URL. All standard GTIN lengths (8, 12, 13, and 14 digits) are accepted and matched to your passport.
- It looks up the passport for that GTIN: the passport's own barcode, or one saved under it as a size or colour. A serialized URL (
/21/...) matches only a passport with that exact GTIN and Serial Number. - It redirects to the passport's public page — the default destination for human visitors. For a size or colour barcode, the page names the size and colour scanned and shows that barcode as the GTIN.
Software can ask for more than the default page. A request with ?linkType=linkset returns a machine-readable list of everything available for that product — the passport page plus a structured JSON-LD data endpoint. This only works for published passports: a linkset request for an unpublished passport returns a 404. The resolver also publishes a standard description of itself at /.well-known/gs1resolver, which is how GS1-aware tools find out what it supports.
Other GS1 qualifiers a scanner might add (batch/lot, expiry) don't break anything — the resolver ignores them and falls back to the product-level passport.
When a passport isn't live
What a scanner sees depends on the passport's state, covered in full in Drafts vs published passports:
| Passport state | What a scan shows |
|---|---|
| Published | The live passport page |
| Draft (including after unpublishing) | "This Digital Product Passport is not available" — the same notice as a GTIN with no passport |
| No passport for that GTIN | "This Digital Product Passport is not available" |
In every non-published state, no product data is exposed — visitors get a neutral notice page. Your own team doesn't preview a draft by scanning it: open the passport from the Passports page and click Preview in the editor.
Unpublishing doesn't break the URL — it changes what it shows
Nothing you do to a passport stops the URL printed in its QR codes from resolving. Unpublishing swaps the live passport for the "not available" notice, and republishing swaps it back — printed codes pick up the change immediately, with nothing to reprint. The walkthrough is in Publishing a passport.
Compatibility with retailer scanners
Because a GS1 Digital Link is a plain https URL in a standard QR code:
- Consumers need nothing special — any phone camera opens the passport page.
- Retail and logistics systems that understand GS1 Digital Link can parse the GTIN directly from the URL, so the QR code can double as a product identifier in their workflows.
- Integrators can use the resolver's linkset responses to pull structured passport data programmatically.
What if a passport has no GTIN?
A passport without a GTIN can't have a GS1 Digital Link — its QR panel encodes a fallback URL of the form passportcraft.com/passport/{id} instead, and shows the prompt "Add a GTIN for a GS1-compliant URL". The fallback works for humans but carries no product identifier for systems, which is one of the reasons a GTIN is required to publish. Scanned before you publish, that fallback code shows "This passport hasn't been published yet" with a Sign in link for your team.
Frequently asked questions
What does a scan of one size's barcode show?
The shared passport, with the scanned size and colour named in the identity block (for example Size L · Ivory) and that barcode shown as the GTIN. Each size or colour saved under a passport has its own /01/{GTIN} URL; the product information is the same for all of them.
Do I have to enter my GTIN as 14 digits?
No. Enter it as printed under your barcode: 8, 12, 13, or 14 digits. PassportCraft pads it to 14 digits in the URL automatically, and the resolver matches scanned codes back to your passport regardless of which form was entered.
Can shoppers scan the code with a normal phone camera?
Yes. A GS1 Digital Link is an ordinary https URL, so any phone camera or QR app opens the passport page directly, no special app needed. The GS1 structure is extra information for systems that know how to read it.
What does someone see if they scan a code for an unpublished passport?
A neutral notice, not an error. A draft, including a passport you unpublished, shows 'This Digital Product Passport is not available' until it is published. No product data is exposed. Your own team previews a draft with the editor's Preview button, not by scanning.