BodyliaBodylia OpenB2BSign in
← All guides

Product / item specification

nutrab2b.master.product_upserted.v2 · Master data

Purpose
The full specification of an ingredient or finished product: identity, botanical source, specs per test, allergens, claims, storage, shelf life.
When to send
New item, spec revision.
Sender → receiver
Supplier / brand → Buyers, CDMOs, labs
Expected responses
ACK
Equivalent standards
GS1: GDSN Trade Item · X12: 832 Price/Sales Catalog · EDIFACT: PRICAT · SAP: Material master (MARA/MARC/QM spec)
Scenarios using it
Full order-to-cash · Undeclared allergen

Fields and mappings

FieldTypeReqDescriptionCode list / formatEDI / GS1 / SAP mapping
item_idstringyesBuyer's or seller's item number
x12: PO107 (BP/VP)
edifact: PIA
sap: MATNR
gtinstringGS1 GTIN of the traded item^(\d{8}|\d{12,14})$
x12: PO107 (UK)
edifact: LIN C212 (SRV)
gs1: gtin
ingredientstringNutraB2B ingredient master codeingredient
descriptionstringyesItem description
x12: PID05
edifact: IMD
hs_codestringyesHS 6-digit (or national) classificationNB-R005 NB-R017^\d{4}(\.\d{2}){1,2}$|^\d{6,10}$
x12: PO107 (HS)
edifact: PIA+5 C212 (HS)
national_codestringNational tariff line for the destination country (8–10 digits)NB-R005^\d{8,10}$
gradestringGrade / pharmacopoeiagrade
formstringProduct formproduct_form
standardisationobjectExtract standardisation
typestringyesNotationstandardisation
markerstringMarker compound
min_pctnumberMinimum %
max_pctnumberMaximum %
ratiostringDrug-extract ratio e.g. 10:1^\d+(\.\d+)?(-\d+(\.\d+)?)?:1$
methodstringAssay methodmethod
certificationsarray<string>Required certifications
casstringCAS number^\d{2,7}-\d{2}-\d$
botanicalobjectBotanical identity
latin_namestringyesLatin binomial incl. author
plant_partstringyesPlant part
origin_countrystringCountry of origincountry
wild_craftedbooleanWild collected
solventstringExtraction solvent
specificationarray<object>Release specification, one row per test
analytestringyesAnalyteanalyte
methodstringyesMethodmethod
minnumberLower limit
maxnumberUpper limit
uomstringyesUnituom
text_limitstringText limit, e.g. 'Absent in 10 g' or 'Conforms'
allergensarray<string>Allergens present (allergen codes)NB-R009
claimsarray<string>Claim categories (claim codes)
daily_dose_gnumberMaximum daily dose of the finished product (g) for USP <2232>NB-R013
shelf_life_monthsintegeryesShelf life from manufacture
storagestringStorage classstorage
min_shelf_life_daysintegerMinimum remaining shelf life required at delivery

Business rules

Example

{
  "specversion": "2.0",
  "id": "evt-product-PRODUCT-1",
  "type": "nutrab2b.master.product_upserted.v2",
  "source": "urn:gln:4012345000009:erp",
  "subject": "PRODUCT",
  "time": "2026-11-02T09:00:00Z",
  "datacontenttype": "application/json",
  "dataschema": "https://nutrab2b.org/schemas/2.0/PRODUCT.json",
  "sender": {
    "gln": "4012345000009"
  },
  "receiver": {
    "gln": "0614141000012"
  },
  "correlationid": "CONV-RFQ-1001",
  "idempotencykey": "PRODUCT:PRODUCT:1",
  "sequence": 1,
  "env": "test",
  "data": {
    "item_id": "ASH-KSM-5",
    "ingredient": "ASHWAGANDHA",
    "description": "Ashwagandha root extract 5% withanolides",
    "hs_code": "1302.19",
    "grade": "USP_DSC",
    "form": "EXTRACT_DRY",
    "standardisation": {
      "type": "STD_MARKER",
      "marker": "withanolides",
      "min_pct": 5,
      "method": "HPLC"
    },
    "certifications": [
      "ORGANIC_USDA",
      "NON_GMO_PV"
    ],
    "botanical": {
      "latin_name": "Withania somnifera (L.) Dunal",
      "plant_part": "root",
      "origin_country": "IN",
      "wild_crafted": false,
      "solvent": "water"
    },
    "specification": [
      {
        "analyte": "ASSAY",
        "method": "HPLC",
        "min": 5,
        "uom": "P1"
      },
      {
        "analyte": "PB",
        "method": "USP_2232",
        "max": 0.5,
        "uom": "59"
      },
      {
        "analyte": "SALM",
        "method": "USP_2022",
        "uom": "C62",
        "text_limit": "Absent in 10 g"
      }
    ],
    "allergens": [],
    "claims": [
      "STRUCTURE_FUNCTION"
    ],
    "daily_dose_g": 0.6,
    "shelf_life_months": 36,
    "storage": "AMBIENT",
    "min_shelf_life_days": 540
  }
}

Mapping checklist