CirculeID

Examples

De vijf verzoeken die een integratie werkelijk doet

Een paspoort uitgeven. Een gebeurtenis toevoegen. Een leveranciersclaim ondertekenen. Er een verifiëren. Een scan bedienen. De meeste integraties zijn deze vijf, herhaald — al het andere is mapping.

Begin met
Uitgeven + toevoegen
Later toevoegen
Ondertekende claims
Omgeving
Eerst sandbox

Definition

Wat doet een typische paspoortintegratie werkelijk?

Vijf handelingen, herhaald. Een paspoort uitgeven op een GS1-identificator. EPCIS 2.0-gebeurtenissen toevoegen terwijl het product beweegt. Ondertekende claims bij leveranciers ophalen. Een claim verifiëren die u wordt voorgelegd. En de publieke weergave serveren wanneer iemand de drager op het product scant.

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

Een paspoort uitgeven

Post het productrecord op de bijbehorende GS1-identificator. Het antwoord bevat de resolvebare Digital Link, de dragerpayload en het gaprapport voor de productgroep.
POST /v1/passports
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

Een ketengebeurtenis toevoegen

EPCIS 2.0 in de JSON-LD-serialisatie. Welk object, wanneer, waar en welke bedrijfsstap — de vier dimensies waarop elke gebeurtenis antwoord geeft.
POST /v1/events
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

Een leveranciersclaim ondertekenen

Uitgegeven door de leverancier onder diens eigen gedecentraliseerde identificator, zodat de claim zijn auteur meedraagt. Dit maakt van een opgeslagen cijfer een bewijs.
POST /v1/credentials
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

Een aan u voorgelegde claim verifiëren

De verificatie controleert de handtekening en de intrekkingsstatus. Zij vereist CirculeID niet — dit endpoint is een gemak, geen afhankelijkheid.
POST /v1/credentials/verify
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

Een scan bedienen

Het publieke pad. Geen sleutel, geen account en hetzelfde antwoord voor elke anonieme aanroeper — daarom kan het aan de edge worden gecachet.
GET /01/{gtin}
# 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.

Patronen

Waar elk daarvan doorgaans zit

Dezelfde vijf operaties, geplaatst in de systemen die ze doorgaans bezitten.
  • Uitgiftepijplijn

    Een geplande taak die het PLM leest en paspoorten uitgeeft voor de volgende productieserie.

  • Gebeurtenisverwerking

    Een dienst die WMS- en MES-berichten omzet in EPCIS-gebeurtenissen zodra ze zich voordoen.

  • Leveranciersportaal

    Waar leveranciers in de tweede schakel de claims indienen en ondertekenen die u zelf niet kunt doen.

  • Webshop

    De publieke laag lezen om onderbouwde duurzaamheidsdata op een aanbieding te tonen.

  • De drager zelf

    Helemaal geen code van u — de resolver bedient de scan rechtstreeks.

  • Inname bij terugname

    De verwerkingslaag lezen aan de lijn van een retour- of recyclinginrichting.

Antwoorden

Veelgestelde vragen

Met welk voorbeeld moet ik beginnen?

Een paspoort uitgeven en vervolgens een gebeurtenis toevoegen. Die twee dekken het merendeel van het verkeer van een integratie en dwingen u het identiteitsmodel vast te stellen — model, batch of item — de beslissing waar al het andere van afhangt en die later het lastigst te wijzigen is.

Moet ik vanaf dag één met credentials werken?

Nee. Een paspoort met niet-ondertekende data is nog steeds een werkend paspoort; het kan alleen niet aantonen wie welk cijfer beweerde. De meeste programma’s geven eerst uit en voegen ondertekende leveranciersclaims toe naarmate leveranciers aansluiten, wat ook de volgorde is die de praktijk toelaat.

Wat krijgt de consument werkelijk uit een scan?

Het publieke niveau van het paspoort, geresolvet vanaf de GS1 Digital Link-identificator in de drager, weergegeven als pagina voor een browser of teruggegeven als JSON aan een systeem dat erom vraagt. Geen authenticatie, geen account en geen profiel van de scannende persoon.

Kunnen wij testen zonder productie te raken?

Ja. Sandboxsleutels resolven tegen een aparte hostnaam, en sandboxpaspoorten gedragen zich precies als productiepaspoorten. Omdat een productiepaspoort een langlevend publiek artefact is, wordt de scheiding afgedwongen in plaats van afgesproken — een sandboxsleutel kan de productie eenvoudigweg niet bereiken.

Next step

Voer de eerste twee uit met een sandboxsleutel

Geef één paspoort uit en voeg één gebeurtenis toe. Dat is genoeg om het identiteitsmodel vast te stellen, de beslissing waarop al het andere rust.

Index