Handle Order deviations

Handling the happy-flow of an order process is relatively simple. This page concerns about deviations in the order process and how to handle these.

As is described in the Simple Order Process, an order can be confirmed by the seller by setting the Order Line Status Code to Accepted. However, the seller might also use the following codes as is shown in the Order Line Status Codes codelist. The following sections describe the usage of these status codes.

disputed

The order line is disputed, and should therefore not be processed yet.

revised

The order line is revised and is thus waiting for approval.

cancelled

The order line is cancelled. This can only be requested by the buyer.

added

The order line is added. This can only be requested by the buyer.

rejected

The order line is rejected. This can only be send by the seller.

accepted

The order line is accepted.

Proposing other delivery times

It is a rather common scenario that a Buyer might propose a delivery date for an item which is not feasible for a Seller. The Seller could simply reject the order line, but instead the Seller could also propose another date by using a revised order line status code. In this case, it is important that the Buyer confirms this new date. The figure below illustrates the workflow which is used in this case.

Order message (Buyer -> Seller)

The following example shows a simplification of an order message with a singe line item and one specific delivery date.

Example XML Order message
<Order>
<!-- ....-->
<!-- simplification of the order message-->
    <cac:OrderLine>
<!-- A single order line-->
        <cac:LineItem>
<!-- High-level description of the item -->
            <cbc:ID>1</cbc:ID>
            <cbc:Note></cbc:Note>
            <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
            <cbc:LineExtensionAmount currencyID="EUR">175</cbc:LineExtensionAmount>
            <cac:Delivery>
                <cbc:ID>1234</cbc:ID>
                <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
                <cac:DeliveryLocation>
                    <cbc:ID schemeID="GLN">5790001398644</cbc:ID>
                    <cbc:Description>Warehoues </cbc:Description>
                    <cac:Address>
                        <cbc:StreetName>Antoon Coolenlaan</cbc:StreetName>
                        <cbc:BuildingNumber>1 B</cbc:BuildingNumber>
                        <cbc:CityName>Eindhoven</cbc:CityName>
                        <cbc:PostalZone>5644RX</cbc:PostalZone>
                        <cac:AddressLine>
                            <cbc:Line>Inkoopafdeling</cbc:Line>
                        </cac:AddressLine>
                        <cac:Country>
                            <cbc:IdentificationCode>NL</cbc:IdentificationCode>
                        </cac:Country>
                    </cac:Address>
                </cac:DeliveryLocation>
                <cac:RequestedDeliveryPeriod>
                    <cbc:EndDate>2019-10-11</cbc:EndDate>
                </cac:RequestedDeliveryPeriod>
                <cac:Despatch>
                    <cbc:Instructions>[Free-form text instructions for delivery]</cbc:Instructions>
                </cac:Despatch>
            </cac:Delivery>
<!-- More specific orderline information-->
            <cac:Item>
                <cbc:Description>[Description of the item]</cbc:Description>
                <cbc:Name>[Item name]</cbc:Name>
                <cac:BuyersItemIdentification>
                    <cbc:ID>[Identifier of the item issued by the BuyerCustomer]</cbc:ID>
                </cac:BuyersItemIdentification>
                <cac:SellersItemIdentification>
                    <cbc:ID>AN0000123456</cbc:ID>
                    <cbc:ExtendedID>A1</cbc:ExtendedID>
                </cac:SellersItemIdentification>
                <cac:Dimension>
                    <cbc:AttributeID>Length</cbc:AttributeID>
                    <cbc:Measure unitCode="MMT">220</cbc:Measure>
                </cac:Dimension>
            </cac:Item>
        </cac:LineItem>
    </cac:OrderLine>
</Order>

Order response message (Seller -> Buyer)

The following example shows a simplification of an order response message, where the Seller proposes a new delivery date. This is indicated by the revised-Orderline status code and by the changed RequestedDeliveryPeriod.

Example XML Order response message
<Order>
<!-- ....-->
<!-- simplification of the order message-->
    <cac:OrderLine>
