This topic provides an overview of the cXML Purchase Order (OrderRequest) in conjunction with cXML specifications for BuyerQuest.
Overview
The BuyerQuest platform may be configured to transmit Purchase Orders in cXML to Suppliers. The necessary configuration is shown here, along with cXML specifications.
cXML Outbound Purchase Order Overview
cXML PO Method in Supplier Record
Settings for Purchase Order cXML Integration are found in the 'cXML PO Method' section of each supplier record. The supplier record can be accessed by going to Menu > Suppliers > Manage Suppliers and clicking on a specific supplier in the grid.
Supplier Must Return HTTP Response for Transmissions Received
Suppliers must return an HTTP response, including body, for every transmission they receive.
Successful transmissions require a 200 OK response. Transient errors require a 500 error reponse.
Server-side errors require a 400-level error response.
See below for a sample success response.
Purchase Order Outbound to Supplier - cXML Annotated Specification
An Excel version of the specification is included here:
POOutboundtoSupplier2022Mar10.xlsx
Purchase Order cXML Sections
A PO cXML message broadly consists of three important elements: Header, Order Request, and ItemOut. These elements are described in further detail below.
Header
The Header section contains authentication information and addressing. This information is used to authenticate the request. Specific user information does not apply and should not be included in the Header section.
Request
The Request element follows the Header element and includes order-specific information, such as an order identification number or date. The following information is included within the BuyerQuest cXML Request:
ItemOut
ItemOut information is included in the BuyerQuest ‘body’ of the message. This section will contain the following item-specific information by line:
Note:
- IF PO has Shipping Level = Header Level THEN:
- Shipping Location and Deliver To of the 1st Line Item are exported in <ShipTo> on Header Level
- Need By are exported in requestedDeliveryDate for each Line Item with appropriate value
- IF PO has Shipping Level = Line Level THEN:
- Shipping Location of the 1st Line Item is exported in <ShipTo> on Header Level
- Deliver To of each Line Item is exported in <Extrinsic name="DeliverTo">
- Need By are exported in requestedDeliveryDate for each Line Item with appropriate value
- Billing Location of 1st Line Item is exported in <BillTo> on Header Level despite Billing Level = Header Level OR Line Level
- Shipping Method of 1st Line Item is exported in <Shipping> on Header Level despite Shipping Method Level = Header Level OR Line Level
- Payment Method of 1st Line Item is exported in <Extrinsicname="PaymentMethod"> on Header Level despite Payment Method Level = Header Level OR Line Level
Accounting in cXML PO
Accounting can be displayed in the cXML PO. To enable this ability, go to ADMIN > Show Menu > Suppliers > Manage Suppliers > Click into a Supplier that has PO Transmission Method = cXML> General tab > 'Include Accounting' = Yes and Save
See: Manage Supplier Information
When 'Include Accounting' = Yes:
- <Distribution> tags are included within the cXML PO
- Accounting data is sent under the <Distribution> element.
- There may be multiple <Accounting> under <Distribution> depending on how many accounting splits there are for the PO.
- Value of name in <Accounting> element = "Accounting String X". X is 1, 2, 3 etc depending on the number of times accounting is split. For the first accounting string it will be 'Accounting String 1' for the second accounting string it will be 'Accounting String 2'
- There may be multiple <AccountingSegment> under <Accounting>. Each <AccountingSegment> corresponds to the Accounting Group within the accounting string.
- Value of id under <AccountingSegment> = Id of the accounting group
- Value of Name under <AccountingSegment> = Name of the accounting group
- Value of Description under <AccountingSegment> = Id of the accounting value.
- For split accounting, the percentage distribution is sent under <charge>.
- Value of Money currency under <charge> = the percentage allocated to this Accounting split
Example:
| Markup | Copy |
|
<Distribution> <Accounting name="Accounting String 1"> <AccountingSegment id="10"> <Name xml:lang="en">Business Unit</Name> <Description xml:lang="en">2</Description> </AccountingSegment> <AccountingSegment id="12"> <Name xml:lang="en">Project</Name> <Description xml:lang="en">900077</Description> </AccountingSegment> </Accounting> <Charge> <Money currency="USD">20</Money> </Charge> </Distribution> <Distribution> <Accounting name="Accounting String 2"> <AccountingSegment id="10"> <Name xml:lang="en">Business Unit</Name> <Description xml:lang="en">1</Description> </AccountingSegment> <AccountingSegment id="12"> <Name xml:lang="en">Project</Name> <Description xml:lang="en">900001</Description> </AccountingSegment> </Accounting> <Charge> <Money currency="USD">80</Money> </Charge> </Distribution> | |
PO cXML Example
| Markup | Copy |
|
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.033/cXML.dtd"> <cXML payloadID="1507128668.37307@ip-127-0-0-1" xml:lang="en-US" timestamp="2017-10-04T14:51:08+00:00"> <Header> <From> <Credential domain="DUNS"> <Identity>1478523698</Identity> </Credential> </From> <To> <Credential domain="NetworkID"> <Identity>54supplier3438</Identity> </Credential> </To> <Sender> <Credential domain="DUNS"> <Identity>bquest</Identity> <SharedSecret>g5t415d5g4j5r4fv5s6d4g5ed43s5h4hj65847d36s54d</SharedS ecret> </Credential> <UserAgent>BuyerQuest</UserAgent> </Sender> </Header> <Request> <OrderRequest> <OrderRequestHeader orderID="PO-4700000101" orderDate="2017-10-04T14:51:05Z"> <Total> <Money currency="USD">125.94</Money> </Total> <ShipTo> <Address isoCountryCode="US" addressID="142"> <Name xml:lang="en">Acme</Name> <PostalAddress name="default"> <DeliverTo>Jane Doe</DeliverTo> <Street>123 Main St. Suite 400</Street> <City>Hyattsville</City> <State>MD</State> <PostalCode>20783</PostalCode> <Country isoCountryCode="US">United States</Country> </PostalAddress> name="default">customer@email.com</Email> <Phone> <TelephoneNumber> <CountryCode isoCountryCode="US">1</CountryCode> <AreaOrCityCode>916</AreaOrCityCode> <Number>5555555</Number> </TelephoneNumber> </Phone> </Address> </ShipTo> <BillTo> <Address isoCountryCode="US" addressID="142"> <Name xml:lang="EN">Acme #493</Name> <PostalAddress name="default"> <DeliverTo>Accounts Payable</DeliverTo> <Street>123 Main St. Suite 600</Street> <City>Hyattsville</City> <State>MD</State> <PostalCode>20783</PostalCode> <Country isoCountryCode="US">United States</Country> </PostalAddress> <Email name="default">AP@email.com</Email> <Phone> <TelephoneNumber> <CountryCode isoCountryCode="US">1</CountryCode> <AreaOrCityCode>916</AreaOrCityCode> <Number>5551234</Number> </TelephoneNumber> </Phone> </Address> </BillTo> <Shipping> <Description xml:lang="en">FedEx 2-day</Description> </Shipping> <PaymentTerm payInNumberOfDays="J995" /> <Contact role="endUser"> <Name xml:lang="en">John Smith</Name> <Email name="default">john@email.com</Email> <Phone name="work"> <TelephoneNumber> <CountryCode isoCountryCode="US">1</CountryCode> <AreaOrCityCode/> <Number/> <Extension/> </TelephoneNumber> </Phone> </Contact> <Comments xml:lang="en"> <Attachment> <URL name="Draft proof">https://wadmin.buyerquest.net/acme/index.php/upload_file/ajax /download/file_id/213/v/9876543210/</URL> </Attachment> </Comments> <Extrinsic name="RequestTitle">October Office Supplies</Extrinsic> </OrderRequestHeader> <ItemOut quantity="1" lineNumber="1" requestedDeliveryDate="2017-10-31"> <ItemID> <SupplierPartID>922138SMNEO</SupplierPartID> <SupplierPartAuxiliaryID> </SupplierPartAuxiliaryID> </ItemID> <ItemDetail> <UnitPrice> <Money currency="USD">7.14</Money> </UnitPrice> <Description xml:lang="en">Shirt</Description> <UnitOfMeasure>EA</UnitOfMeasure> <Classification domain="UNSPSC">41122503</Classification> <Extrinsic name="Sub Account">135498000</Extrinsic> <Extrinsic name="Tax Category">Resale</Extrinsic> <Extrinsic name="Size">Small</Extrinsic> <Extrinsic name="Color">Orange</Extrinsic> </ItemDetail> <Comments xml:lang="en">Please double-check size before shipping. We received the wrong size last time.</Comments> </ItemOut> <ItemOut quantity="12" lineNumber="2" requestedDeliveryDate="2017-10-31"> <ItemID> <SupplierPartID>922138MDBLU</SupplierPartID> <SupplierPartAuxiliaryID> </SupplierPartAuxiliaryID> </ItemID> <ItemDetail> <UnitPrice> <Money currency="USD">5.94</Money> </UnitPrice> <Description xml:lang="en">Shirt</Description> <UnitOfMeasure>EA</UnitOfMeasure> <Classification domain="UNSPSC">41122503</Classification> <Extrinsic name="Sub Account">135498000</Extrinsic> <Extrinsic name="Tax Category">Resale</Extrinsic> <Extrinsic name="Size">Medium</Extrinsic> <Extrinsic name="Color">Blue</Extrinsic> </ItemDetail> <Comments xml:lang="en"/> </ItemOut> <ItemOut quantity="10" lineNumber="3" requestedDeliveryDate="2017-10-31"> <ItemID> <SupplierPartID>922138LGRED</SupplierPartID> <SupplierPartAuxiliaryID>aux98wueo465thgd</SupplierPartAuxiliaryID> </ItemID> <ItemDetail> <UnitPrice> <Money currency="USD">5.94</Money> </UnitPrice> <Description xml:lang="en">Shirt</Description> <UnitOfMeasure>EA</UnitOfMeasure> <Classification domain="UNSPSC">41122503</Classification> <Extrinsic name="Sub Account">135498000</Extrinsic> <Extrinsic name="Tax Category">Resale</Extrinsic> <Extrinsic name="Size">Large</Extrinsic> <Extrinsic name="Color">Red</Extrinsic> </ItemDetail> <Comments xml:lang="en"> <Attachment> <URL name="Design Ideas">https://wadmin.buyerquest.net/acme/index.php/upload_file/ajax /download/file_id/543/v/1234567890/</URL> </Attachment> </Comments> </ItemOut> </OrderRequest> </Request> </cXML> | |
Next Steps
Please prepare to provide the following required information upon request:
- Supplier contact's information for setup and testing
- URL, username, password, and shared secret for receiving test cXML POs
URL, username, password, and shared secret for receiving production cXML POs
Add Content Group to cXML PO Export to Supplier
To tailor the exported data to meet customers' specific business needs we have added Content Group to the cXML PO Export to Supplier.
How to Configure
- In Admin Panel:
To configure the supplier to export payment data please note that we have renamed cXML Excluded Fields section to Exported Additional Fields
- Log in to admin panel
- Go to Suppliers > Manage Suppliers > Edit any Supplier > cXML PO Method
- Navigate to Exported Additional Fields tab
- Set Payment to Yes so that Payment information is exported in cXML PO to this Supplier
- If set to No Payment information will not be exported in cXML PO to this Supplier
- Set Content Group to Yes if you would like Content Group to be exported to the Supplier
How to Use
Pre-conditions:
- Payment = Yes
- Content Group = Yes
Steps:
- Create cXML PO
- Open the cXML PO file
- Note that the Content Group value is exported
<OrderRequestHeader>
Ability to Send Document Form Fields in cXML PO Exports
1. Field Name Disambiguation Using Document Form Names
- A new option allows including the Document Form name in the exported field names.
- This is particularly useful when multiple forms share the same field names, enabling differentiation.
- Applies to:
- CSV PO/Invoice/Payables Transaction Reports
- cXML PO Exports
2. Configuration Options for Export Behavior
At Document Form Level:
-
Include Document Form name in Exported Fields names setting:
-
Location:
Manage Document Forms > Edit > General Settings - Options: Yes / No (Default: No)
-
Effect: When enabled, exported fields are named as:
<Document Form Name> - <Field Name>
-
Location:
At Field Level:
- Two new export flags added for each field in a Document Form:
- Include in cXML PO to ERP
- Include in cXML PO to Supplier
-
Location:
Manage Document Forms > Edit > Fields > Purchase Order Display Settings - Options: Yes / No (Default: No)
- These control whether the field appears in the corresponding cXML export.
3. cXML Export Enhancements
-
Fields marked for export will appear in the
<OrderRequestHeader>section of the cXML as:<Extrinsic name="...">Field Value</Extrinsic>
- Field
nameis determined by the form-level setting for including the Document Form name. - Order of appearance is ideally by:
- Document Form priority
- Field position
⚙️ How to Configure
1. Enable Form Name in Exported Fields
- Navigate to:
Admin Panel > Manage Document Forms > Edit - In General Settings:
- Locate the dropdown Include Document Form name in Exported Fields names
- Set to Yes to prefix exported field names with the Document Form name.
2. Configure Export Flags for Individual Fields
- Navigate to:
Manage Document Forms > Edit > Fields > Purchase Order Display Settings - For each field:
- Set Include in cXML PO to ERP to Yes to include it in ERP-bound exports.
- Set Include in cXML PO to Supplier to Yes to include it in Supplier-bound exports.
3. Set Display Format in File-Based Integration Exports
- Navigate to:
Data Loads > Manage File-based Integrations > Export
- For each relevant report type (PO, Invoice, Payables):
- Ensure field names are displayed in format:
-
<Document Form Name> - <Field Name>(if form-level setting is Yes) -
<Field Name>(if form-level setting is No)
-
- Ensure field names are displayed in format:
🛠️ How to Use
In cXML PO Export to ERP
- The system checks each Document Form field:
- Include in cXML PO to ERP == Yes
- Status == Enabled
-
Each eligible field is exported as:
<Extrinsic name="Field Name or Form - Field Name">Field Value</Extrinsic>
- Inserted under
<OrderRequestHeader>, after otherExtrinsictags.
In cXML PO Export to Supplier
- The system checks each Document Form field:
- Include in cXML PO to Supplier == Yes
- Status == Enabled
-
Fields are output similarly as:
<Extrinsic name="Field Name or Form - Field Name">Field Value</Extrinsic>
- Also included under
<OrderRequestHeader>, post otherExtrinsictags.
Key Words:
Purchase Order Outbound to Supplier, PO export, cXML PO export, export to ERP, Content Group in cXML PO Export, Exported Additional Fields, Include Document Form name in Exported Fields names, document forms, ERP PO, ERP PO field in Export to supplier, CSV PO, Invoice, Payables, Transaction Reports
Comments
0 comments
Article is closed for comments.