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
| Field | Type | Req | Description | Code list / format | EDI / GS1 / SAP mapping |
|---|---|---|---|---|---|
| gtin | string | yes | GTIN | ^(\d{8}|\d{12,14})$ | |
| lot_number | string | yes | Lot | ||
| digital_link | string | yes | https://id.example/01/{gtin}/10/{lot} | ||
| origin_countries | array<string> | yes | Origin countries of key ingredients | ||
| upstream_lots | array<string> | Upstream lots | |||
| coa_sha256 | string | Hash of CoA | ^[a-f0-9]{64}$ | ||
| certifications | array<string> | Certifications | |||
| co2e_kg_per_unit | number | Carbon footprint kg CO₂e per unit |
Business rules
- None beyond schema and code lists.
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
- Every required field populated from your system of record
- Coded fields mapped to the Bodylia OpenB2B code lists
- GLN, GTIN and SSCC check digits validated
- Rules above pass in the validator
- Idempotency key and per-subject sequence generated
- Expected responses, including rejections, handled
