Do You Still Need EDI If You Use cXML?
Do cXML and EDI replace each other? This FAQ explains how punchout and EDI 850/855/856 coexist, and where mismatches break order data.
No. cXML punchout handles the shopping session, the part where a buyer clicks through to a supplier catalog, builds a cart, and sends it back. EDI still carries the transaction lifecycle once that cart becomes a real order: the 850 purchase order, 855 acknowledgment, 856 ASN, and 810 invoice. Most enterprise buyers run both on the same supplier connection, not one instead of the other.
What's the actual difference between cXML and EDI?
cXML is a session-based XML protocol built for real-time interaction. EDI is a batch document standard built for structured, machine-to-machine transaction exchange after the interaction is over. They solve different problems, which is why buyers rarely pick just one.
cXML is a streamlined protocol, created by Ariba in 1999, intended for communication of electronic business documents between procurement applications, e-commerce hubs, and suppliers, and it is based on XML, providing formal schemas for standard business transactions. If you're wondering why it feels tied to one vendor ecosystem, that's because it is: since SAP's acquisition of Ariba in 2012, this protocol is owned by SAP. As one deep-dive on 2026 EDI standards puts it, cXML was developed by Ariba (now SAP Ariba) and is widely used for procurement, particularly in e-procurement platforms, so if you're connected to a large buyer through SAP Ariba, you're probably sending and receiving cXML.
EDI, by contrast, was never built for a live shopping session. EDI and Punchout are two different technologies for exchanging business data electronically, with EDI being a set of standard protocols that enables organizations to automate business processes including order placement, invoicing, and shipping. No cart, no browsing, no back-and-forth. Just structured documents moving on a schedule.
Why do Ariba, Coupa, and Oracle require cXML punchout but still send EDI 850s?
Because punchout only replaces the catalog-browsing step, not the order engine behind it. The buyer's procurement platform still owns approval routing and PO issuance, and that PO usually leaves the platform as a standard EDI transaction, not as cXML.
Punchout catalogs depend on two main protocols, Commerce XML (cXML) and Open Catalog Interface (OCI), with cXML the more widely adopted standard in North America used by platforms like SAP Ariba while OCI is common in SAP SRM environments, particularly in Europe, but both handle the same fundamental job: authenticate the buyer session, pass cart data back to the procurement system, and generate a purchase order. What happens after "generate a purchase order" is where EDI takes over for most large buyers. On the SAP Ariba side specifically, Ariba punchout uses cXML and requires suppliers to go through Ariba Network certification, with setup typically taking 2 to 4 weeks once the technical configuration is in place, and if you're targeting Fortune 500 buyers, Ariba is probably where you start. Coupa runs a similar model: Coupa has grown quickly in mid-market and enterprise procurement, punchout uses cXML, and the Coupa Supplier Portal handles most of the onboarding, giving suppliers a single place to test connections and review transaction logs, generally considered one of the smoother integrations to set up. Jaggaer sits in between: Jaggaer supports both cXML and OCI, which makes it more flexible for suppliers juggling multiple buyer ecosystems.
| Platform | Primary punchout protocol | Onboarding notes |
|---|---|---|
| SAP Ariba | cXML | Requires Ariba Network certification, roughly 2-4 weeks setup |
| Coupa | cXML | Coupa Supplier Portal handles onboarding and connection testing |
| Jaggaer | cXML and OCI | Supports both, common in higher education and government procurement |
| SAP SRM environments | OCI | More common in Europe than in North America |
Can you run cXML punchout and EDI on the same trading-partner connection?
Yes, and this is the normal setup, not an edge case. Suppliers maintain a cXML punchout gateway for catalog and cart sessions alongside a standard EDI connection over AS2, SFTP, or VAN for the 850, 855, 856, and 810.
The mechanics are straightforward on paper. A buyer's cXML PunchoutOrderMessage carries cart data back into their procurement system, that system runs approvals, and the finalized order dispatches as an EDI 850 into the supplier's ERP or EDI mapping engine. Punchout differs from EDI by offering a shopping experience to the user that EDI does not offer, since EDI has price files that can be exchanged such as an EDI 832, but no interactivity. That's the split of labor: cXML owns the interactive front end, EDI owns everything transactional behind it.
Where it gets messy is timing. Catalog price data lives in the punchout session and gets refreshed on its own schedule. The EDI 850 that follows references pricing pulled at cart-build time. If those two clocks drift, and they do, you get a PO that doesn't match what the supplier's price master expects.
What breaks when cXML and EDI data don't reconcile?
Three things break most often: price mismatches between the punchout cart and the EDI 850, duplicate purchase orders when the buyer's system retries a failed cXML session and also fires the EDI order, and invoice discrepancies when the cXML invoice document and the EDI 810 disagree on totals.
Each of these traces back to the same root cause: two separate data paths feeding one order record, with no single system checking that they still agree. A supplier running a three-way match against the EDI 810 needs the original 850 and 856 to be internally consistent, and if the 850 was generated from stale punchout cart data, the mismatch surfaces at invoice time, usually as a deduction or chargeback the buyer's AP team disputes.
The practical fix is unglamorous but effective:
- Correlate every cXML PunchoutOrderMessage with its resulting EDI 850 using a shared order or session ID, not just PO number
- Run automated three-way matching between the 850, 856, and 810 rather than relying on manual invoice review
- Keep one price master as the source of truth and sync both the punchout catalog and EDI 832 price file from it, not from each other
- Log cXML session timeouts and retries separately from EDI transmission errors, since a failed punchout session and a failed AS2 handoff look identical in a generic "order not received" ticket queue
Do you need a separate platform for cXML, or can your existing EDI mapping engine handle it?
Most legacy EDI mapping engines don't speak cXML natively. You'll typically need a punchout-specific connector or middleware layer sitting in front of your EDI infrastructure, even if the same team manages both.
This is why dedicated punchout providers exist as a category. Punchout connector platforms add capability across over 100 eProcurement platforms including Ariba, Coupa, Jaggaer, and Oracle, with connectivity via cXML, OCI, XML and xCBL supported as a bolt-on rather than a native feature of the ERP or EDI stack. For a mid-size manufacturer already running SPS Commerce, TrueCommerce, Cleo, or IBM Sterling for core EDI, the build-vs-buy question usually comes down to how many buyers demand punchout versus how many just want a standard 850/856/810 loop. If it's two or three strategic accounts, a bolt-on connector is cheaper than standing up cXML parsing in-house.
Does cXML carry an equivalent to the EDI 856 shipping notice?
Yes, but it rarely reaches the carrier directly. The current protocol standard includes documents for setup, catalogue content, application integration, purchase orders, order confirmation and ship notice documents, cXML analogues of EDI 855 and 856 transactions, and new invoice documents. In practice, once the PO is confirmed, execution shifts to whatever moves freight, and that's still EDI territory.
Carrier connectivity for booking, tracking, and proof of delivery runs through EDI 856/214/990 feeds into a TMS or multi-carrier platform, not through the buyer's punchout session. Carrier connectivity is the technical link between a transport management system and each carrier's own systems, the pipe through which tenders, bookings, tracking updates, proof-of-delivery and invoices move automatically, and it is not a single technology but an outcome, with the underlying method (EDI, API, or something messier) determining how reliable and future-proof it actually is. Platforms like MercuryGate, Descartes, Transporeon, Alpega, and Cargoson sit downstream of this EDI leg for exactly that reason, consuming the 856 or 214 for execution rather than parsing cXML ship notices.
So, cXML or EDI: which should you invest in first?
If you're a supplier selling into Ariba- or Coupa-heavy buyers, punchout is table stakes for catalog visibility and getting listed as a preferred vendor. EDI remains mandatory underneath it for the transaction, compliance, and chargeback layer that punchout was never designed to carry.
- If a buyer requires punchout, budget for a connector, not just a catalog feed
- Keep price data in one master system feeding both the catalog and the EDI 832
- Correlate cXML session IDs with EDI PO numbers before you need to, not during a dispute
- Treat the 856/810 reconciliation as its own monitoring task, separate from punchout uptime
Neither protocol is going away. Plan the integration accordingly, and check the reconciliation logic before your first chargeback forces the conversation.