The Four Technical Requirements of a DPP-Compliant QR Code
The European Commission defines four criteria that make a DPP data carrier legally valid. A QR code that fails any of these is non-compliant:
- 1. Unique product identifier — the QR code must encode or resolve to a unique identifier for each product unit, batch, or model
- 2. Machine-readable format — the linked data must be structured (JSON-LD or similar), not just a human-readable web page
- 3. EU-compliant data hosting — the data must be hosted on infrastructure that meets EU requirements (GDPR-compliant, EU data residency for certain categories)
- 4. Update history preserved — the system must maintain version history, not just the current state
⚠️ Static QR code + static web page = non-compliant. The QR code can be static (fixed URL), but the data it links to must be dynamic, structured, machine-readable, and regularly verifiable.
ISO/IEC 15459 — What It Means for Your QR Code
The EU DPP requires compliance with ISO/IEC 15459, the international standard for unique item identifiers used in supply chains. This standard defines how unique identifiers are structured so they can be recognised across different systems, countries, and organisations.
In practice, this means your product identifier should follow a recognised scheme — most commonly GS1 (GTIN + serial number) or an equivalent issuing agency registered under ISO/IEC 15459. The QR code encodes this identifier as part of the URL or data payload.
GS1 Digital Link — The Recommended URL Format
The EU is aligning DPP with the GS1 Digital Link standard (GS1 Standard 1.3.0). This defines how a product's identifiers are embedded in a URL, making the QR code interoperable across supply chains.
A GS1 Digital Link URL looks like this:
Format: https://id.example.com/01/[GTIN]/21/[SerialNumber]
Example: https://id.yourbrand.com/01/05012345678900/21/ABC123456
Where: /01/ = GTIN application identifier · /21/ = serial number · /10/ = batch/LOT
When a smartphone scans this QR code, it resolves the URL to your DPP data record. The data returned must be in a structured, machine-readable format — typically JSON-LD aligned with Schema.org or the EU's own data model for the relevant product category.
QR Code Technical Specifications for DPP
| Specification | Requirement | Notes |
|---|---|---|
| Format | QR Code (ISO/IEC 18004) | NFC and RFID also accepted |
| Error Correction | Level M minimum (15%) — Level H recommended (30%) | Higher EC allows logo overlay |
| Version | Version 2 minimum — Version 5+ recommended | Depends on URL length |
| Minimum size | 2 cm × 2 cm (product label) | Larger for packaging |
| Quiet zone | 4 module widths on all sides | Required for reliable scanning |
| Colour | Black modules on white background | High contrast required |
| Content | GS1 Digital Link URL or equivalent | Must resolve to machine-readable data |
| Durability | Readable throughout product lifetime | 10 years minimum after market placement |
Placement Requirements — Where Must the QR Code Appear?
The data carrier must be physically present on the product, its packaging, or its accompanying documentation. For most products, the preferred placement is directly on the product label or packaging. The regulation also requires a backup copy of the DPP to be uploaded to the EU's central DPP registry.
- Directly on the product (preferred for durable goods)
- On the product packaging (for consumer goods)
- On accompanying documentation (for large equipment)
- Must be easily visible and readable without special tools
- Must remain legible throughout the product's expected lifetime
How to Generate a DPP-Compliant QR Code — Step by Step
- Step 1: Set up your DPP data infrastructure — a URL that returns structured JSON-LD data about the product
- Step 2: Construct your GS1 Digital Link URL (e.g. https://id.yourbrand.com/01/[GTIN]/21/[Serial])
- Step 3: Generate the QR code using this generator — paste your DPP URL, set error correction to H
- Step 4: Download SVG for print — place on product label at minimum 2×2 cm
- Step 5: Test — scan with multiple devices to confirm the URL resolves correctly
- Step 6: Maintain the data — update the hosted record as the product's status changes
✅ The QR code image itself is free to generate. The complexity and cost of DPP compliance is in the data infrastructure — not the QR code. Use this generator to create the QR image for any DPP data URL.
Error Correction Level — Why H Matters for DPP
QR codes have four error correction levels: L (7%), M (15%), Q (25%) and H (30%). The EU recommends at least Level M for DPP applications, but Level H is strongly recommended for product labels that may experience wear, damage or partial coverage.
Level H means the QR code remains scannable even if up to 30% of it is damaged, dirty or obscured. For products that are handled, transported, or stored for long periods, this is essential. Level H is also required if you place a logo in the center of the QR code.