Acknowledge a Purchase Order with Changes

When you acknowledge a PO with changes, the confirmation type value at the header level must either be in the orderAccept or orderChange lists and the confirmation type at the confirmation item level must have a value in the lineChange list to communicate a price change, part number correction, UOM change, quantity change, or date change.

You must provide one of these values in the payload when the confirmation type value is in the lineChange list. Otherwise, the message is skipped:

  • UnitPriceAmount - If a non-negative numeric value is provided in the payload for a line change, the PO is updated.
  • SupplierItemNumber - When a SupplierItemNumber is provided in the payload for a line change, the supplier item number can be updated on the PO line if the feature Correct the Supplier Item Number on Purchase Orders is enabled. Otherwise, you need to create a descriptive flexfield for B2B Part Number Correction which will be populated with the corrected part number.
  • UnitOfMeasureCode - When a UnitOfMeasure is provided in the payload for a line change, the descriptive flexfield (b2bAckReviewRequired) on the PO header is set to One or more lines have acknowledgment comments and the UnitOfMeasureCode provided in the payload is mapped to the flexfield (b2bUOMChange) on the PO line.
  • OrderQuantity - The PO is updated when positive decimal numbers are provided.
  • PromisedShipDate, or PromisedDeliveryDate - The PromisedShipDate or PromisedDeliveryDate is updated when a date change is provided in the payload and it is as expected by the Buyer Managed Transport setting on the PO. Otherwise, the descriptive flexfield is updated.

When a confirmation message with change confirmation types is received, a supplier initiated change order is created.

This table explains data mapping of the purchase order acknowledgment message to the payload of the changePurchaseOrder service:

Source: cXML - ConfirmationRequest:cXML/Request/ConfirmationRequest Target: Fusion Object:changePurchaseOrder/changeOrderEntry
OrderReference/@orderID OrderNumber
SoldToLegalEntityId
ConfirmationHeader/@type Set to ACCEPT or CHANGE.
ConfirmationHeader/Comments

ChangeOrderDescription

Set to Not provided if no value is provided in payload.

ConfirmationHeader/Extrinsic[@name="SUPPLIERORDERNUMBER"] SupplierOrderNumber

ChangeOrderInitiatingParty

Set to SUPPLIER.

PurchaseOrderEntryLine
ConfirmationItem[n]/ConfirmationStatus/Extrinsic[@name="LINENUM"] LineNumber
ConfirmationItem[n]/ConfirmationStatus/ItemIn/ItemID/SupplierPartID

SupplierItem

If the SupplierPartID contains a value and the feature Correct the Supplier Item Number on Purchase Orders is enabled, then its value is mapped to SupplierItem.
Note: If the message includes multiple schedule lines, and SupplierPartID contains a value in each, this implementation takes the SupplierPartID in the first schedule line occurrence passed in the payload after sorting all the schedule lines in ascending order.
ConfirmationItem[n]/ConfirmationStatus/@quantity

Quantity

If the PO has multiple schedule lines, and a quantity change is intended (for all or some of those lines), the message must include all the schedule lines and their quantities (even the ones that do not need their quantity changed).
Note: The sum total of all the schedule line quantities is passed to the PO line quantity field in this element: PurchaseOrderEntryLine/Quantity.

ConfirmationItem[n]/ConfirmationStatus/UnitPrice/Money

Or

ConfirmationItem[n]/ConfirmationStatus/ItemIn/ItemDetail/UnitPrice/Money

Price

ConfirmationItem[n]/ConfirmationStatus/UnitPrice/Money is mapped if provided. Otherwise, ConfirmationItem[n]/ConfirmationStatus/ItemIn/ItemDetail/UnitPrice/Money is mapped.
Note: If the message includes multiple schedule lines, and a UnitPrice/Money value is provided in each, this implementation takes the UnitPrice/Money from the first schedule line occurrence passed in the payload after sorting all the schedule lines in ascending order.
ConfirmationItem[n]/ConfirmationStatus/Comments ChangeReason

Set to Not provided if no value is provided in payload.

ConfirmationItem[n]/ConfirmationStatus/@type Action

Set to CHANGE

PurchaseOrderEntryLine/PurchaseOrderEntrySchedule
ConfirmationItem[n]/ConfirmationStatus/Extrinsic[@name=" SHIPMENTNUM"] ScheduleNumber
ConfirmationItem[n]/ConfirmationStatus/@quantity Quantity
ConfirmationItem[n]/ConfirmationStatus/@deliveryDate and/or, ConfirmationItem[n]/ConfirmationStatus/@shipmentDate

PromisedDeliveryDate and/or, PromisedShipDate

If the deliveryDate is provided in the payload and the Buyer Managed Transport isn't selected on the order, then the value is mapped to PromisedDeliveryDate. If the shipmentDate is provided and the Buyer Managed Transport check box is selected on the order, then the value is mapped to PromisedShipDate.

