BodyliaBodylia OpenB2BSign in
← All guides

Certificate of analysis

nutrab2b.quality.coa_issued.v2 · Quality & compliance

Purpose
Lot test results against specification, multi-method, signed by QA; includes USP <2232> daily-dose evaluation and allergen declaration.
When to send
Lot released by QA.
Sender → receiver
Supplier or lab → Buyer
Expected responses
ACK
Equivalent standards
X12: 863 (Report of Test Results) · EDIFACT: QALITY · GS1: - · EPCIS: ObjectEvent inspecting (ilmd)
Scenarios using it
Full order-to-cash · Partial acceptance with back-order · Quantity change after acknowledgement · Cancel race after shipment · Split shipment, two lots · Over-shipment beyond tolerance · Multi-pallet, multi-lot SSCC hierarchy · Release against blanket contract · Failed CoA blocks shipment · CoA marked PASS but over USP <2232> · Out-of-spec lot ships under deviation · Hold blocks shipment until release · Undeclared allergen · Organic certificate expired before shipment · Remaining shelf life too short · Cold-chain excursion · Out-of-order events are parked and released · Dropped event, gap detected, replay · Three-way match failures · Short receipt settled with credit note

Fields and mappings

FieldTypeReqDescriptionCode list / formatEDI / GS1 / SAP mapping
coa_idstringyesCoA id
lot_numberstringyesLot / batch
item_idstringyesItem
ingredientstringIngredientingredient
mfg_datedateyesManufacture dateNB-R007
expiry_datedateyesExpiry / retestNB-R007
lab_glnstringTesting laboratory GLN
lab_schemestringLab accreditationquality_scheme
daily_dose_gnumberDaily dose used for USP <2232> evaluation (g)NB-R013
resultsarray<object>yesResults
analytestringyesAnalyteanalyte
methodstringyesMethodmethod
valuenumberNumeric result
text_valuestringText result (e.g. 'Absent', 'Conforms')
uomstringyesUnituom
minnumberSpec min
maxnumberSpec maxNB-R013
lodnumberLimit of detection
statusstringyesResult statusNB-R003result_status
allergens_declaredarray<string>Allergens declared present (allergen codes)NB-R009
released_byobjectyesQA release
namestringyesName
atdatetimeyesReleased at

Business rules

Implementation notes

Example

{
  "specversion": "2.0",
  "id": "evt-coa-ASH-26-118-1",
  "type": "nutrab2b.quality.coa_issued.v2",
  "source": "urn:gln:4012345000009:erp",
  "subject": "ASH-26-118",
  "time": "2026-11-02T09:00:00Z",
  "datacontenttype": "application/json",
  "dataschema": "https://nutrab2b.org/schemas/2.0/COA.json",
  "sender": {
    "gln": "4012345000009"
  },
  "receiver": {
    "gln": "0614141000012"
  },
  "correlationid": "CONV-RFQ-1001",
  "idempotencykey": "COA:ASH-26-118:1",
  "sequence": 1,
  "env": "test",
  "data": {
    "coa_id": "COA-ASH-26-118",
    "lot_number": "ASH-26-118",
    "item_id": "ASH-KSM-5",
    "ingredient": "ASHWAGANDHA",
    "mfg_date": "2026-10-01",
    "expiry_date": "2029-09-30",
    "lab_gln": "8901234000006",
    "lab_scheme": "ISO_17025",
    "daily_dose_g": 0.6,
    "results": [
      {
        "analyte": "ASSAY",
        "method": "HPLC",
        "value": 5.3,
        "uom": "P1",
        "min": 5,
        "status": "PASS"
      },
      {
        "analyte": "PB",
        "method": "USP_2232",
        "value": 0.21,
        "uom": "59",
        "max": 0.5,
        "status": "PASS"
      },
      {
        "analyte": "AS",
        "method": "USP_2232",
        "value": 0.1,
        "uom": "59",
        "max": 1.5,
        "status": "PASS"
      },
      {
        "analyte": "SALM",
        "method": "USP_2022",
        "text_value": "Absent in 10 g",
        "uom": "C62",
        "status": "PASS"
      },
      {
        "analyte": "IDENTITY",
        "method": "HPTLC",
        "text_value": "Conforms",
        "uom": "C62",
        "status": "PASS"
      }
    ],
    "allergens_declared": [],
    "released_by": {
      "name": "Dr. A. Menon",
      "at": "2026-10-20T10:00:00+05:30"
    }
  }
}

Mapping checklist