Skip to content
SyncMyShop

Notes

PunchOut vs EDI: the session before the order and the documents after it

PunchOut is a session: a buyer opens your store from the procurement system, fills a cart and takes it back as a requisition. EDI exchanges documents between systems with nobody at a screen: the purchase order, its acknowledgment, the ship notice and the invoice. Many buyers run both, with the cart in a PunchOut session and the purchase order in X12 or cXML.

Updated

The short answer

PunchOut and EDI sit on either side of the purchase order.

  • PunchOut happens before the order. A person at the buyer clicks your tile in Coupa or SAP Ariba, lands in your store logged in, fills a cart and sends it back. The cart becomes a requisition, and nothing is ordered yet.
  • EDI happens from the order on. The buyer's system sends a purchase order, your system acknowledges it, and the confirmation, ship notice and invoice follow, file by file, with no person at a screen.

The search for "cXML vs EDI" mixes the two, because cXML covers both: the PunchOut session and a set of order documents that do the work of X12 transaction sets. Facts below were checked on October 3, 2026 against the cXML reference guide, version 1.2.071, and SAP's EDI guide for SAP Business Network suppliers.

Side by side

PunchOut (cXML) EDI (X12)
What it carries a login and a cart purchase order, acknowledgment, ship notice, invoice
Who is waiting a buyer at a browser nobody; systems process files
Start PunchOutSetupRequest, server to server, answered with a start URL a file in a mailbox or on an AS2 or SFTP endpoint
The result PunchOutOrderMessage, posted through the buyer's browser an 850 with a PO number, ready to book
Receipt an HTTP status and a cXML Status code in the response a separate 997 functional acknowledgment
Failed delivery the cXML reference recommends 10 retries, one per hour, on a 5xx the file waits until the receiver picks it up
Price and stock live from your store at the click whatever the order says; prices agreed beforehand
Version cXML DTD 1.2.071 is current; each document names its own 004010 on SAP Business Network

The same order in both

Bakker Installatie B.V., customer 10432, buys on SAP Ariba. The supplier takes PunchOut carts in cXML and has chosen EDI as its order routing on SAP Business Network.

A PunchOut session in cXML followed by the order documents in X12 SAP Business Network forwards a PunchOutSetupRequest, the integration opens a session for customer 10432 and the cart returns to SAP Ariba. After approval SAP Ariba sends an OrderRequest, which the network delivers as an X12 850. The integration answers with a 997, books the order and later sends an 855, 856 and 810, which the network can convert to cXML. SAP Ariba at the buyer SAP Business Network Integration Store and ERP supplier PunchOutSetupRequest PunchOutSetupRequest session for 10432 PunchOutOrderMessage, 3 lines approval at the buyer OrderRequest X12 850 X12 997 order 4500001234 X12 855, 856, 810 cXML, if set up Session in cXML only. From the purchase order on, the network translates between cXML and X12 004010.
One order with the session in cXML and the documents in X12. SAP Business Network translates between the two from the purchase order on.
Step cXML X12 Who sends
Start the session PunchOutSetupRequest none buyer
Return the cart PunchOutOrderMessage none supplier, through the browser
Purchase order OrderRequest 850 buyer
Receipt of the order HTTP 200 with Status 997 supplier
Order confirmation ConfirmationRequest 855 supplier
Ship notice ShipNoticeRequest 856 supplier
Invoice InvoiceDetailRequest 810 supplier

The first two rows have no X12 counterpart. From the third row on, SAP's guide describes the translation: procurement applications send purchase orders to the network as cXML OrderRequest documents, and the network turns them into an X12 850 or an EDIFACT ORDERS, depending on the EDI language the supplier picked. Going back, the buyer can have the network convert the 855, 856 and 810 into cXML for its procurement application.

The first line of the cart, as it arrives in the cXML order and in the 850:

<ItemOut quantity="120" lineNumber="1">
  <ItemID>
    <SupplierPartID>10482</SupplierPartID>
    <SupplierPartAuxiliaryID>cart-7f3a91</SupplierPartAuxiliaryID>
  </ItemID>
</ItemOut>
BEG*00*SA*4500001234**20261103~
PO1*1*120*EA*9.6**VP*10482~

The quantity, the unit, the price and your part number come through. The cart reference cart-7f3a91 does not: the cXML reference notes that the supplier cookie is of data type "any" and does not easily map to other routing methods such as fax, email or EDI. The integration matches the 850 to the session by part number, quantity and price instead, and lists every order line that matches no cart for a person to check.

