Examples
Le cinque richieste che un’integrazione fa davvero
Emettere un passaporto. Aggiungere un evento. Firmare una dichiarazione di un fornitore. Verificarne una. Servire una scansione. La maggior parte delle integrazioni è questo, ripetuto: tutto il resto è mappatura.
- Parti da
- Emettere + aggiungere
- Aggiungere più avanti
- Dichiarazioni firmate
- Ambiente
- Prima la sandbox
Definition
Che cosa fa davvero una tipica integrazione di passaporti?
Cinque operazioni, ripetute. Emettere un passaporto su un identificativo GS1. Aggiungere eventi EPCIS 2.0 man mano che il prodotto si muove. Raccogliere dichiarazioni firmate dai fornitori. Verificare una dichiarazione che ti viene presentata. E servire la vista pubblica quando qualcuno scansiona il supporto sul prodotto.
The volume is dominated by the first two. The difficulty is dominated by the third, which is a supplier relationship problem rather than a technical one.
01
Emettere un passaporto
curl https://api.circuleid.com/v1/passports \
-H "Authorization: Bearer $CIRCULEID_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"gtin": "09506000134352",
"productGroup": "textiles",
"level": "model",
"record": {
"name": "Merino Crew Knit",
"materials": [
{ "name": "merino wool", "share": 0.82, "certification": "RWS" },
{ "name": "recycled polyamide", "share": 0.18 }
],
"carbonFootprint": { "value": 14.2, "unit": "kgCO2e", "method": "ISO 14067" }
}
}'02
Aggiungere un evento di filiera
curl https://api.circuleid.com/v1/events \
-H "Authorization: Bearer $CIRCULEID_API_KEY" \
-d '{
"type": "ObjectEvent",
"action": "OBSERVE",
"eventTime": "2026-03-14T09:22:00+01:00",
"epcList": ["urn:epc:id:sgtin:0950600.013435.SN8817403"],
"bizStep": "urn:epcglobal:cbv:bizstep:commissioning",
"disposition": "urn:epcglobal:cbv:disp:active",
"bizLocation": { "id": "urn:epc:id:sgln:0950600.00001.0" }
}'03
Firmare una dichiarazione di un fornitore
curl https://api.circuleid.com/v1/credentials \
-H "Authorization: Bearer $SUPPLIER_API_KEY" \
-d '{
"type": "RecycledContentCredential",
"issuer": "did:web:mill.example.com",
"subject": "01/09506000134352",
"validUntil": "2027-03-14T00:00:00Z",
"claim": {
"material": "polyamide",
"recycledShare": 0.18,
"basis": "mass",
"chainOfCustody": "mass-balance"
}
}'04
Verificare un’asserzione che vi è stata presentata
curl https://api.circuleid.com/v1/credentials/verify \
-H "Authorization: Bearer $CIRCULEID_API_KEY" \
-d '{ "credential": { /* the credential as presented */ } }'
# {
# "verified": true,
# "issuer": "did:web:mill.example.com",
# "issuedAt": "2026-03-14T09:31:02Z",
# "status": "active" # "revoked" fails verification
# }05
Servire una scansione
# What the phone requests when a consumer scans the carrier:
curl https://id.circuleid.com/01/09506000134352 \
-H "Accept: application/json"
# A browser gets the rendered public passport instead.
# A verified recycler presenting a credential gets the treatment tier
# from the same URL — the resolver decides, not the caller.Modelli ricorrenti
Dove si trova di solito ciascuno
Pipeline di emissione
Un job pianificato che legge il PLM ed emette i passaporti per il lotto di produzione successivo.
Ingestione degli eventi
Un servizio che traduce i messaggi WMS e MES in eventi EPCIS via via che si verificano.
Portale fornitori
Dove i fornitori di secondo livello inviano e firmano le asserzioni che voi non potete fare in prima persona.
Vetrina
Leggere il livello pubblico per mostrare dati di sostenibilità documentati in una scheda.
Il supporto stesso
Nessun tuo codice: il resolver serve la scansione direttamente.
Accettazione dei resi
Leggere il livello di trattamento sulla linea di un impianto di resi o di riciclo.
Risposte
Domande frequenti
Da quale esempio dovrei partire?
Emettere un passaporto, poi aggiungere un evento. Queste due operazioni coprono la maggior parte del traffico di un’integrazione e ti obbligano a fissare il modello di identità — modello, lotto o oggetto — che è la decisione da cui dipende tutto il resto e la più difficile da cambiare dopo.
Devo gestire credenziali fin dal primo giorno?
No. Un passaporto con dati non firmati resta un passaporto funzionante; semplicemente non può dimostrare chi abbia affermato ciascun valore. La maggior parte dei programmi emette prima e aggiunge le dichiarazioni firmate dei fornitori man mano che questi si integrano, che è anche l’ordine realisticamente consentito dal coinvolgimento dei fornitori.
Che cosa riceve davvero il consumatore da una scansione?
Il livello pubblico del passaporto, risolto dall’identificatore GS1 Digital Link nel supporto, reso come pagina per un browser o restituito in JSON a un sistema che lo richiede. Nessuna autenticazione, nessun account e nessun profilo della persona che scansiona.
Possiamo fare test senza toccare la produzione?
Sì. Le chiavi sandbox si risolvono su un hostname separato, e i passaporti sandbox si comportano esattamente come quelli di produzione. Poiché un passaporto di produzione è un artefatto pubblico di lunga durata, la separazione è imposta e non convenzionale: una chiave sandbox semplicemente non raggiunge la produzione.
Next step
Fai girare le prime due con una chiave sandbox
Emetti un passaporto e aggiungi un evento. Basta questo per fissare il modello di identità, la decisione su cui poggia tutto il resto.