QR codes and the resolver
A published battery product carries a QR code that links the physical item to its Digital Product Passport. Scanning it with any phone camera opens the passport in a browser, no app required. This page explains the journey from scan to passport.
The GS1 Digital Link
The QR code encodes a GS1 Digital Link URL. This is an open industry standard for turning a product's identifiers into a web address. On Traceable the link takes the form shown below, where {host} is the platform's configured passport host:
https://{host}/01/{gtin}
A printed QR code carries this link followed by ?linkType=gs1:dpp. A product that has no GTIN gets a link of the form {host}/dpp/{slug} instead.
In the link, {gtin} is the product's Global Trade Item Number. When a scanner opens this address, Traceable looks up the GTIN, finds the matching product, and renders its passport straight away. The GS1 URL stays in the browser's address bar (there is no redirect to a different-looking link), which keeps the address predictable and shareable.
If a GTIN ever matches more than one product, the resolver renders a chooser page listing the matching products so you can pick the right one. The chooser is headed "Multiple products share this GTIN". Adding a serial (/21/) or batch (/10/) segment that matches only one of them resolves that one directly. The resolver does this rather than silently serving the oldest match. In normal operation this should not happen, because a GTIN can belong to only one product across the platform; the chooser exists so that an ambiguous link is never resolved by guesswork.
Serial and batch level
The link can be more specific than a single product model. Extra segments identify an individual unit or a production batch:
https://{host}/01/{gtin}/21/{serial}
https://{host}/01/{gtin}/10/{batch}
21/{serial}identifies a specific serial number.10/{batch}identifies a batch or lot.
Traceable matches these against the product's registered unit items when the product has any, and otherwise against the product's own serial number and batch identifier. A serial or batch that matches a registered unit shows that unit's passport and QR code. If the combination is not recognised, or the link is malformed, the resolver returns a 404 page headed "Page not found" (the browser tab title is "Product Not Found - Traceable") rather than guessing at a match.
Serial and batch values must be 1 to 20 characters from A-Z, a-z, 0-9, ".", "_" and "-", starting with a letter or digit. A link whose serial or batch segment breaks that rule returns 404 by design; the platform now enforces the same limit when operators enter these identifiers, so a published passport's item-level link and its printed QR code always agree.
Machine clients
The same link serves both people and software. A browser receives the human-readable passport page. A machine client whose Accept header prefers application/ld+json or application/json receives the passport's JSON-LD at the same address, with status 200 and no redirect. A browser, curl's default */* and a missing header receive the HTML page. This lets automated systems read the passport data directly.
Opaque item codes (/i/<code>)
A second, shorter resolver address exists alongside the GS1 Digital Link:
https://{host}/i/{code}
{code} is a 14-character opaque code (not a GTIN) that serves as the item-level identifier for products being prepared for the EU Digital Product Passport Registry, and as a fallback carrier for products that do not have a GTIN. The code stays in the browser's address bar, as with /01/{gtin}. A machine client whose Accept header contains application/ld+json is redirected (HTTP 307) to the passport's JSON-LD endpoint.
A code is minted when the manufacturer prepares a product for EU-registry registration in their operator portal, so only products in registry preparation have one. A code that does not exist, is malformed, or belongs to a product that is not publicly served returns the same 404 page; the resolver never distinguishes "hidden" from "nonexistent". Most passports today are still reached through their GTIN-based /01/{gtin} link.
Voluntary passports
Some battery categories have no passport obligation under EU Battery Regulation 2023/1542 Article 77(1): SLI batteries, portable batteries, and industrial batteries with a capacity of 2 kWh or below. A manufacturer can still publish a passport for such a battery voluntarily, and the passport tells you so with a notice at the top of the page: "Voluntary passport: a battery passport is not required for this battery category under Regulation (EU) 2023/1542 Art. 77(1). The manufacturer publishes this product information voluntarily."
A voluntary passport is otherwise a normal passport: the same viewer, the same QR resolution, the same document access rules.
Archived passports
A passport that was published stays reachable at its printed QR link after the battery's passport is withdrawn, the model goes out of production, or the manufacturer is suspended or no longer maintains it on Traceable. Traceable keeps these passports available, read-only.
For these passports the page opens as normal, with a notice at the top that says why: the withdrawal date, reason and any manufacturer statement and successor product; that the model is no longer produced; or, for a company that is no longer active, the title "Passport no longer maintained on Traceable". That notice says the passport is kept available, read-only, as last published, and that battery data feeds no longer update it, so dynamic data such as state of health may not be current. It appears in the language you chose. A line on the notice gives a contact route for authorities and anyone with a legitimate interest. Archived passports are not listed in search engines or the sitemap. A passport withdrawn because the product was counterfeit shows the notice only, with none of the product data.
The machine-readable JSON endpoint answers HTTP 200 and adds an availability object that carries the same notice, with the header X-DPP-Availability: archived. Earlier releases answered 410 for a withdrawn product. See DPP endpoints for the fields.
A regulator's takedown (a revoked passport), a draft and a test product are not served: their link shows the same 404 page.
Recycled batteries
A battery passport ceases once the battery has been recycled. This applies to one battery unit at a time, once the unit is recorded as recycled. The unit's QR code still works, and opens a short notice instead of the passport:
- The page answers HTTP 410, with the header
X-DPP-Availability: ceased. - The notice is headed "This battery passport has ceased". It says which battery was recycled and on what date.
- If the manufacturer recorded a later passport for the battery, the notice links to it under the line "A later passport for this battery:".
A model passport never ceases, because registering units is optional, so the registered units may not be every battery of the model. If every unit registered on a retired model has been recycled, the model keeps its archived notice with one added line: "Every battery unit registered on this passport has been recycled."
A unit that has a later passport but has not been recycled shows the same "A later passport for this battery:" line with the link.
Related
- How to read a Digital Product Passport
- QR codes (operator guide) for how operators generate and print these codes