ConfirmationItem[n]/ConfirmationStatus/Comments ChangeReason

Set to Not provided if no value is provided in payload.

ConfirmationItem[n]/ConfirmationStatus/@type Action

Set to CHANGE.

PurchaseOrderEntryLine/LineFlexfield
ConfirmationItem[n]/ConfirmationStatus/ItemIn/ItemID/SupplierPartID

SupplierPartID or b2bPartNumberCorrection

If the feature Correct the Supplier Item Number on Purchase Orders is enabled, the supplier item number is updated on the PO line. Otherwise, the SupplierPartID is mapped to the descriptive flexfield, B2BPartNumberCorrection.
Note: If the message includes multiple schedule lines, and a SupplierPartID value is passed in each, this implementation takes the SupplierPartID in the first schedule line occurrence passed in the payload after sorting all the schedules in ascending order.

ConfirmationItem[n]/ConfirmationStatus/UnitOfMeasure

or

ConfirmationItem[n]/ConfirmationStatus/ItemIn/ItemDetail/UnitOfMeasure

b2bUOMChange

ConfirmationItem[n]/ConfirmationStatus/UnitOfMeasure is mapped if there is a value provided in both ConfirmationItem/ConfirmationStatus/UnitOfMeasure and ConfirmationItem/ConfirmationStatus/UnitPrice/Money . Otherwise, if there isn't a value provided in ConfirmationItem[n]/ConfirmationStatus/UnitOfMeasure, the value in ConfirmationItem/ConfirmationStatus/ItemIn/ItemDetail/UnitOfMeasure is mapped.

Note: If the message includes multiple schedule lines, and a UnitOfMeasure value is provided in each, this implementation takes the UnitOfMeasure from the first schedule line occurrence passed in the payload after sorting all the schedule lines in ascending order
PurchaseOrderEntryLine/ScheduleFlexfield

b2bProvidedDateNote

If deliveryDate has a value when Buyer Managed Transport checkbox is selected on the PO, then this flex field is set to Promised Delivery Date Provided.

If shipmentDate has a value when when Buyer Managed Transport checkbox isn't selected on the PO, then this flex field is set to Promised Ship Date Provided.

If both deliveryDate and the shipmentDate have values when Buyer Managed Transport checkbox is selected on the PO, this field will be set to Promised Delivery Date and Promised Ship Date Provided.

If both deliveryDate and the shipmentDate have values when Buyer Managed Transport checkbox isn't selected on the PO, this field will be set to Promised Delivery Date and Promised Ship Date Provided.

ConfirmationItem[n]/ConfirmationStatus/@deliveryDate

and/or

ConfirmationItem[n]/ConfirmationStatus/@shipmentDate

b2bProvidedDate

If the deliveryDate is provided in the payload and the Buyer Managed Transport checkbox is selected on the PO this field is set to deliveryDate.

If the shipmentDate is provided in the payload and the Buyer Managed Transport checkbox is not selected on the PO this field is set to shipmentDate.

HeaderFlexfield

b2bAckReviewRequired

Set to One or more lines have acknowledgment comments if any of the following elements are provided in the payload:
  • SupplierPartID
  • UnitOfMeasure
  • ShipmentDate
  • DeliveryDate

Sample Payload

Here's a sample payload:
<ConfirmationRequest>
   <ConfirmationHeader type="allDetail" noticeDate="2024-03-19T17:47:31-08:00">
  <Comments xml:lang="en-US">Header comment</Comments>
  <Extrinsic name="SUPPLIERORDERNUMBER"></Extrinsic>
   </ConfirmationHeader>
   <OrderReference orderID="1007083">
  <DocumentReference payloadID=""/>
   </OrderReference>
   <ConfirmationItem quantity="" lineNumber="">
  <UnitOfMeasure></UnitOfMeasure>
  <ConfirmationStatus quantity="7" type="detail" shipmentDate="2026-03-20T07:00:00-07:00" deliveryDate="2027-03-20T07:00:00-07:00">
 <UnitOfMeasure>VVVV</UnitOfMeasure>
 <UnitPrice>
<Money currency="USD">11.22</Money>
 </UnitPrice>
 <ItemIn quantity="">
<ItemID>
   <SupplierPartID>19YY17</SupplierPartID>
</ItemID>
<ItemDetail>
   <Description xml:lang="en-US"></Description>
   <UnitOfMeasure>BX</UnitOfMeasure>
   <Classification domain="status"></Classification>
</ItemDetail>
 </ItemIn>
 <Comments>Line 1 Comment</Comments>
 <Extrinsic name="LINENUM">1</Extrinsic>
 <Extrinsic name="SHIPMENTNUM">1</Extrinsic>
  </ConfirmationStatus>
   </ConfirmationItem>
</ConfirmationRequest>