Request for quotation
nutrab2b.sourcing.rfq_issued.v2 · Sourcing
- Purpose
- Request prices and lead times for one or more items, quantities and specs.
- When to send
- Buyer demand.
- Sender → receiver
- Buyer → Supplier
- Expected responses
- QUOTE, ACK
- Equivalent standards
- X12: 840 · EDIFACT: REQOTE · SAP: RFQ (ME41)
- Scenarios using it
- Full order-to-cash · Quote revision supersedes original
Fields and mappings
| Field | Type | Req | Description | Code list / format | EDI / GS1 / SAP mapping |
|---|---|---|---|---|---|
| rfq_id | string | yes | RFQ id | ||
| respond_by | date | yes | Respond byNB-R015 | ||
| incoterm | string | Requested Incoterm | incoterm | ||
| ship_to | object | Ship-to | |||
| gln | string | yes | Location GLN | ^\d{13}$ | x12: N1 ST/SF N104 edifact: NAD+ST/SF |
| name | string | Name | |||
| address | object | Postal address | |||
| lines | array<string> | Street lines | |||
| city | string | City | |||
| postal_code | string | Postal code | |||
| region | string | State / province (ISO 3166-2 subdivision) | |||
| country | string | yes | Country | country | |
| lines | array<object> | yes | Requested items | ||
| line_no | integer | yes | Line | ||
| item_id | string | yes | Buyer's or seller's item number | x12: PO107 (BP/VP) edifact: PIA sap: MATNR | |
| gtin | string | GS1 GTIN of the traded item | ^(\d{8}|\d{12,14})$ | x12: PO107 (UK) edifact: LIN C212 (SRV) gs1: gtin | |
| ingredient | string | NutraB2B ingredient master code | ingredient | ||
| description | string | yes | Item description | x12: PID05 edifact: IMD | |
| hs_code | string | yes | HS 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_code | string | National tariff line for the destination country (8–10 digits)NB-R005 | ^\d{8,10}$ | ||
| grade | string | Grade / pharmacopoeia | grade | ||
| form | string | Product form | product_form | ||
| standardisation | object | Extract standardisation | |||
| type | string | yes | Notation | standardisation | |
| marker | string | Marker compound | |||
| min_pct | number | Minimum % | |||
| max_pct | number | Maximum % | |||
| ratio | string | Drug-extract ratio e.g. 10:1 | ^\d+(\.\d+)?(-\d+(\.\d+)?)?:1$ | ||
| method | string | Assay method | method | ||
| certifications | array<string> | Required certifications | |||
| quantity | object | yes | Quantity | ||
| value | number | yes | Quantity | ||
| uom | string | yes | Unit of measure | uom | |
| needed_by | date | Needed by |
Business rules
- NB-R015 Date order, dates are in the wrong order (e.g. delivery before order).
Example
{
"specversion": "2.0",
"id": "evt-rfq-RFQ-1001-1",
"type": "nutrab2b.sourcing.rfq_issued.v2",
"source": "urn:gln:0614141000012:erp",
"subject": "RFQ-1001",
"time": "2026-11-02T09:00:00Z",
"datacontenttype": "application/json",
"dataschema": "https://nutrab2b.org/schemas/2.0/RFQ.json",
"sender": {
"gln": "0614141000012"
},
"receiver": {
"gln": "4012345000009"
},
"correlationid": "CONV-RFQ-1001",
"idempotencykey": "RFQ:RFQ-1001:1",
"sequence": 1,
"env": "test",
"data": {
"rfq_id": "RFQ-1001",
"respond_by": "2026-11-10",
"incoterm": "FCA",
"ship_to": {
"gln": "0614141000012",
"address": {
"country": "US"
}
},
"lines": [
{
"line_no": 1,
"item_id": "ASH-KSM-5",
"ingredient": "ASHWAGANDHA",
"description": "Ashwagandha root extract 5%",
"hs_code": "1302.19",
"grade": "USP_DSC",
"quantity": {
"value": 500,
"uom": "KGM"
},
"needed_by": "2027-01-15"
}
]
}
}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