<!-- A single order line-->
        <cac:LineItem>
<!-- High-level description of the item -->
            <cbc:ID>1</cbc:ID>
            <cbc:Note></cbc:Note>
            <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
            <cbc:LineExtensionAmount currencyID="EUR">175</cbc:LineExtensionAmount>

<!-- Note the line status code, in this case the seller proposes a different date -->
            <cbc:LineStatusCode>revised</cbc:LineStatusCode>
<!-- Note the line status code -->

            <cac:Delivery>
                <cbc:ID>1234</cbc:ID>
                <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
                <cac:DeliveryLocation>
                    <cbc:ID schemeID="GLN">5790001398644</cbc:ID>
                    <cbc:Description>Warehoues </cbc:Description>
                    <cac:Address>
                        <cbc:StreetName>Antoon Coolenlaan</cbc:StreetName>
                        <cbc:BuildingNumber>1 B</cbc:BuildingNumber>
                        <cbc:CityName>Eindhoven</cbc:CityName>
                        <cbc:PostalZone>5644RX</cbc:PostalZone>
                        <cac:AddressLine>
                            <cbc:Line>Inkoopafdeling</cbc:Line>
                        </cac:AddressLine>
                        <cac:Country>
                            <cbc:IdentificationCode>NL</cbc:IdentificationCode>
                        </cac:Country>
                    </cac:Address>
                </cac:DeliveryLocation>
                <cac:RequestedDeliveryPeriod>
                
                    <!-- Note the changed delivery date -->
                    <cbc:EndDate>2019-10-15</cbc:EndDate>
                    <!-- Note the changed delivery date -->
                    
                </cac:RequestedDeliveryPeriod>
                <cac:Despatch>
                    <cbc:Instructions>[Free-form text instructions for delivery]</cbc:Instructions>
                </cac:Despatch>
            </cac:Delivery>
<!-- More specific orderline information-->
            <cac:Item>
                <cbc:Description>[Description of the item]</cbc:Description>
                <cbc:Name>[Item name]</cbc:Name>
                <cac:BuyersItemIdentification>
                    <cbc:ID>[Identifier of the item issued by the BuyerCustomer]</cbc:ID>
                </cac:BuyersItemIdentification>
                <cac:SellersItemIdentification>
                    <cbc:ID>AN0000123456</cbc:ID>
                    <cbc:ExtendedID>A1</cbc:ExtendedID>
                </cac:SellersItemIdentification>
                <cac:Dimension>
                    <cbc:AttributeID>Length</cbc:AttributeID>
                    <cbc:Measure unitCode="MMT">220</cbc:Measure>
                </cac:Dimension>
            </cac:Item>
        </cac:LineItem>
    </cac:OrderLine>
</Order>

Order message confirmation (Buyer -> Seller)

The following example shows a simplification of an order message as response on the changed delivery date.

Example XML Order message confirmation
<Order>
<!-- ....-->
<!-- simplification of the order message-->
    <cac:OrderLine>
<!-- A single order line-->
        <cac:LineItem>
<!-- High-level description of the item -->
            <cbc:ID>1</cbc:ID>
            <cbc:Note></cbc:Note>
            <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
            <cbc:LineExtensionAmount currencyID="EUR">175</cbc:LineExtensionAmount>

<!-- Note the line status code, the buyer accepts the line -->
            <cbc:LineStatusCode>accepted</cbc:LineStatusCode>
