Skip to main content

v0.99.19: One address for people and machines, and a cleaner passport JSON-LD

A GS1 Digital Link address now returns the passport JSON-LD directly when the request asks for JSON, and the passport JSON-LD uses standard vocabulary throughout.

This entry covers the changes that affect developers who read passports.

GS1 resolver content negotiation​

  • One address for people and machines. /01/{gtin}, /01/{gtin}/21/{serial} and /01/{gtin}/10/{batch} return the passport JSON-LD with a 200 when the Accept header prefers application/json, application/ld+json or any application/*+json type over HTML. Browsers and */* still get the HTML viewer. The response carries Vary: Accept.
  • No redirect for JSON requests. A JSON request is answered on the GS1 address itself instead of being redirected to /api/dpp/{slug}/jsonld, which continues to work as before.
  • Consistent not-found. An unknown GTIN, an invalid check digit or an unavailable product returns the same JSON 404 body.

See DPP endpoints for the full list of responses.

Production passport host​

The production passport host is dpp.traceable.digital. app.traceable.digital answers /dpp/... and /01/... paths with a 307 redirect to the same path on that host.

For integrators​

What to update: passport JSON-LD​

  • @id is the passport's GS1 Digital Link URI on the host that served the document, for example https://<host>/01/<gtin>. The decentralised identifier is in dpp:did (this term is removed in v0.99.20).
  • The espr: prefix is removed. Its terms are now under dpp:: dpp:circularity (with dpp:recycledContentPercentage, dpp:reparabilityScore and dpp:dismantlingInstructions), dpp:substancesOfConcern, dpp:economicOperators (with dpp:role and dpp:eoriNumber), dpp:dppGranularity and dpp:productCategory. The values are unchanged.
  • gs1:serialNumber is now gs1:hasSerialNumber, the GS1 Web Vocabulary property for AI 21.
  • Rated capacity uses unit code AMH (ampere hour).
  • sku holds the model identifier, and is omitted when there is none.
  • The W3C credentials context is removed, because the document is not a Verifiable Credential.
  • dpp:temperatureRange appears only when an idle temperature bound is a number.
  • DigitalProductPassport is defined in the context, and the bpv1_3: prefix is declared in it.

See JSON-LD format for the updated vocabulary.