Export definition
Explore the comprehensive XML definition of cXML orders
Proactis uses the cXML standard to generate purchase orders and send these to suppliers or your application.
Basic purchase order example
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.051/cXML.dtd">
<cXML version="0" payloadID="2022-12-21T09:51:[email protected]" timestamp="2022-12-21T09:51:17" xml:lang="en">
<Header>
<From>...</From>
<To>...</To>
<Sender>...</Sender>
</Header>
<Request deploymentMode="test">
<OrderRequest>
<OrderRequestHeader orderID="00041401" orderDate="2023-06-19T09:51:17" orderType="regular" type="new" orderVersion="1">
<Total>
<Money currency="EUR">121.0000</Money>
</Total>
<ShipTo>...</ShipTo>
<BillTo>...</BillTo>
<Tax>...</Tax>
<Contact role="buyer">...</Contact>
<Contact role="supplierCorporate">...</Contact>
<Comments>...</Comments>
<TermsOfDelivery>...</TermsOfDelivery>
<IdReference identifier="00041401" domain="OrderReference" />
<Extrinsic name="ProactisOrderStatus">ORDERED</Extrinsic>
<Extrinsic name="ProactisProcessStatus">open</Extrinsic>
<Extrinsic name="ProactisImportStatus">false</Extrinsic>
</OrderRequestHeader>
<ItemOut quantity="5.0000" lineNumber="1" requestedDeliveryDate="2023-06-20T12:00:00" isAdHoc="yes">...</ItemOut>
<ItemOut quantity="10.0000" lineNumber="2" requestedDeliveryDate="2023-06-20T12:00:00" isAdHoc="yes">...</ItemOut>
</OrderRequest>
</Request>
</cXML>
Header
The purchase order starts with the Header which can used to authenticate the message and understand which customer this has been sent from.
<Header>
<From>
<Credential domain="NetworkId">
<Identity>CUSTOMER IDENTIFIER</Identity>
</Credential>
<Credential domain="GLN">
<Identity>CUSTOMER GLN NUMBER</Identity>
</Credential>
</From>
<To>
<Credential domain="NetworkId">
<Identity>SUPPLIER IDENTIFIER</Identity>
</Credential>
<Credential domain="GLN">
<Identity>SUPPLIER GLN NUMBER</Identity>
</Credential>
</To>
<Sender>
<Credential domain="NetworkId">
<Identity>CUSTOMER IDENTIFIER</Identity>
<SharedSecret></SharedSecret>
</Credential>
<UserAgent>proactis-eu-agent</UserAgent>
</Sender>
</Header>
The From Credential domain attribute and Identity element are used to identify the customer who raised the purchase order.
The To Credential domain attribute and Identity element are used to identify the supplier the purchase order has been sent to.
The Sender Credential domain attribute and Identity element are used to identify the customer or system that has sent the purchase order. The SharedSecret element remains empty.
Request
The Request element contains the the OrderRequest and shows if this purchase order has been sent from a test or production environment.
- UAT environment
- Production environment
<Request deploymentMode="test">
<Request deploymentMode="production">
OrderRequestHeader
The OrderRequestHeader contains attributes that describe the orderID, orderDate, orderType and type.
<OrderRequestHeader orderID="00041401" orderDate="2023-06-19T09:51:17" orderType="regular" type="new" orderVersion="1">
The orderID attribute is a Proactis generated purchase order identifier.
The orderDate attribute is the date and time the purchase order was generated in the format: YYYY-MM-DD'T'hh:mm:ss.
The orderType attribute is the type of purchase order. This is by default regular.
The type is the status of the purchase order:
- new : this is a new purchase order.
- update : the purchase order has been updated. The order will contain all details as they have been updated.
- delete : the purchase order has been cancelled.
The orderVersion attribute shows the version number for this purchase order. It will start from 1 and increase.
Total
The total element contains the Money element. The Money element shows the total value of all items included in the order including taxes. The currency attribute shows the currency code.
<Total>
<Money currency="EUR">121.0000</Money>
</Total>
ShipTo
This ShipTo element contains address information on where the customer would like the purchase order to be delivered.
<ShipTo>
<Address isoCountryCode="NL">
<Name xml:lang="en">Delivery Address</Name>
<PostalAddress>
<DeliverTo>John Doe</DeliverTo>
<DeliverTo>12A</DeliverTo>
<Street>Damrak 123</Street>
<City>Amsterdam</City>
<State></State>
<PostalCode>1000 AB</PostalCode>
<Country isoCountryCode="NL">Netherlands</Country>
<Extrinsic name="ProactisAddressee">John Doe</Extrinsic>
<Extrinsic name="ProactisRoomNumber">12A</Extrinsic>
</PostalAddress>
<Phone name="Business">
<TelephoneNumber>
<CountryCode isoCountryCode="NL">31</CountryCode>
<AreaOrCityCode>020</AreaOrCityCode>
<Number>12345678</Number>
<Extension></Extension>
</TelephoneNumber>
</Phone>
</Address>
</ShipTo>
BillTo
This BillTo element contains address information on the billing address for the purchase order.
<BillTo>
<Address isoCountryCode="NL">
<Name xml:lang="en">Invoice address</Name>
<PostalAddress>
<Street>Damrak 123</Street>
<City>Amsterdam</City>
<State></State>
<PostalCode>1000 AB</PostalCode>
<Country isoCountryCode="NL">Netherlands</Country>
</PostalAddress>
<Email name="default">[email protected]</Email>
<Phone name="Business">
<TelephoneNumber>
<CountryCode isoCountryCode="NL">31</CountryCode>
<AreaOrCityCode>030</AreaOrCityCode>
<Number>12345678</Number>
<Extension></Extension>
</TelephoneNumber>
</Phone>
</Address>
</BillTo>
Tax
This is the summary Tax information for the purchase order.
<Tax>
<Money currency="EUR">21.0000</Money>
<Description xml:lang="en"></Description>
<TaxDetail category="tax">
<TaxableAmount>
<Money currency="EUR">100.0000</Money>
</TaxableAmount>
<TaxAmount>
<Money currency="EUR">21.0000</Money>
</TaxAmount>
</TaxDetail>
</Tax>
The TaxDetail element contains the category which is by default tax.
Contact
This contains the name and email address for the buyer and information about the supplier.
<Contact role="buyer">
<Name xml:lang="en">John Doe</Name>
<Email />
<Phone>
<TelephoneNumber>
<CountryCode isoCountryCode="NL">31</CountryCode>
<AreaOrCityCode>20</AreaOrCityCode>
<Number>1234567</Number>
<Extension></Extension>
</TelephoneNumber>
</Phone>
</Contact>
<Contact role="supplierCorporate">
<Name xml:lang="en">Supplier Name</Name>
<PostalAddress name="supplierCorporate">
<Street>Street</Street>
<Street>Street</Street>
<City>Amsterdam</City>
<State>N-H</State>
<PostalCode>1234 AB</PostalCode>
<Country isoCountryCode="NL">Netherlands</Country>
</PostalAddress>
<Email>[email protected]</Email>
<Phone>
<TelephoneNumber>
<CountryCode isoCountryCode="NL"/>
<AreaOrCityCode></AreaOrCityCode>
<Number>0123456789</Number>
<Extension></Extension>
</TelephoneNumber>
</Phone>
<IdReference identifier="NL123456789B01" domain="vatID"/>
<IdReference identifier="987654321" domain="companyRegistrationNumber"/>
</Contact>
Comments
This contains the comments added by the buyer, but also -if present- the identifier of the attachment. Attachments are send as a multipart request.
<Comments>Comments
<Attachment>
<URL>cid:PO00074651.pdf</URL>
</Attachment>
</Comments>
IdReference and Extrinsics
The IdReference contains the purchase order reference specified by the buyer.
Extrinsics are additional elements that can be included to extend the cXML standard. Proactis uses the Extrinsics to specify the status of the purchase order.
<IdReference identifier="00041401" domain="OrderReference" />
<Extrinsic name="ProactisOrderStatus">ORDERED</Extrinsic>
<Extrinsic name="ProactisProcessStatus">closed</Extrinsic>
<Extrinsic name="ProactisImportStatus">true</Extrinsic>
ItemOut
The ItemOut element is repeated for each item that is included in the order.
<ItemOut quantity="5.0000" lineNumber="1" requestedDeliveryDate="2023-06-20T12:00:00" isAdHoc="yes">
<ItemID>
<SupplierPartID>FF1</SupplierPartID>
<BuyerPartID>000001734921</BuyerPartID>
<SupplierPartAuxiliaryID>PENBLUE001</SupplierPartAuxiliaryID>
</ItemID>
<ItemDetail>
<UnitPrice>
<Money currency="EUR">10.0000</Money>
</UnitPrice>
<Description xml:lang="en">Blue Pen 22 cm
<ShortName>Blue Pen</ShortName>
</Description>
<UnitOfMeasure>PCE</UnitOfMeasure>
<PriceBasisQuantity quantity="1.0000" conversionFactor="1">
<UnitOfMeasure>PCE</UnitOfMeasure>
</PriceBasisQuantity>
<Classification domain="CommodityCode" code="2000">Facilities</Classification>
<Classification domain="SpendingPool" code="2010">Office supplies</Classification>
<Extrinsic name="Personal usage?">No</Extrinsic>
</ItemDetail>
<ShipTo>...</ShipTo>
<Tax>...</Tax>
<Distribution>...</Distribution>
</ItemOut>
The ItemOut contains attributes that describe the quantity, lineNumber, requestedDeliveryDate and type of product or service.
<ItemOut quantity="5.0000" lineNumber="1" requestedDeliveryDate="2023-06-20T12:00:00" isAdHoc="yes">
The ItemOut quantity attribute is the quantity ordered for the item.
The ItemOut lineNumber attribute is the line number for that item on the purchase order.
The requestedDeliveryDate attribute is the delivery date requested by the buyer. The attribute will only be present when the buyer has specified a delivery date.
The isAdHoc attribute indicates the item does not exist in a catalog, but is a free format line.
ItemID
This includes identifying codes for the item. The SupplierPartID element is the product/item/SKU code for the item. The elements BuyerPartID and SupplierPartAuxiliaryID will be used for catalog products only. BuyerPartID being the Internal ID of the catalog product. And SupplierPartAuxiliaryID being the Manufacturer Product ID of the catalog product.
<ItemID>
<SupplierPartID>FF1</SupplierPartID>
<BuyerPartID>000001734921</BuyerPartID>
<SupplierPartAuxiliaryID>PENBLUE001</SupplierPartAuxiliaryID>
</ItemID>
ItemDetail
This includes more descriptive elements about the item.
<ItemDetail>
<UnitPrice>
<Money currency="EUR">10.0000</Money>
</UnitPrice>
<Description xml:lang="en">Blue Pen 22 cm
<ShortName>Blue Pen</ShortName>
</Description>
<UnitOfMeasure>PCE</UnitOfMeasure>
<PriceBasisQuantity quantity="1.0000" conversionFactor="1">
<UnitOfMeasure>PCE</UnitOfMeasure>
</PriceBasisQuantity>
<Classification domain="CommodityCode" code="2000">Facilities</Classification>
<Classification domain="SpendingPool" code="2010">Office supplies</Classification>
<Extrinsic name="Personal usage?">No</Extrinsic>
</ItemDetail>
The UnitPrice element is the price per unit excluding tax for the item.
The Description element is the name for the item.
The UnitOfMeasure element is the in which the unit is measured for the item.
The Classification elements are used to specify Commodity Code and Spending Pool, if specified by the buyer.
Extrinsic elements are added for Smart Form fields. Fields that can be used to add customer specific information.
ShipTo
This ShipTo element contains address information on where the customer would like the purchase order to be delivered.
<ShipTo>
<Address isoCountryCode="NL">
<Name xml:lang="en">Delivery Address</Name>
<PostalAddress>
<DeliverTo>John Doe</DeliverTo>
<Street>Damrak 123</Street>
<City>Amsterdam</City>
<State />
<PostalCode>1000 AB</PostalCode>
<Country isoCountryCode="NL">Netherlands</Country>
<Extrinsic name="ProactisAddressee">John Doe</Extrinsic>
</PostalAddress>
<Email name="default" />
<Phone name="Business">
<TelephoneNumber>
<CountryCode isoCountryCode="NL" />
<AreaOrCityCode />
<Number />
<Extension />
</TelephoneNumber>
</Phone>
</Address>
</ShipTo>
Tax
This is the Tax information for the item.
<Tax>
<Money currency="EUR">10.5000</Money>
<Description xml:lang="en">PLI Tax</Description>
<TaxDetail category="tax" percentageRate="21.0000" taxRateType="3">
<TaxableAmount>
<Money currency="EUR">50.0000</Money>
</TaxableAmount>
<TaxAmount>
<Money currency="EUR">10.5000</Money>
</TaxAmount>
<TaxLocation xml:lang="en"></TaxLocation>
</TaxDetail>
</Tax>
The Money element total amount of tax for the item.
The Description element is the description of the tax being applied.
The category attribute is the type of tax that is being applied.
The percentageRate attribute is the tax rate being applied.
The taxRateType is a Proactis specific value assigned to the type of tax.
The TaxableAmount element is the subtotal amount excluding tax for the item.
The TaxAmount element is the amount of tax for the TaxableAmount.
Distribution
The Distribution contains the cost coding information assigned to the item.
<Distribution>
<Accounting name="CostCoding">
<Segment type="DepartmentId" id="A-2000" description="Finance" />
<Segment type="CostCenterId" id="cc007" description="HR" />
<Segment type="CostAccountId" id="CA01" description="CA01" />
<Segment type="A10 Project code" id="A123" description="A123" />
</Accounting>
<Charge>
<Money currency="EUR">60.5000</Money>
</Charge>
</Distribution>
The Segment with the type DepartmentId contains the department ID linked to the item.
The Segment with the type CostCenterId contains the cost center value.
The Segment with the type CostAccountId contains the cost account value.
Cost Dimensions are added as separate Segment elements. The type being the name of the parent dimension.
Common cXML Elements
The tables show some examples on where to find common fields used from the Header and Item levels.
Header level
| Detail | Path | Example |
|---|---|---|
| Customer | cXML/Header/From/Credential[@domain="NetworkId"]/Identity | CUSTOMER IDENTIFIER |
| Supplier | cXML/Header/To/Credential[@domain="NetworkId"]/Identity | SUPPLIER IDENTIFIER |
| Environment | cXML/Request/@deploymentMode | test |
| Order Number | cXML/Request/OrderRequest/OrderRequestHeader/@orderID | 00041401 |
| Order Date | cXML/Request/OrderRequest/OrderRequestHeader/@orderDate | 2022-12-21T09:51:17 |
| Order Status | cXML/Request/OrderRequest/OrderRequestHeader/@type | new |
| Order Version | cXML/Request/OrderRequest/OrderRequestHeader/@orderVersion | 1 |
| Order Total | cXML/Request/OrderRequest/OrderRequestHeader/Total/Money | 121.0000 |
| Ship To | cXML/Request/OrderRequest/OrderRequestHeader/ShipTo | |
| Bill To | cXML/Request/OrderRequest/OrderRequestHeader/BillTo | |
| Total Tax Amount | cXML/Request/OrderRequest/OrderRequestHeader/Tax/Money | 121.0000 |
| Buyer Reference | cXML/Request/OrderRequest/OrderRequestHeader/IdReference[@domain="OrderReference"] | 00041401 |
Item Level
| Detail | Path | Example |
|---|---|---|
| Quantity | cXML/Request/OrderRequest/ItemOut[*]/@quantity | 5.0000 |
| Line Number | cXML/Request/OrderRequest/ItemOut[*]/@lineNumber | 1 |
| Delivery Date | cXML/Request/OrderRequest/ItemOut[*]/@requestedDeliveryDate | 2023-06-20T12:00:00 |
| Item Code | cXML/Request/OrderRequest/ItemOut[*]/ItemID/SupplierPartID | FF1 |
| Unit Price | cXML/Request/OrderRequest/ItemOut[*]/ItemDetail/UnitPrice/Money | 10.0000 |
| Short Item Description | cXML/Request/OrderRequest/ItemOut[*]/ItemDetail/Description/ShortName | Blue Pen |
| Unit of Measure | cXML/Request/OrderRequest/ItemOut[*]/ItemDetail/UnitOfMeasure | PCE |
| Tax | cXML/Request/OrderRequest/ItemOut[*]/Tax/Money | 10.5000 |
| Department ID | cXML/Request/OrderRequest/ItemOut[*]/Distribution/Accounting/Segment[type="DepartmentId"] | A-2000 |
| Cost Center ID | cXML/Request/OrderRequest/ItemOut[*]/Distribution/Accounting/Segment[type="CostCenterId"] | cc007 |
| Cost Account ID | cXML/Request/OrderRequest/ItemOut[*]/Distribution/Accounting/Segment[type="CostAccountId"] | CA01 |