<!-- Note the line status code -->

            <cac:Delivery>
                <cbc:ID>1234</cbc:ID>
                <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
                <cac:DeliveryLocation>
                    <cbc:ID schemeID="GLN">5790001398644</cbc:ID>
                    <cbc:Description>Warehoues </cbc:Description>
                    <cac:Address>
                        <cbc:StreetName>Antoon Coolenlaan</cbc:StreetName>
                        <cbc:BuildingNumber>1 B</cbc:BuildingNumber>
                        <cbc:CityName>Eindhoven</cbc:CityName>
                        <cbc:PostalZone>5644RX</cbc:PostalZone>
                        <cac:AddressLine>
                            <cbc:Line>Inkoopafdeling</cbc:Line>
                        </cac:AddressLine>
                        <cac:Country>
                            <cbc:IdentificationCode>NL</cbc:IdentificationCode>
                        </cac:Country>
                    </cac:Address>
                </cac:DeliveryLocation>
                <cac:RequestedDeliveryPeriod>
                
                    <!-- Note the changed delivery date -->
                    <cbc:EndDate>2019-10-15</cbc:EndDate>
                    <!-- Note the changed delivery date -->
                    
                </cac:RequestedDeliveryPeriod>
                <cac:Despatch>
                    <cbc:Instructions>[Free-form text instructions for delivery]</cbc:Instructions>
                </cac:Despatch>
            </cac:Delivery>
<!-- More specific orderline information-->
            <cac:Item>
                <cbc:Description>[Description of the item]</cbc:Description>
                <cbc:Name>[Item name]</cbc:Name>
                <cac:BuyersItemIdentification>
                    <cbc:ID>[Identifier of the item issued by the BuyerCustomer]</cbc:ID>
                </cac:BuyersItemIdentification>
                <cac:SellersItemIdentification>
                    <cbc:ID>AN0000123456</cbc:ID>
                    <cbc:ExtendedID>A1</cbc:ExtendedID>
                </cac:SellersItemIdentification>
                <cac:Dimension>
                    <cbc:AttributeID>Length</cbc:AttributeID>
                    <cbc:Measure unitCode="MMT">220</cbc:Measure>
                </cac:Dimension>
            </cac:Item>
        </cac:LineItem>
    </cac:OrderLine>
</Order>

Order message deny change (Buyer -> Seller)

Instead of accepting the change, the change might also be rejected. In many cases, the Buyer will reach out to the seller manually (i.e. via phone) in order to come to an agreement. If an order has many order lines, where there is a dispute about only a subset of these order lines, the Buyer might want to indicate that he agrees with some of the lines (and wants that these lines are delivered) but there is no agreement for some of the other lines (so these should be on-hold). This can be indicated using the disputed-orderline status code, as is shown in the simplified order message example below.

In the case of an agreement, the Seller can send a new Order response message which should be accepted by the Seller via the previously mentioned flow.

Example XML Order message deny change
<Order>
<!-- ....-->
<!-- simplification of the order message-->
    <cac:OrderLine>
<!-- A single order line-->
        <cac:LineItem>
<!-- High-level description of the item -->
            <cbc:ID>1</cbc:ID>
            <cbc:Note></cbc:Note>
            <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
            <cbc:LineExtensionAmount currencyID="EUR">175</cbc:LineExtensionAmount>

<!-- Note the line status code, this line is disputed (there is currently no agreement) -->
            <cbc:LineStatusCode>disputed</cbc:LineStatusCode>
<!-- Note the line status code -->

            <cac:Delivery>
                <cbc:ID>1234</cbc:ID>
                <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
                <cac:DeliveryLocation>
                    <cbc:ID schemeID="GLN">5790001398644</cbc:ID>
                    <cbc:Description>Warehoues </cbc:Description>
                    <cac:Address>
                        <cbc:StreetName>Antoon Coolenlaan</cbc:StreetName>
                        <cbc:BuildingNumber>1 B</cbc:BuildingNumber>
                        <cbc:CityName>Eindhoven</cbc:CityName>
                        <cbc:PostalZone>5644RX</cbc:PostalZone>
                        <cac:AddressLine>
                            <cbc:Line>Inkoopafdeling</cbc:Line>
                        </cac:AddressLine>
                        <cac:Country>
                            <cbc:IdentificationCode>NL</cbc:IdentificationCode>
                        </cac:Country>
                    </cac:Address>
                </cac:DeliveryLocation>
                <cac:RequestedDeliveryPeriod>
                
                    <!-- Note the changed delivery date -->
                    <cbc:EndDate>2019-10-15</cbc:EndDate>
                    <!-- Note the changed delivery date -->
                    
                </cac:RequestedDeliveryPeriod>
                <cac:Despatch>
                    <cbc:Instructions>[Free-form text instructions for delivery]</cbc:Instructions>
                </cac:Despatch>
            </cac:Delivery>
