BodyliaBodylia OpenB2BSign in
← All guides

Digital product passport

nutrab2b.trace.passport_published.v2 · Traceability

Purpose
Consumer- and regulator-facing passport for a finished lot: origin, genealogy summary, CoA hash, certifications, carbon footprint, resolvable via GS1 Digital Link QR.
When to send
Finished lot released.
Sender → receiver
Brand → Hub / public resolver
Expected responses
ACK
Equivalent standards
GS1: GS1 Digital Link + EPCIS · EPCIS: ilmd
Scenarios using it
-

Fields and mappings

FieldTypeReqDescriptionCode list / formatEDI / GS1 / SAP mapping
gtinstringyesGTIN^(\d{8}|\d{12,14})$
lot_numberstringyesLot
digital_linkstringyeshttps://id.example/01/{gtin}/10/{lot}
origin_countriesarray<string>yesOrigin countries of key ingredients
upstream_lotsarray<string>Upstream lots
coa_sha256stringHash of CoA^[a-f0-9]{64}$
certificationsarray<string>Certifications
co2e_kg_per_unitnumberCarbon footprint kg CO₂e per unit

Business rules

Example

{
  "specversion": "2.0",
  "id": "evt-product_passport-FP-27-010-1",
  "type": "nutrab2b.trace.passport_published.v2",
  "source": "urn:gln:4012345000009:erp",
  "subject": "FP-27-010",
  "time": "2026-11-02T09:00:00Z",
  "datacontenttype": "application/json",
  "dataschema": "https://nutrab2b.org/schemas/2.0/PRODUCT_PASSPORT.json",
  "sender": {
    "gln": "4012345000009"
  },
  "receiver": {
    "gln": "0614141000012"
  },
  "correlationid": "CONV-RFQ-1001",
  "idempotencykey": "PRODUCT_PASSPORT:FP-27-010:1",
  "sequence": 1,
  "env": "test",
  "data": {
    "gtin": "00850012345674",
    "lot_number": "FP-27-010",
    "digital_link": "https://id.nutrabrand.example/01/00850012345674/10/FP-27-010",
    "origin_countries": [
      "IN"
    ],
    "upstream_lots": [
      "ASH-26-118",
      "H-26-ASH-07"
    ],
    "certifications": [
      "ORGANIC_USDA"
    ],
    "co2e_kg_per_unit": 0.12
  }
}

Mapping checklist