QR code as GS1 Digital Link
Any phone camera reads it.
/01/09520123456788/21/AK500-000123/
Digital product passports with QR codes, on GitHub Pages, no subscription.
Free, also for companies. Licence PolyForm Shield 1.0.0.
passports/battery.json
{
"template": "battery",
"gtin": "09520123456788",
"productName": "Akku 500 Wh",
"category": "lmt",
"chemistry": "Li-Ion NMC 811",
"ratedCapacityAh": 13.9,
"voltage": "30 V / 36 V / 42 V",
"items": [
{ "serial": "AK500-000123",
"manufactureDate": "2026-09" }
]
}
Upload the PDF. Claude fills in what it states and marks every suggestion.

Anything missing from Annex XIII shows up in a list, with its reference.

Commit the JSON file. Each serial number gets a page with its own QR code.

Any phone camera reads it.
/01/09520123456788/21/AK500-000123/
Each field with its legal reference.
JSON and a schema.org Product in every page.
{ "@type": "Product",
"gtin14": "09520123456788",
"serialNumber": "AK500-000123" }
Static files. Any web space will do.
The datasheet goes straight to Anthropic, never to Passwerk.
Regulation (EU) 2023/1542, as of 8 November 2026.
| From | Obligation | Reference |
|---|---|---|
| 18 Aug 2025 | Separate collection symbol on every battery | Art. 13(4) |
| 18 Aug 2026 or later | Label with manufacturer, chemistry, weight and capacity | Art. 13(1) |
| 18 Feb 2027 | QR code on every battery | Art. 13(6) |
| 18 Feb 2027 | Battery passport for LMT, industrial (above 2 kWh) and electric vehicle batteries | Art. 77(1) |
The regulation does not prescribe hosting. It does require the passport to stay available after your company stops trading (Art. 78(e)). A GitHub account alone does not guarantee that, so also publish the pages on your own domain under a hosting contract.
Detailed composition, dismantling information and test reports (Annex XIII points 2 to 4) are for authorised parties only. Passwerk publishes the public part and names a contact for the rest. It has no access control.
No. Without a GTIN the passports live under /p/short-name/. The identifier must follow ISO/IEC 15459 (Art. 77(3)), which a GS1 GTIN does.
Yes, free of charge and with your own changes. The PolyForm Shield licence only forbids offering Passwerk as a competing product. It is not an OSI open-source licence.
No. Passwerk maps the fields of the legal text. Whether your passport is complete is part of your conformity assessment.
Node 20 or newer, no dependencies. For GitHub Pages: fork, choose “GitHub Actions” under Settings, Pages, and put your JSON files in passports/.
# passports/ holds the data, _site/ the finished pages
git clone https://github.com/BrickyStudios/digitaler-produktpass
cd digitaler-produktpass
npm run build
beispiel-ebike-akku.json → 01/09520123456788/ (+2 Seriennummern)
example-tshirt.json → 01/09520987654320/ (+0 Seriennummern)
fertig: _site/ für http://localhost:8080
npm run preview