---
title: "JSON-LD per i Passaporti Digitali di Prodotto (e dove si colloca EPCIS 2.0) — qr3.app Blog"
description: "Un DPP è utile alle macchine solo se è leggibile dalle macchine. Questa guida mostra il JSON-LD reale che un passaporto qr3 espone tramite il resolver live, come un unico URL serve sia gli esseri umani sia le macchine grazie alla content negotiation, e dove si colloca lo standard complementare per gli eventi EPCIS 2.0."
canonical: "https://qr3.app/it/blog/dpp-json-ld-epcis/"
lang: "it"
robots: "index,follow,max-image-preview:large,max-snippet:-1"
---

# JSON-LD per i Passaporti Digitali di Prodotto (e dove si colloca EPCIS 2.0) — qr3.app Blog

> Un DPP è utile alle macchine solo se è leggibile dalle macchine. Questa guida mostra il JSON-LD reale che un passaporto qr3 espone tramite il resolver live, come un unico URL serve sia gli esseri umani sia le macchine grazie alla content negotiation, e dove si colloca lo standard complementare per gli eventi EPCIS 2.0.

Canonical: <https://qr3.app/it/blog/dpp-json-ld-epcis/>

[← Blog](/it/blog/) [Tutorials](/it/blog/category/tutorials/)

30 maggio 2026 7 min di lettura [Tutorials](/it/blog/category/tutorials/) [dpp](/it/blog/tag/dpp/)[json-ld](/it/blog/tag/json-ld/)[epcis](/it/blog/tag/epcis/)[gs1-digital-link](/it/blog/tag/gs1-digital-link/)[interoperability](/it/blog/tag/interoperability/)

# JSON-LD per i Passaporti Digitali di Prodotto (e dove si colloca EPCIS 2.0)

Un DPP è utile alle macchine solo se è leggibile dalle macchine. Questa guida mostra il JSON-LD reale che un passaporto qr3 espone tramite il resolver live, come un unico URL serve sia gli esseri umani sia le macchine grazie alla content negotiation, e dove si colloca lo standard complementare per gli eventi EPCIS 2.0.

di **QR3 Redaktion**

![JSON-LD per i Passaporti Digitali di Prodotto (e dove si colloca EPCIS 2.0)](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/dpp-json-ld-epcis/hero.png)

Un Passaporto Digitale di Prodotto è pensato per essere letto dalle persone *e* dalle macchine: il sistema di conferimento di un riciclatore, un'API doganale, il crawler di un marketplace, lo script di un revisore della sostenibilità. Una pagina HTML pensata solo per gli esseri umani non basta. Il passaporto deve essere **leggibile dalle macchine** — un payload strutturato che un programma può analizzare, collegare ed elaborare logicamente senza ricorrere allo scraping.

Questa guida è rivolta agli sviluppatori che si pongono la domanda successiva più ovvia: *una volta che ho un DPP, come fa concretamente una macchina a leggerlo?* La risposta per qr3 è JSON-LD tramite il resolver pubblico. Mostreremo la risposta reale, spiegheremo come lo stesso URL serva gli esseri umani e le macchine, e poi collocheremo nel contesto EPCIS 2.0 — lo standard GS1 complementare per gli eventi.

## Cosa significa leggibilità dalle macchine per un DPP

Leggibile dalle macchine è qualcosa di più che "restituisce JSON". Per un passaporto di prodotto significa tre cose:

- **Strutturato** — campi che un parser può indirizzare (`gtin`, `name`, …), non testo discorsivo da sottoporre a scraping.

- **Tipizzato e collegato** — termini ancorati a vocabolari condivisi, così che `Product` significhi la stessa cosa per tutti. È il *Linked Data* presente in JSON-LD.

- **Stabile da recuperare** — un unico URL duraturo per ciascun articolo, su cui uno script può eseguire un `GET` per l'intero ciclo di vita del prodotto.

