TENDERWon a tender that requires PunchOut?Download the Tender Kit

Guide · Protocols

What is cXML? Commerce XML explained for suppliers

In short

cXML (Commerce eXtensible Markup Language) is an XML standard that buyers’ procurement systems and suppliers use to exchange PunchOut sessions, purchase orders, confirmations, ship notices and invoices. SAP Ariba, Coupa and most source-to-pay systems use it. For a supplier, cXML is what lets a buyer open your store from their system and send you the order.

cXML in one minute

cXML was created in the late 1990s, originally by Ariba, to let procurement systems and suppliers exchange business documents in a common format. It is published at cxml.org as a set of XML document types with a public DTD, and it is still the language spoken by most cloud procurement systems today.

Every cXML document has the same outline: an envelope with a payloadID and a timestamp, a Header that says who sends it to whom with which credentials, and then either a Request, a Response or a Message carrying the business content.

cXML vs XML

XML vs cXML
XMLcXML
What it isA general format for structured dataA specific set of XML documents for procurement
RulesAny schema you defineFixed DTD published at cxml.org
Used forAnythingPunchOut, orders, confirmations, ship notices, invoices

The cXML messages a supplier receives

cXML messages
MessageWhat it doesIn PunchOut Rocket
PunchOutSetupRequestThe buyer opens your storeYes
PunchOutOrderMessageThe cart goes back to the buyerYes
OrderRequestApproved purchase orderPremium plan
ConfirmationRequestOrder confirmationOC & ASN add-on
ShipNoticeRequestShip notice (ASN)OC & ASN add-on
InvoiceDetailRequestInvoiceOn request

For PunchOut, the first three are what matter: they open the session, return the cart and deliver the order. Confirmations, ship notices and invoices are separate flows that some buyers require after go-live: PunchOut Rocket imports purchase orders with the Premium plan, sends confirmations and ship notices with its OC & ASN add-on, and quotes invoices on request.

Example · PunchOutSetupRequest (abridged)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.069/cXML.dtd">
<cXML payloadID="1729332000.4711@buyer.example.com" timestamp="2026-10-19T10:00:00+02:00">
  <Header>
    <From><Credential domain="NetworkID"><Identity>AN01000000001</Identity></Credential></From>
    <To><Credential domain="NetworkID"><Identity>AN01000000002</Identity></Credential></To>
    <Sender>
      <Credential domain="NetworkID">
        <Identity>AN01000000001</Identity>
        <SharedSecret>••••••••</SharedSecret>
      </Credential>
      <UserAgent>Buyer procurement system</UserAgent>
    </Sender>
  </Header>
  <Request>
    <PunchOutSetupRequest operation="create">
      <BuyerCookie>8f2c41d0a9</BuyerCookie>
      <BrowserFormPost><URL>https://buyer.example.com/punchout/return</URL></BrowserFormPost>
      <SupplierSetup><URL>https://gateway.example.com/setup</URL></SupplierSetup>
    </PunchOutSetupRequest>
  </Request>
</cXML>

Credentials and shared secrets

Each cXML document carries three credentials in its header: From (who the document comes from), To (who it is for) and Sender (the system that actually sends it, with a SharedSecret). On SAP Business Network the identities are Ariba Network IDs (ANIDs); other systems use DUNS numbers or their own identifiers. The shared secret is agreed with the buyer and must never appear in emails or screenshots.

What is a cXML catalog?

The term is used for two different things:

Static catalogue (CIF or cXML index)

A file you upload to the buyer’s system. Prices and items are frozen until the next upload.

PunchOut catalogue

The buyer opens your live store via cXML. Prices, stock and configurations are always current.

Next: how cXML compares to SAP’s OCI.

PunchOut on the store you already have

PunchOut Rocket connects WooCommerce, Magento, PrestaShop and nopCommerce to SAP Ariba, Coupa and SAP via cXML or OCI. From €163/month per site, 30-day free trial.

FAQ

Questions

What does cXML stand for?

Commerce eXtensible Markup Language. It is an XML standard for business documents between buyers and suppliers: PunchOut sessions, purchase orders, confirmations, ship notices and invoices.

What is the difference between XML and cXML?

XML is a general format for structured data. cXML is one specific set of XML documents, defined by a public DTD, designed for procurement.

What is a cXML catalog?

Either a static catalogue file (a CIF or cXML index) uploaded to the buyer’s system, or a PunchOut catalogue the buyer opens live on the supplier’s store.

Who uses cXML?

SAP Ariba, Coupa, Jaggaer, Ivalua, Oracle, Workday and most source-to-pay systems outside SAP’s own ERP, which uses OCI.

Keep reading

Related guides

30-day free trial · no credit card

Your buyer is waiting. Let’s launch.

Install the plugin today and run your first test session this afternoon. If your deadline is close, tell us and we will handle your request with priority.