Punchout is the round trip that lets a buyer browse a
supplier catalog from inside their own procurement tool, then return the
selected cart to the requisition workflow. SAP standardised the ERP side
of the round trip with Open Catalog Interface (OCI): a simple HTTP
form-POST protocol where the catalog returns the picked items as
NEW_ITEM-* form fields. This demo shows in real time what the
OCI gateway would post back to your ERP, plus the equivalent cXML
PunchOutOrderMessage that Ariba uses in the same role.
Sample catalog
Printer Ink Cartridge — Black, standard yield
24.90 EURErgonomic Office Chair with adjustable lumbar support
219.00 EURUSB-C to USB-C Cable — 2 m, USB 3.2 Gen 2
12.50 EURLaser Toner Cartridge — Black, XL yield ~10 000 pages
89.00 EURWireless Optical Mouse — 2.4 GHz USB receiver
15.90 EURA4 Copier Paper — 80 g/m², 500-sheet ream
4.50 EURWhiteboard Marker Set — 4 colours, dry-erase
7.80 EURMonitor Stand — Aluminium, fits 24" to 32" displays
34.00 EUR
Cart
Empty cart — add an item from the catalog on the left.
OCI output (HOOK_URL form)
<form method="POST" action="HOOK_URL">
<button type="submit">Return to procurement</button>
</form>cXML PunchOutOrderMessage output
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.069/cXML.dtd">
<cXML payloadID="1783269309905.916329@ediverse.io.demo" timestamp="2026-05-14T12:00:00+00:00" xml:lang="en-US">
<Message>
<PunchOutOrderMessage>
<BuyerCookie>EDIVERSE-DEMO-COOKIE-1783269309905</BuyerCookie>
<PunchOutOrderMessageHeader operationAllowed="create">
<Total>
<Money currency="EUR">0.00</Money>
</Total>
</PunchOutOrderMessageHeader>
</PunchOutOrderMessage>
</Message>
</cXML>
How it works
- The buyer clicks "Shop from catalog X" inside their ERP (SAP, Coupa, Ariba…).
- The ERP redirects the browser to the catalog URL with a
HOOK_URLparameter — the address the cart must return to. - The user browses, picks items. This demo simulates that step.
- On checkout, the catalog generates an HTML form that POSTs to
HOOK_URLwith allNEW_ITEM-*fields. That's what you see on the right. - The ERP receives the POST, parses the fields, creates a purchase requisition.
OCI vs cXML
OCI and cXML play the same role, but OCI uses a flat HTTP form-encoded
payload while cXML uses a structured XML message
(PunchOutOrderMessage). Many catalogs expose both to match the
ERP on the other side — SAP MM prefers OCI, Ariba prefers cXML. This demo
produces both from the same cart so you can see the line-by-line
correspondence.
OCI 4.0 vs OCI 5.0
OCI 5.0 mainly adds the contract reference
(NEW_ITEM-CONTRACT[i] and NEW_ITEM-CONTRACT_ITEM[i])
to attach the line to a negotiated framework, plus a few extras like
NEW_ITEM-EXT_QUOTE_ID. Everything else is identical to OCI 4.0,
which is still very widely deployed. The demo toggles between the two
versions and hides the 5.0-specific fields when you pick 4.0.
Privacy
This tool runs entirely in your browser. No data is sent to a server. No cookies, no logs.