The PunchOutOrderMessage payload returns cart data from your eCommerce platform to the TradeCentric platform so that we can return the cart to the buyer's eProcurement system. For standard integrations that send cXML payloads, we accept the PunchOutOrderMessage in our standard cXML format.
This article describes the standard cXML format to use for this payload.
Note: Your eCommerce platform should cause the user’s browser to POST this payload as an encoded parameter value to the return URL in the session request payload that we sent. This URL includes the unique punchout session identifier.
Jump to:
Payload (to TradeCentric)
The code block below shows an example PunchOutOrderMessage payload in our standard cXML format:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML payloadID="12345@storefront.com" timestamp="2025-10-09T10:00:00-05:00" version="1.2.045">
<Header>
<From>
<Credential domain="DUNS">
<Identity>SUPPLIER-IDENTITY</Identity>
</Credential>
</From>
<To>
<Credential domain="NetworkID">
<Identity>BUYER-IDENTITY</Identity>
</Credential>
</To>
<Sender>
<Credential domain="AribaNetworkUserId">
<Identity>storefront@mysite.com</Identity>
</Credential>
<UserAgent>MyStorefront</UserAgent>
</Sender>
</Header>
<Message>
<PunchOutOrderMessage>
<BuyerCookie>SESSION-123456</BuyerCookie>
<PunchOutOrderMessageHeader operationAllowed="create">
<Total>
<Money currency="USD">142.09</Money>
</Total>
<Shipping>
<Money currency="USD">10.00</Money>
<Description xml:lang="en">Shipping estimate - FedEx 2Day</Description>
</Shipping>
<Tax>
<Money currency="USD">8.64</Money>
<Description xml:lang="en">Sales tax - 7% Tennessee</Description>
</Tax>
</PunchOutOrderMessageHeader>
<ItemIn quantity="3">
<ItemID>
<SupplierPartID>45L017</SupplierPartID>
<SupplierPartAuxiliaryID>CART12-ITEM123</SupplierPartAuxiliaryID>
</ItemID>
<ItemDetail>
<UnitPrice><Money currency="USD">41.15</Money></UnitPrice>
<Description xml:lang="en">Low Arc Kitchen Faucet: Dominion Faucets, Silver, Chrome Finish, 1.75 gpm Flow Rate, CEC Compliant</Description>
<UnitOfMeasure>EA</UnitOfMeasure>
<Classification domain="UNSPSC">56101720</Classification>
<ManufacturerPartID>77-1206</ManufacturerPartID>
<ManufacturerName><![CDATA[Kissler & Co. Inc.]]></ManufacturerName>
<Extrinsic name="ImageURL">https://www.mystorefront.com/images/product/77-1206.jpg</Extrinsic>
<Extrinsic name="LeadTime">3</Extrinsic>
</ItemDetail>
</ItemIn>
</PunchOutOrderMessage>
</Message>
</cXML>
Back to top
Payload element details
A standard cXML PunchOutOrderMessage payload has a root element, a Header element, and a Message element that contains the PunchOutOrderMessage. The subsections below explain each element and its fields.
cXML root
Required Max use: 1
Applies identifying information to the entire payload
Example
<cXML payloadID="12345@storefront.com" timestamp="2025-10-09T10:00:00-05:00" version="1.2.045">
...
</cXML>
Root field breakdown
-
payloadID
Payload identifier
Required Type: String
Provides a unique identifier for the payload
Example: payloadID="12345@storefront.com"
-
timestamp
Payload creation timestamp
Required Format: ISO 8601
Provides the date and time when the payload was created
Example: timestamp="2025-10-09T10:00:00-05:00"
-
version
cXML version
Optional Type: String
Specifies the cXML version used for the payload
Example: version="1.2.045"
Required Max use: 1
Identifies the organizations involved in the cart return
Example
<Header>
<From>
<Credential domain="DUNS">
<Identity>SUPPLIER-IDENTITY</Identity>
</Credential>
</From>
<To>
<Credential domain="NetworkID">
<Identity>BUYER-IDENTITY</Identity>
</Credential>
</To>
<Sender>
<Credential domain="AribaNetworkUserId">
<Identity>storefront@mysite.com</Identity>
</Credential>
<UserAgent>MyStorefront</UserAgent>
</Sender>
</Header>
Header field breakdown
-
From
Supplier credential
Required
Identifies your organization
domain Identifier type
Required Type: String
Specifies the type of identifier provided in the credential
Example: domain="DUNS" = Data Universal Numbering System (DUNS) value
Identity Identifier
Required Type: String
Provides the identifier value for the credential
Example: <Identity>SUPPLIER-IDENTITY</Identity>
-
To
Buyer credential
Required
Identifies the buyer organization
domain Identifier type
Required Type: String
Specifies the type of identifier provided in the credential
Example: domain="NetworkID" = Network identifier value from the eProcurement system
Identity Identifier
Required Type: String
Provides the identifier value for the credential
Example: <Identity>BUYER-IDENTITY</Identity>
-
Sender
Sending system credential
Required
Identifies your storefront
domain Identifier type
Required Type: String
Specifies the type of identifier provided in the credential
Example: domain="AribaNetworkUserId"
Identity Identifier
Required Type: String
Provides the identifier value for the credential
Example: <Identity>storefront@mysite.com</Identity>
UserAgent Additional system identifier
Optional Type: String
Provides an informational identifier, such as a name, for the sending system
Example: <UserAgent>MyStorefront</UserAgent>
Message (PunchOutOrderMessage)
Required Max use: 1
Provides the cart and item data, which are described in the subsections below
Session identification
RequiredMax use: 1
Provides the session identifier
Example
<BuyerCookie>SESSION-123456</BuyerCookie>
Session field breakdown
-
BuyerCookie
Session identifier
Optional Type: String
Provides the unique session identifier from the session request payload that we sent
Example: SESSION-123456
Total values
RequiredMax use: 1
Provides total values for the entire cart
Example
<PunchOutOrderMessageHeader operationAllowed="create">
<Total>
<Money currency="USD">142.09</Money>
</Total>
<Shipping>
<Money currency="USD">10.00</Money>
<Description xml:lang="en">Shipping estimate - FedEx 2Day</Description>
</Shipping>
<Tax>
<Money currency="USD">8.64</Money>
<Description xml:lang="en">Sales tax - 7% Tennessee</Description>
</Tax>
</PunchOutOrderMessageHeader>
Total values field breakdown
-
operationAllowed
Allowed cart action
Required Accepted values: create, edit, inspect Max use: 1
Indicates whether the buyer can submit an edit request to modify the cart or an inspect request to open a read-only version of the cart:
-
edit: Allow both the edit cart request and the inspect cart request
-
inspect: Only allow the inspect cart request
-
create: Don't allow the edit cart request or the inspect cart request
Example: operationAllowed="create" = can't edit or inspect the cart
-
Total
Cart total
Required
Provides the total value of all items in the cart, plus any estimated tax or shipping values
Note: We require this field for data reporting only. All eProcurement systems recalculate the total value once they receive the return cart payload.
-
Money Total value
Required Type: Number
Provides the value
Example: <Money currency="USD">142.09</Money>
currency Currency
Required Format: ISO 4217
Specifies the currency for the value
Example: currency="USD"
-
Shipping
Shipping estimate
Optional
Provides an estimated shipping value for the cart
Note: This value doesn’t represent the final, agreed shipping amount. The buyer can still edit the cart or change the shipping destination.
-
Money Shipping value
Optional Type: Number
Provides the value
Example: <Money currency="USD">10.00</Money>
currency Currency
Required if Money is used Format: ISO 4217
Specifies the currency for the value
Example: currency="USD"
-
Description Shipping description
Optional Type: String
Provides a description for the value
Example: <Description xml:lang="en">Shipping estimate - FedEx 2Day</Description>
xml:lang Language
Optional Format: IETF BCP 47
Specifies the language used for the description
Example: xml:lang="en"
-
Tax
Tax estimate
Optional
Provides an estimated tax value for the cart
Note: This value doesn’t represent the final, agreed tax amount. The buyer can still edit the cart or change the shipping destination.
-
Money Tax value
Optional Type: Number
Provides the value
Example: <Money currency="USD">8.64</Money>
currency Currency
Required if Money is used Format: ISO 4217
Specifies the currency for the value
Example: currency="USD"
-
Description Tax description
Optional Type: String
Provides a description for the value
Example: <Description xml:lang="en">Sales tax - 7% Tennessee</Description>
xml:lang Language
Optional Format: IETF BCP 47
Specifies the language used for the description
Example: xml:lang="en"
Items
RequiredMax use: Many
Provides details about each of the items in the cart
Note: Repeat the ItemIn element for each line item in the cart.
Example
<ItemIn quantity="3">
<ItemID>
<SupplierPartID>45L017</SupplierPartID>
<SupplierPartAuxiliaryID>CART12-ITEM123</SupplierPartAuxiliaryID>
</ItemID>
<ItemDetail>
<UnitPrice><Money currency="USD">41.15</Money></UnitPrice>
<Description xml:lang="en">Low Arc Kitchen Faucet: Dominion Faucets, Silver, Chrome Finish, 1.75 gpm Flow Rate, CEC Compliant</Description>
<UnitOfMeasure>EA</UnitOfMeasure>
<Classification domain="UNSPSC">56101720</Classification>
<ManufacturerPartID>77-1206</ManufacturerPartID>
<ManufacturerName><![CDATA[Kissler & Co. Inc.]]></ManufacturerName>
<Extrinsic name="ImageURL">https://www.mystorefront.com/images/product/77-1206.jpg</Extrinsic>
<Extrinsic name="LeadTime">3</Extrinsic>
</ItemDetail>
</ItemIn>
Items field breakdown
-
quantity
Quantity
Required Type: Number
Provides the item quantity
Example: quantity="3"
-
ItemID
Item identifier
Required
Groups the supplier item identifiers
SupplierPartID Supplier part identifier
Required Type: String
Provides the item identifier, such as a part number or Stock Keeping Unit (SKU)
Example: <SupplierPartID>45L017</SupplierPartID>
SupplierPartAuxiliaryID Supplier auxiliary identifier
Required for PO conversion Type: String
Provides a unique identifier using either an additional item identifier, such as for a specific color or packaging option, or a database identifier for the item within the cart object
Example: <SupplierPartAuxiliaryID>CART12-ITEM123</SupplierPartAuxiliaryID>
-
ItemDetail
Item details
Required
Groups additional information about the item
UnitPrice Unit price
Required
Provides the price of one unit of the item after applying any discounts or special pricing
-
MoneyUnit price value
Required Type: Number
Provides the value
Example: <Money currency="USD">41.15</Money>
currency Currency
Required Format: ISO 4217
Specifies the currency for the value
Example: currency="USD"
-
Description Product description
Recommended Type: String
Provides a readable item description
Example: <Description xml:lang="en">Low Arc Kitchen Faucet: Dominion Faucets, Silver, Chrome Finish, 1.75 gpm Flow Rate, CEC Compliant</Description>
Note: If the description
text contains special characters
like
> or &,
wrap it in
<![CDATA[]]>
tags to avoid cXML schema issues.
xml:lang Language
Optional Format: IETF BCP 47
Specifies the language used for the description
Example: xml:lang="en"
UnitOfMeasure Unit of measure
Recommended Type: String
Provides the item unit of measure, which we can map to the buyer's accepted format before sending the final payload
Example: <UnitOfMeasure>EA</UnitOfMeasure>
Classification Product classification
Recommended Type: String
Provides the item classification code, which we can map to the buyer's accepted format before sending the final payload
Example: <Classification domain="UNSPSC">56101720</Classification>
domain Classification domain
Recommended Type: String
Specifies the type of classification code provided
Example: domain="UNSPSC" = United Nations Standard Products and Services Code (UNSPSC)
ManufacturerPartID Manufacturer part identifier
Optional Type: String
Provides the manufacturer's identifier for the item
Example: <ManufacturerPartID>77-1206</ManufacturerPartID>
ManufacturerName Manufacturer name
Optional Type: String
Provides the manufacturer's name
Example: <ManufacturerName><![CDATA[Kissler & Co. Inc.]]></ManufacturerName>
Extrinsic Custom extrinsic information
Optional Type: StringMax use: Many
Provides additional integration-specific information about the item
Example: <Extrinsic name="ImageURL">https://www.mystorefront.com/images/product/77-1206.jpg</Extrinsic>, <Extrinsic name="LeadTime">3</Extrinsic>
name Extrinsic label
Required if value is used Type: String
Specifies the type of information provided
Example: name="ImageURL", name="LeadTime"
Back to top