Counted per order: the session takes 3 cXML documents (setup request, response, cart). The EDI side takes 1 inbound 850 and 4 outbound files: the 997, the 855, the 856 and the 810. A customer with 40 orders a month means 40 x 3 = 120 session documents and 40 x 5 = 200 EDI files, 160 of them generated on your side from ERP data.

Where each one stops

PunchOut stops at the cart. OCI, SAP's own PunchOut protocol, has no purchase order at all; cXML continues with the order documents, but a supplier whose buyer asks for EDI orders needs the second channel anyway. The session also needs the buyer and the store online at the same moment: the store has to answer the setup request while the buyer waits.

EDI has no session and no cart. It cannot log a buyer into your store or show contract prices, and the closest it comes to a catalog is the X12 832 Price/Sales Catalog, a file of items and prices. On SAP Business Network it has documented limits of its own:

Limit What SAP documents
Version ANSI X12 004010 or EDIFACT D98A, syntax version 3, configured exactly
Size an interchange under 60 MB; larger data goes in several interchanges
Attachments purchase order attachments stay in the supplier's online inbox, with an extrinsic in the order pointing to them
Acknowledgment a 997 sets the order from Sent to Acknowledged; it does not confirm quantities or dates
Confirmation an 855 sets each line to Accepted, Rejected or Backordered

The 997 row is the one that misleads. A supplier that sends only the 997 has told the buyer the file parsed, not that the 120 receptacles will ship. The 855 does that.

What each asks in upkeep

Upkeep PunchOut EDI
Per buyer identities, shared secret, field mapping for the cart partner IDs, the buyer's implementation guide, the routing on the network
When credentials change every setup request gets 401 until the shared secret is updated an expired AS2 certificate stops every file until both sides have the new one
Monitoring a refused setup request or cart is seen by the buyer first a missing 997 or 855 has to be noticed by matching sent against received
Store changes a new checkout or theme can break the transfer button none; EDI does not touch the store
ERP changes contract prices have to reach the store order, shipment and invoice fields have to keep mapping to segments

What this means for your integration

PunchOut and EDI meet at the purchase order, and that is where most of the matching work sits: an 850 has to find the cart it came from without the cart reference, and the 855, 856 and 810 have to go out from the ERP with the PO number of the buyer. We build both sides on your existing store and ERP: the PunchOut session in cXML or OCI, and the order documents in cXML or X12, whichever each buyer asks for.

The PunchOut side is described on the PunchOut hub and the cXML documents on cXML PunchOut. The EDI side, with the ERP, is on EDI integration.

Frequently asked questions

Does PunchOut replace EDI?

No. PunchOut covers the shopping: the login, the contract prices and the cart. The purchase order, confirmation, ship notice and invoice still have to travel, and EDI is one way to send them. cXML is the other, since it has documents for all four.

Is cXML a kind of EDI?

It does the same job for the documents after the order. cxml.org calls the cXML confirmation and ship notice the analogues of the EDI 855 and 856. The differences are the syntax (XML elements against X12 segments), the transport (HTTPS posts with a status in the response against files over AS2, SFTP or a network) and the fact that cXML also has the PunchOut session, which X12 does not.

Can my store take PunchOut carts and receive orders as EDI?

Yes. On SAP Business Network the buyer's procurement application always sends a cXML OrderRequest, and the network translates it into an X12 850 or EDIFACT ORDERS for a supplier that chose EDI. The cXML reference recommends cXML orders for PunchOut suppliers, because the cart reference in SupplierPartAuxiliaryID does not map easily to EDI.

Which EDI version does SAP Business Network use?

ANSI X12 version 004010 or UN/EDIFACT D98A with syntax version 3. SAP tells suppliers to configure that exact version. An interchange has to stay under 60 MB.

Is there an EDI document for a catalog?

Yes, the X12 832 Price/Sales Catalog. It sends items and prices as a file, which makes it the EDI form of a hosted catalog, not of a PunchOut session. How a file catalog compares with PunchOut is on PunchOut vs hosted catalog.

Tell us what you need

Tell us which systems you use and what needs to work better. We reply personally within one working day. We help you define the work, then agree the price and timing before you commit.

  • You know the price and the timeline before you commit to anything
  • We work out the connection that takes the work off your hands
  • We handle the build, hosting, monitoring and maintenance
  • Your team has less information to retype and fewer discrepancies to chase

Suppliers, products, orders per day, a rough estimate is fine.

Or email directly: carsten@syncmyshop.com