---
title: "What Is cXML?"
url: https://www.uncap.com/glossary/cxml
author: "Denis Dyli"
published: 2026-10-11
updated: 2026-10-11
summary: "cXML (commerce eXtensible Markup Language) is an open, XML-based protocol for exchanging business documents between procurement applications, e-commerce hubs and suppliers. B2B buyers use it to punch out to a supplier's website, send purchase orders, and receive order confirmations, ship notices and invoices, typically as structured documents sent over HTTP or HTTPS."
---

# What Is cXML?

> cXML (commerce eXtensible Markup Language) is an open, XML-based protocol for exchanging business documents between procurement applications, e-commerce hubs and suppliers. B2B buyers use it to punch out to a supplier's website, send purchase orders, and receive order confirmations, ship notices and invoices, typically as structured documents sent over HTTP or HTTPS.

**cXML**: cXML (commerce eXtensible Markup Language) is an open, XML-based protocol for exchanging business documents between procurement applications, e-commerce hubs and suppliers. B2B buyers use it to punch out to a supplier's website, send purchase orders, and receive order confirmations, ship notices and invoices, typically as structured documents sent over HTTP or HTTPS.

## How it works

- Defined by DTDs. Every cXML document follows Document Type Definitions (DTDs), text files that describe the precise syntax and order of its elements, so applications can validate the cXML they read or write.
- Request and response. The sending system opens an HTTP or HTTPS connection, posts a cXML document, and waits. The receiver does the work and sends a cXML response back through the same connection.
- PunchOut. Instead of product details, the buyer's procurement application shows a button that opens pages from the supplier's website. A second button returns the selected products and prices to the user's purchase requisition.
- Orders and fulfillment. Approved purchase orders go to the supplier, and the standard also covers order confirmation and ship notice documents, which cxml.org calls the cXML analogues of EDI 855 and 856 transactions.

The specification is published at cxml.org.

## cXML document types

Besides Request-Response, cXML defines One-Way messages. They have no explicit request and response cycle, are not restricted to HTTP, and carry a Message element instead of a Request or Response. Documents in the specification include:

- ProfileRequest: asks a cXML server which versions, transactions and options it supports. It is the only transaction every cXML server must support.
- PunchOutSetupRequest and PunchOutOrderMessage: the setup request can initiate a new PunchOut session, and the order message communicates the contents of the shopping basket to the buyer's procurement application.
- OrderRequest: analogous to a purchase order. The supplier returns a response that tells the buyer it successfully received and parsed the order.
- ConfirmationRequest: detailed, item level confirmation of a specific order, the order confirmation document cxml.org calls an analogue of the EDI 855.
- ShipNoticeRequest: describes a single shipment, which can contain portions of multiple orders. cxml.org calls its ship notice an analogue of the EDI 856.
- InvoiceDetailRequest: represents an invoice.

## How a PunchOut session works

**A cXML PunchOut session**

### 1. Buyer, Setup request

When the user clicks a PunchOut item, the procurement application sends a PunchOutSetupRequest that identifies the buyer and the operation to perform.

### 2. Supplier, Setup response

The supplier's website returns a PunchOutSetupResponse with a start page URL, and a new browser window opens, logged into an account on that site.

### 3. Buyer, Product selection

The user shops as if logged on to the supplier's website directly, with features that may include configurators and real-time pricing.

### 4. Supplier, Check out

Clicking Check Out sends a PunchOutOrderMessage with product details and prices to the user's purchase requisition.

### 5. Buyer, Purchase order

When the requisition is approved, the procurement application converts it into a purchase order and sends it to the supplier.

At check out the supplier has effectively provided a quote. It has not received a [purchase order](/glossary/purchase-order) yet, so it cannot book the order. If an item needs editing later, the supplier can let users re-PunchOut, which is a PunchOutSetupRequest with "edit" as its operation. In the sequence the cXML specification describes, a network hub verifies the buying organization, passes the setup request to the supplier, and routes purchase orders to it. In Direct PunchOut, the supplier's site authenticates the request itself.

## Example

A facilities buyer clicks a supplier's PunchOut button in their procurement system. The supplier's site opens with that buyer's contract prices. The buyer adds 10 cases of gloves at $40 per case, a $400 cart, and returns it to a purchase requisition. After a manager approves it, a cXML purchase order for $400 reaches the supplier.

## On Shopify

In Shopify B2B, each company location can have separate catalogs, payment terms, checkout options and shipping addresses. Shopify orders also carry a PO number field, which Shopify describes as typically provided by business customers who require a PO number for their procurement. On the supplier side of a cXML connection, the cXML specification describes PunchOut catalogs as web server applications that manage buyers' PunchOut sessions. An integration of that kind can create the resulting Shopify order through the Admin API, where the orderCreate mutation covers orders that aren't created through the standard checkout, such as orders imported from an external system or created for wholesale customers.

## How Uncap helps

Uncap's guide to [selling into Coupa, Ariba and SAP procurement systems](/post/punchout-coupa-ariba-sap-procurement) covers the architecture: a punchout layer in front of your Shopify B2B storefront, built once, then configured per buyer.

## Related terms

- PunchOut
- EDI (electronic data interchange)
- EDI 850
- EDI 856
- Purchase order
- ERP integration

## Sources

- cXML: Commerce XML Resources
- Getting Started with cXML (PDF)
- X12 Transaction Sets

## Frequently asked questions

### Is cXML the same as EDI?

No. cXML is an XML language exchanged over the internet, while X12 EDI uses numbered transaction sets such as the 850 purchase order. The two cover similar ground: cxml.org describes its order confirmation and ship notice as analogues of EDI 855 and 856.

### What is the difference between cXML and XML?

XML is a meta-markup language used to create syntaxes for languages, and a standard for passing data between applications. cXML is one of those languages, defined by its own DTDs for procurement documents such as catalogs, PunchOut sessions and purchase orders.

### What does cXML mean?

cXML stands for commerce eXtensible Markup Language, the name its own specification uses.