<!-- More specific orderline information-->
            <cac:Item>
                <cbc:Description>[Description of the item]</cbc:Description>
                <cbc:Name>[Item name]</cbc:Name>
                <cac:BuyersItemIdentification>
                    <cbc:ID>[Identifier of the item issued by the BuyerCustomer]</cbc:ID>
                </cac:BuyersItemIdentification>
                <cac:SellersItemIdentification>
                    <cbc:ID>AN0000123456</cbc:ID>
                    <cbc:ExtendedID>A1</cbc:ExtendedID>
                </cac:SellersItemIdentification>
                <cac:Dimension>
                    <cbc:AttributeID>Length</cbc:AttributeID>
                    <cbc:Measure unitCode="MMT">220</cbc:Measure>
                </cac:Dimension>
            </cac:Item>
        </cac:LineItem>
    </cac:OrderLine>

Requesting Order changes

In some cases, the Buyer might want to request changes to its order, for example: adding/revising/cancelling order lines. It should be noted that the Buyer can always request such changed, but the Seller should decide whether to accept/reject the changes. In order to request changes to an existing order, the original Order-message should be send with the following three changes:

  • Note that the message ID of the order should equal to the original order message

  • Order type should be set to Changed.

  • The changes itself, e.g. a cancelled line.

Original Order Message (Buyer -> Seller)

The buyer requests 50 items with ID 1234 on 2019-10-15 in a new order.

Example XML Original Order Message
<Order>
	<cbc:ID>123</cbc:ID>
	<cbc:OrderTypeCode>New</cbc:ID>
<!-- ....-->
<!-- simplification of the order message-->
    <cac:OrderLine>
<!-- A single order line-->
        <cac:LineItem>
<!-- High-level description of the item -->
            <cbc:ID>1</cbc:ID>
            <cbc:Note></cbc:Note>
            <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
            <cbc:LineExtensionAmount currencyID="EUR">175</cbc:LineExtensionAmount>           
            <cac:Delivery>
                <cbc:ID>1234</cbc:ID>
                <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
                <cac:DeliveryLocation>
                    <cbc:ID schemeID="GLN">5790001398644</cbc:ID>
                    <cbc:Description>Warehoues </cbc:Description>
                    <cac:Address>
                        <cbc:StreetName>Antoon Coolenlaan</cbc:StreetName>
                        <cbc:BuildingNumber>1 B</cbc:BuildingNumber>
                        <cbc:CityName>Eindhoven</cbc:CityName>
                        <cbc:PostalZone>5644RX</cbc:PostalZone>
                        <cac:AddressLine>
                            <cbc:Line>Inkoopafdeling</cbc:Line>
                        </cac:AddressLine>
                        <cac:Country>
                            <cbc:IdentificationCode>NL</cbc:IdentificationCode>
                        </cac:Country>
                    </cac:Address>
                </cac:DeliveryLocation>
                <cac:RequestedDeliveryPeriod>
                    <cbc:EndDate>2019-10-15</cbc:EndDate>                    
                </cac:RequestedDeliveryPeriod>
                <cac:Despatch>
                    <cbc:Instructions>[Free-form text instructions for delivery]</cbc:Instructions>
                </cac:Despatch>
            </cac:Delivery>