JSON-LD (JSON for Linking Data) garantisce tutti e tre gli aspetti. È normale JSON con in più un `@context` che mappa ogni chiave a un termine in un vocabolario pubblico — qui [schema.org](https://schema.org) e il [GS1 Web Vocabulary](https://gs1.org/voc/). Un crawler che già comprende schema.org comprende il passaporto senza alcuna integrazione personalizzata.

## Il DPP come JSON-LD (curl reale + risposta verificata)

Ogni passaporto qr3 si risolve a un URL GS1 Digital Link: `https://qr3.app/dpp/{gtin}/{serial}`. Aggiungi `?format=jsonld` per richiedere la vista Linked-Data. Sulla demo live della batteria:

```
curl -s "https://qr3.app/dpp/09520000000011/DEMO-BAT-01?format=jsonld"
```

restituisce:

```
{
  "@context": ["https://schema.org", "https://gs1.org/voc/"],
  "@type": "Product",
  "gtin": "09520000000011",
  "name": "EcoMax 5000 (Demo)"
}
```

Tre cose da notare:

- `@context` è un **array** di due vocabolari — schema.org per il web generale e `gs1.org/voc/` per i termini di prodotto di GS1. Le chiavi si risolvono rispetto a entrambi.

- `@type: "Product"` indica a qualsiasi consumatore Linked-Data esattamente di che tipo di entità si tratta.

- I valori (`gtin`, `name`) sono reali e live — questo è il payload effettivo, non un mock.

Questo è proprio il punto: lo script di un riciclatore non ha bisogno di un client specifico per qr3. Esegue un `GET` HTTP, analizza il JSON-LD che già comprende e legge direttamente il GTIN e il nome del prodotto.

## Un URL, due pubblici: content negotiation

Lo stesso URL `https://qr3.app/dpp/{gtin}/{serial}` serve un passaporto HTML adatto agli esseri umani *e* la vista per le macchine — il server decide cosa restituire in base a ciò che il chiamante richiede. Due modi per richiederlo:

| Cosa vuoi | Query param | Oppure header Accept |
| --- | --- | --- |
| Pagina HTML per umani | *(predefinito)* | `Accept: text/html` |
| JSON-LD (Linked Data) | `?format=jsonld` | `Accept: application/ld+json` |
| JSON semplice | `?format=json` | — |
| Linkset (risorse correlate) | `?format=linkset` | — |
| DCAT-AP (metadati del dataset) | `?format=dcat-ap` | — |

Così la fotocamera di uno smartphone che apre il QR atterra sul passaporto HTML leggibile, mentre uno script richiede all'URL *identico* il formato `application/ld+json` e ottiene dati strutturati:

```
# Vista per le macchine tramite negoziazione dell'header — stesso URL, nessuna query string
curl -s -H "Accept: application/ld+json" \
  "https://qr3.app/dpp/09520000000011/DEMO-BAT-01"
```

Un identificatore, un URL, molte rappresentazioni. Il GTIN/serial resta stabile; la *vista* si adatta al chiamante. È esattamente ciò che rende un DPP al tempo stesso duraturo e interoperabile.

## Dove si colloca EPCIS 2.0 (eventi vs. passaporto)

Una domanda frequente che ne consegue: *e EPCIS — non è quello lo standard GS1 per questo?* Distinzione importante:

- Un **DPP** è la **descrizione statica di un singolo articolo di prodotto** — la sua identità, i materiali, l'impronta di carbonio, la riciclabilità. Risponde alla domanda *"che cos'è questa cosa?"* Il JSON-LD qui sopra è proprio quell'istantanea.

- **EPCIS 2.0** è lo standard GS1 per gli **eventi della supply chain** — i dati di visibilità su *cosa è successo, dove, quando e perché*: un articolo è stato commissionato, spedito, ricevuto, riciclato. Risponde alla domanda *"cosa è successo a questa cosa e dove si trova?"*

Sono **complementari, non in concorrenza**. Il passaporto ti dice che il prodotto è una batteria da 5,2 kWh con il 35% di contenuto riciclato; una traccia di eventi EPCIS ti direbbe che è stata fabbricata ad Amburgo in una certa data, spedita attraverso un centro di distribuzione e arrivata da un riciclatore. EPCIS 2.0 è esso stesso compatibile con JSON/JSON-LD, perciò i due condividono la stessa visione Linked-Data e gli stessi identificatori GS1 (GTIN + serial) come chiave di join.

> **Ambito di qr3 (sii preciso):** qr3 **produce in output il DPP come JSON-LD** — è ciò che questo articolo dimostra. qr3 **non** fornisce la cattura di eventi EPCIS né endpoint EPCIS. Considera qui EPCIS 2.0 come lo standard *concettuale e complementare* che adotteresti accanto a un DPP per una tracciabilità completa della supply chain, non come una funzionalità di qr3.

Il modello mentale, quindi, è questo: il DPP (qr3, JSON-LD) è la *scheda di identità* del prodotto; EPCIS 2.0 (sistema separato) è il suo *registro di viaggio*. Stessi identificatori, due domande a cui si risponde.

## Generare un DPP che espone JSON-LD

Non devi fare nulla di speciale per "abilitare" JSON-LD — crea il passaporto e il resolver serve automaticamente ogni rappresentazione:

```
import { QR3 } from "@qr3/sdk";

const client = new QR3({ apiKey: process.env.QR3_API_KEY! });

const passport = await client.dpp.create({
  gtin: "09520000000011",
  serial: "SN-00012345",
  product_name: "PowerCell 5 kWh LFP",
  manufacturer: "ExampleTech GmbH",
  origin_country: "DE",
  category: "battery",
  market_countries: ["DE", "FR", "AT"],
  status: "live",
  battery_data: {
    capacity_kwh: 5,
    carbon_footprint_kg: 62,
    recycled_content_pct: 12,
    recyclability_pct: 95,
  },
});

// Il passaporto ora si risolve a https://qr3.app/dpp/09520000000011/SN-00012345
// Gli umani ottengono HTML; le macchine aggiungono ?format=jsonld (oppure inviano Accept: application/ld+json).
console.log(passport.qr.svg); // Il QR codifica il GS1 Digital Link verso il resolver
```

Una volta creato, l'URL dell'articolo risponde immediatamente a entrambi i pubblici — nessun passaggio di pubblicazione aggiuntivo per la vista delle macchine.

## FAQ

**Perché JSON-LD e non JSON semplice?**
Il JSON semplice è strutturato ma non *autodescrittivo*: un consumatore deve imparare i nomi dei tuoi campi. JSON-LD aggiunge `@context`, mappando ogni chiave ai termini di schema.org / GS1, così che qualsiasi consumatore Linked-Data lo comprenda senza un'integrazione personalizzata. Se ti serve solo una lettura veloce, `?format=json` resta comunque disponibile.

**qr3 implementa EPCIS 2.0?**
No. qr3 produce in output il DPP come JSON-LD. EPCIS 2.0 è lo standard GS1 separato e complementare per gli *eventi* della supply chain; lo eseguiresti in parallelo, unito tramite il GTIN + serial condivisi.

**Come ottengo la vista per le macchine?**
Aggiungi `?format=jsonld` all'URL del resolver, oppure invia `Accept: application/ld+json`. Entrambi restituiscono lo stesso payload Linked-Data.

**Il `@context` è stabile?**
Fissa schema.org più il GS1 Web Vocabulary (`gs1.org/voc/`) — entrambi vocabolari pubblici e versionati, così i consumatori possono fare affidamento sul significato dei termini.

## Fonti

- [JSON-LD 1.1 (W3C Recommendation)](https://www.w3.org/TR/json-ld11/)

- [GS1 Web Vocabulary](https://www.gs1.org/voc/)

- [GS1 EPCIS and CBV 2.0](https://www.gs1.org/standards/epcis)

- [schema.org Product](https://schema.org/Product)

- [ESPR — Regulation (EU) 2024/1781](https://eur-lex.europa.eu/eli/reg/2024/1781/oj)

**Inizia gratis** e crea un DPP che espone JSON-LD: [app.qr3.app/sign-up](https://app.qr3.app/sign-up)

Sono demo funzionanti con dati di prodotto fittizi e GTIN di esempio del prefisso GS1 952. Non attestano identificatori di prodotto assegnati, iscrizioni a un registro o certificazioni.

## Articoli correlati

- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/gs1-digital-link-resolver/hero.png) Tutorials Il resolver GS1 Digital Link, spiegato (con un esempio dal vivo) Un QR code DPP non è un link a una pagina web: è un GS1 Digital Link, e il resolver trasforma un identificativo in molte risposte sensibili al contesto. Ecco come funziona, con un passaporto dal vivo che puoi interrogare con curl subito.](/it/blog/gs1-digital-link-resolver/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/gs1-resolver-test-suite-dpp-links/hero.png) Tutorials Suite di test GS1 Resolver: DPP-Verificare in modo affidabile i link prima del go-live La stabile suite di test GS1 consente di verificare Resolver 1.2. Ecco come testare redirect, linkset, CORS, lingue e casi di errore prima del go-live.](/it/blog/gs1-resolver-test-suite-dpp-links/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/dpp-battery-passport-2027-20260715/hero.png) Notizie di settore BatteryPass-Ready avvia l’ambiente di test per il Passaporto Digitale delle Batterie Il consorzio BatteryPass-Ready ha avviato il 24 giugno 2026 un ambiente di test pubblico per il Passaporto Digitale delle Batterie, in vista dell’obbligo UE da febbraio 2027.](/it/blog/dpp-battery-passport-2027-20260715/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/sector-20260713/hero.png) Notizie di settore Passaporto digitale delle batterie 2027: cosa devono sapere ora i produttori Webinar, strumenti open source e nuove norme: il passaporto UE delle batterie sta prendendo slancio. Una panoramica sulla situazione a luglio 2026 e sulle questioni aperte fino a febbraio 2027.](/it/blog/sector-20260713/)

[← Tutti gli articoli](/it/blog/) [Inizia gratis](https://app.qr3.app/sign-up)
