BodyliaBodylia OpenB2BSign in
← All guides

Purchase order response

nutrab2b.order.responded.v2 · Ordering

Purpose
Accept, reject or change the order line by line (quantity, date, price, substitution, back-order).
When to send
PO or PO change received.
Sender → receiver
Supplier → Buyer
Expected responses
ACK
Equivalent standards
X12: 855 · EDIFACT: ORDRSP · GS1: OrderResponse · SAP: ORDRSP IDoc
Scenarios using it
Full order-to-cash · PO rejected below MOQ · Partial acceptance with back-order · PO response must answer every line · 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 · Out-of-spec lot ships under deviation · Hold blocks shipment until release · Organic certificate expired before shipment · Remaining shelf life too short · Cold-chain excursion · Duplicate delivery (idempotency) · 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
po_numberstringyesPO answered
responsestringyesaccepted | rejected | changed^(accepted|rejected|changed)$
x12: BAK02 (AT/RD/AC)
edifact: BGM 1225 (29/27/4)
reject_reasonstringReason when rejectedreject_reason
linesarray<object>yesOne entry per PO line
line_nointegeryesPO lineNB-R014 NB-R016
statusstringyesLine statusline_status
x12: ACK01
quantityobjectConfirmed quantity
valuenumberyesQuantity
uomstringyesUnit of measureuom
unit_priceobjectConfirmed price
amountnumberyesAmount in major units, decimals ≤ currency minor unitsNB-R011
currencystringyesCurrencycurrency
promised_datedatePromised ship date
substitute_item_idstringSubstituted item

Business rules

Example

{
  "specversion": "2.0",
  "id": "evt-po_response-PO-55012-1",
  "type": "nutrab2b.order.responded.v2",
  "source": "urn:gln:4012345000009:erp",
  "subject": "PO-55012",
  "time": "2026-11-02T09:00:00Z",
  "datacontenttype": "application/json",
  "dataschema": "https://nutrab2b.org/schemas/2.0/PO_RESPONSE.json",
  "sender": {
    "gln": "4012345000009"
  },
  "receiver": {
    "gln": "0614141000012"
  },
  "correlationid": "CONV-RFQ-1001",
  "idempotencykey": "PO_RESPONSE:PO-55012:1",
  "sequence": 1,
  "env": "test",
  "data": {
    "po_number": "PO-55012",
    "response": "accepted",
    "lines": [
      {
        "line_no": 1,
        "status": "IA",
        "quantity": {
          "value": 500,
          "uom": "KGM"
        },
        "promised_date": "2026-11-25"
      }
    ]
  }
}

Mapping checklist