<!-- More specific orderline information-->
            <cac:Item>
                <cbc:Description>[Description of the item]</cbc:Description>
                <cbc:Name>[Item name]</cbc:Name>
                <cac:BuyersItemIdentification>
                    <cbc:ID>[Identifier of the item issued by the BuyerCustomer]</cbc:ID>
                </cac:BuyersItemIdentification>
                <cac:SellersItemIdentification>
                    <cbc:ID>AN0000123456</cbc:ID>
                    <cbc:ExtendedID>A1</cbc:ExtendedID>
                </cac:SellersItemIdentification>
                <cac:Dimension>
                    <cbc:AttributeID>Length</cbc:AttributeID>
                    <cbc:Measure unitCode="MMT">220</cbc:Measure>
                </cac:Dimension>
            </cac:Item>
        </cac:LineItem>
    </cac:OrderLine>

Change-request to the previous Order (Buyer -> Seller)

The buyer wants to change the original order by ordering 100 instead of 50 items with ID 1234, all with a changed delivery date: 2019-10-14 instead of 2019-10-15. Note that the ID is equal to the original order, the OrderTypeCode is set to Changed, and the Quantity and RequestedDeliveryPeriod is changed.

The Buyer can request new items by creating a new orderline with status added, cancel an existing orderline with status cancelled, and change delivery dates/quantities of an existing lines with status revised.

Example XML Change-request to the previous Order
<Order>

<!-- Note the same message ID-->
	<cbc:ID>123</cbc:ID>

<!-- Note the Order Type Code-->
	<cbc:OrderTypeCode>Changed</cbc:ID>
	
	
<!-- ....-->
<!-- simplification of the order message-->
    <cac:OrderLine>
<!-- A single order line-->
        <cac:LineItem>
<!-- High-level description of the item -->
            <cbc:ID>1</cbc:ID>
            <cbc:Note></cbc:Note>

<!-- Note the new Quantity: 100 instead of -->
            <cbc:Quantity unitCode="KGM">100</cbc:Quantity>
            <cbc:LineExtensionAmount currencyID="EUR">175</cbc:LineExtensionAmount>
            
<!-- Note the line status code, this line is revised -->
            <cbc:LineStatusCode>revised</cbc:LineStatusCode>
            
            <cac:Delivery>
                <cbc:ID>1234</cbc:ID>
                <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
                <cac:DeliveryLocation>
                    <cbc:ID schemeID="GLN">5790001398644</cbc:ID>
                    <cbc:Description>Warehoues </cbc:Description>
                    <cac:Address>
                        <cbc:StreetName>Antoon Coolenlaan</cbc:StreetName>
                        <cbc:BuildingNumber>1 B</cbc:BuildingNumber>
                        <cbc:CityName>Eindhoven</cbc:CityName>
                        <cbc:PostalZone>5644RX</cbc:PostalZone>
                        <cac:AddressLine>
                            <cbc:Line>Inkoopafdeling</cbc:Line>
                        </cac:AddressLine>
                        <cac:Country>
                            <cbc:IdentificationCode>NL</cbc:IdentificationCode>
                        </cac:Country>
                    </cac:Address>
                </cac:DeliveryLocation>
                <cac:RequestedDeliveryPeriod>
                    
<!-- Note the changed delivery date -->
                    <cbc:EndDate>2019-10-14</cbc:EndDate>                    
                </cac:RequestedDeliveryPeriod>
                <cac:Despatch>
                    <cbc:Instructions>[Free-form text instructions for delivery]</cbc:Instructions>
                </cac:Despatch>
            </cac:Delivery>
<!-- More specific orderline information-->
            <cac:Item>
                <cbc:Description>[Description of the item]</cbc:Description>
                <cbc:Name>[Item name]</cbc:Name>
                <cac:BuyersItemIdentification>
                    <cbc:ID>[Identifier of the item issued by the BuyerCustomer]</cbc:ID>
                </cac:BuyersItemIdentification>
                <cac:SellersItemIdentification>
                    <cbc:ID>AN0000123456</cbc:ID>
                    <cbc:ExtendedID>A1</cbc:ExtendedID>
                </cac:SellersItemIdentification>
                <cac:Dimension>
                    <cbc:AttributeID>Length</cbc:AttributeID>
                    <cbc:Measure unitCode="MMT">220</cbc:Measure>
                </cac:Dimension>
            </cac:Item>
        </cac:LineItem>
    </cac:OrderLine>

