Recall notice
nutrab2b.quality.recall_issued.v2 · Quality & compliance
- Purpose
- Recall or withdraw lots; must name every downstream lot derived from the affected lot and every customer that received them.
- When to send
- Safety or compliance issue in market.
- Sender → receiver
- Brand / responsible party → All partners in the chain
- Expected responses
- ACK (mandatory, within 24 h for Class I)
- Equivalent standards
- EPCIS: ObjectEvent recalling
- Scenarios using it
- Recall walks the full genealogy
Fields and mappings
| Field | Type | Req | Description | Code list / format | EDI / GS1 / SAP mapping |
|---|---|---|---|---|---|
| recall_id | string | yes | Recall id | ||
| class | string | yes | Recall class | recall_class | |
| reason | string | yes | Reason | ||
| root_lots | array<string> | yes | Lots where the problem started | ||
| affected_lots | array<string> | yes | All affected lots incl. every downstream lotNB-R010 | ||
| affected_customers | array<string> | GLNs that received affected lots | |||
| action | string | yes | What partners must do | ||
| markets | array<string> | Markets (country codes) |
Business rules
- NB-R010 Recall incomplete, recall must list every downstream lot derived from the affected lot.
Example
{
"specversion": "2.0",
"id": "evt-recall-RC-2027-01-1",
"type": "nutrab2b.quality.recall_issued.v2",
"source": "urn:gln:4012345000009:erp",
"subject": "RC-2027-01",
"time": "2026-11-02T09:00:00Z",
"datacontenttype": "application/json",
"dataschema": "https://nutrab2b.org/schemas/2.0/RECALL.json",
"sender": {
"gln": "4012345000009"
},
"receiver": {
"gln": "0614141000012"
},
"correlationid": "CONV-RFQ-1001",
"idempotencykey": "RECALL:RC-2027-01:1",
"sequence": 1,
"env": "test",
"data": {
"recall_id": "RC-2027-01",
"class": "II",
"reason": "Undeclared sesame cross-contact",
"root_lots": [
"BL-27-001"
],
"affected_lots": [
"BL-27-001",
"FP-27-010"
],
"affected_customers": [
"0614141000012"
],
"action": "Quarantine and return",
"markets": [
"US"
]
}
}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
