cXML Purchase Orders
Coupa supports cXML OrderRequest and OrderResponse documents.
Introduction
Coupa adheres to cXML standards. We suggest you refer to the cXML User's Guide at cXML.org to
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML xml:lang="en-US" payloadID="1452186890.009162@ip-10-7-14-126" timestamp="2008-01-07T09:14:50-08:00">
<Header>
<From>
<Credential domain="duns">
<!-- Customer domain typically provided by Supplier, typically DUNS -->
<Identity>dell</Identity>
<!-- Customer id typically provided by Supplier, string -->
</Credential>
</From>
<To>
<Credential domain="Duns">
<!-- Supplier domain typically provided by Supplier, typically DUNS -->
<Identity>128293714</Identity>
<!-- Supplier id typically provided by Supplier, string -->
</Credential>
</To>
<Sender>
<Credential domain="duns">
<Identity>dell</Identity>
<!-- same as From -->
<Identity>dell</Identity>
<!-- same as From -->
</Credential>
<UserAgent>Coupa Procurement 1.0</UserAgent>
<!-- does not change -->
</Sender>
</Header>
<Request deploymentMode="production">
<OrderRequest>
<OrderRequestHeader orderID="6112" orderDate="2008-01-07T09:14:50-08:00" type="new">
<!-- Coupa supports "new" and "update" -->
<Total>
<Money currency="USD">1505.0</Money>
<!-- Currency code configured in Coupa -->
</Total>
<ShipTo>
<Address isoCountryCode="US" addressID="3119">
<Name xml:lang="en">jmadden</Name>
<PostalAddress name="default">
<DeliverTo>j maddedn</DeliverTo>
<Street>333 East Hill Dr</Street>
<City>san leandro</City>
<State>ca</State>
<PostalCode>22222</PostalCode>
<Country isoCountryCode="US">United States</Country>
</PostalAddress>
<Email name="default">jmadden@coupa1.com</Email>
</Address>
</ShipTo>
<BillTo>
<Address isoCountryCode="US" addressID="142">
<Name xml:lang="en">SOB1</Name>
<!-- Company Name under COA's PO Customization page - if not specified then Company Name under Company Information is used -->
<PostalAddress name="default">
<DeliverTo>Noah Sanity Attn: Noah Noah</DeliverTo>
<Street>3420 Flatiron Way</Street>
<City>West Index</City>
<State>NJ</State>
<PostalCode>43023</PostalCode>
<Country isoCountryCode="US">United States</Country>
</PostalAddress>
</Address>
</BillTo>
<Contact role="endUser">
<Name xml:lang="en">j maddedn</Name>
<Email name="default">jmadden@coupa1.com</Email>
</Contact>
<Comments xml:lang="en">header comment goes here if entered by user</Comments>
</OrderRequestHeader>
<ItemOut quantity="1" lineNumber="1">
<ItemID>
<SupplierPartID>223-4511</SupplierPartID>
<!-- Coupa Item Part Number -->
<SupplierPartAuxiliaryID>1005379527029\1</SupplierPartAuxiliaryID>
<!-- Auxiliary Part Number is optional, typically used by punchout suppliers -->
</ItemID>
<ItemDetail>
<UnitPrice>
<Money currency="USD">1505.0</Money>
<!-- Currency code configured in Coupa -->
</UnitPrice>
<Description xml:lang="en">OptiPlex 755 Energy Smart Minitower;IntelREG CoreTM 2 Quad Processor Q6600 (2.40GHz, 2X4M, 1066MHz FSB)</Description>
<UnitOfMeasure>EA</UnitOfMeasure>
<Classification domain="UNSPSC">44000000</Classification>
<!-- Future expansion -->
</ItemDetail>
<Distribution>
<Accounting name="bbbb">
<!-- Coupa Account name -->
<Segment id="bbb" description="ORG" type="Organization" />
<Segment id="b" description="DEPT" type="Department" />
<Segment id="bb" description="PROJ" type="Project" />
</Accounting>
<Charge>
<Money currency="USD">1505.0</Money>
</Charge>
</Distribution>
<Comments xml:lang="en">line item comment goes here if entered by user</Comments>
</ItemOut>
</OrderRequest>
</Request>
</cXML>
learn more. See also Handling Common Special Characters in cXML.
Use the purchase order examples listed below:
Sample cXML Purchase Order with Annotations
If you plan on receiving purchase orders via cXML, you’ll want to fill out the Coupa cXML Supplier Questionnaire and give it to your customer.
How It Works
Coupa will send you an OrderResponse cXML document with an OrderResponse document, which includes these required validation fields:
- Supplier domain
- Supplier identity
- Buyer domain
- Buyer identity
- Shared Secret
Supported cXML
Coupa supports the following cXML purchase order documents. Suppliers must return an OrderResponse within 60 seconds for every OrderRequest received.
cXML Document | Description |
---|---|
OrderRequest |
Include the following elements:
|
OrderResponse | Post your cXML back to Coupa when you receive OrderRequest. |
cXML Order Response Status codes
Code | Meaning |
---|---|
2XX | Successful |
5XX | Error, but the system will retry 5 times at 1-hour intervals |
4XX | Error, and retries will not be successful |
Testing Checklist
Talk to your customer about how to test your integration.
Sample cXML
Purchase Order with Annotations
OrderResponse
<?xml version="1.0"?>
<cXML payloadID="111111111" xml:lang="en" timestamp="1999-03-12T18:39:09-08:00">
<Response>
<Status code="200" text="OK"/>
</Response>
</cXML>
Error Handling
If you're getting an error when trying to set up a cXML connection, see cXML Error Handling.
Coupa does not support SSL client certificate authentication and requires the supplier to remove this restriction. See TLS/SSL Errors during PO Transmission for more info.