Confirm/Reject the order change (Seller -> Buyer)

The order change can be accepted by the Seller in the same way a new order can be accepted, namely by sending an order response which contains the same information as the order message including accepted-OrderLineStatusCodes.

An orderline might also be rejected, this means that the order change of this line has been rejected, the original orderline is still valid! This can be done by simply replacing the accepted OrderLineStatusCode with rejected.

Example XML Confirm the order change
<Order>
	<cbc:ID>678</cbc:ID>	
	
<!-- Note the reference to the order message ID-->
	<cac:OrderReference>
	    <cbc:ID>123</cbc:ID>
	</cac:OrderReference>
	
<!-- ....-->
<!-- simplification of the order message-->
    <cac:OrderLine>
<!-- A single order line-->
        <cac:LineItem>
<!-- High-level description of the item -->
            <cbc:ID>1</cbc:ID>
            <cbc:Note></cbc:Note>
            <cbc:Quantity unitCode="KGM">100</cbc:Quantity>
            <cbc:LineExtensionAmount currencyID="EUR">175</cbc:LineExtensionAmount>
            
<!-- Note the line status code, this line is accepted-->
            <cbc:LineStatusCode>accepted</cbc:LineStatusCode>
            
            <cac:Delivery>
                <cbc:ID>1234</cbc:ID>
                <cbc:Quantity unitCode="KGM">50</cbc:Quantity>
                <cac:DeliveryLocation>
                    <cbc:ID schemeID="GLN">5790001398644</cbc:ID>
                    <cbc:Description>Warehoues </cbc:Description>
                    <cac:Address>
                        <cbc:StreetName>Antoon Coolenlaan</cbc:StreetName>
                        <cbc:BuildingNumber>1 B</cbc:BuildingNumber>
                        <cbc:CityName>Eindhoven</cbc:CityName>
                        <cbc:PostalZone>5644RX</cbc:PostalZone>
                        <cac:AddressLine>
                            <cbc:Line>Inkoopafdeling</cbc:Line>
                        </cac:AddressLine>
                        <cac:Country>
                            <cbc:IdentificationCode>NL</cbc:IdentificationCode>
                        </cac:Country>
                    </cac:Address>
                </cac:DeliveryLocation>
                <cac:RequestedDeliveryPeriod>
                    <cbc:EndDate>2019-10-14</cbc:EndDate>                    
                </cac:RequestedDeliveryPeriod>
                
<!-- Note the added PromisedDeliveryPeriod -->
                <cac:PromisedDeliveryPeriod>
                    <cbc:EndDate>2019-10-14</cbc:EndDate>                    
                </cac:PromisedDeliveryPeriod>
<!-- Note the added PromisedDeliveryPeriod -->

                <cac:Despatch>
                    <cbc:Instructions>[Free-form text instructions for delivery]</cbc:Instructions>
                </cac:Despatch>
            </cac:Delivery>
<!-- More specific orderline information-->
            <cac:Item>
                <cbc:Description>[Description of the item]</cbc:Description>
                <cbc:Name>[Item name]</cbc:Name>
                <cac:BuyersItemIdentification>
                    <cbc:ID>[Identifier of the item issued by the BuyerCustomer]</cbc:ID>
                </cac:BuyersItemIdentification>
                <cac:SellersItemIdentification>
                    <cbc:ID>AN0000123456</cbc:ID>
                    <cbc:ExtendedID>A1</cbc:ExtendedID>
                </cac:SellersItemIdentification>
                <cac:Dimension>
                    <cbc:AttributeID>Length</cbc:AttributeID>
                    <cbc:Measure unitCode="MMT">220</cbc:Measure>
                </cac:Dimension>
            </cac:Item>
        </cac:LineItem>
    </cac:OrderLine>

Last updated