cXML – Overview
cXML (Commerce XML) is an XML-based protocol for electronic procurement processes. It is the standard for SAP Ariba, Coupa, Jaggaer and many other procurement platforms worldwide.
The AgiqonConnector supports cXML Punchout Level 1 and Level 2.
How does cXML Punchout work?
A cXML punchout session runs in four phases:
Phase 1 — PunchOutSetupRequest
The procurement system sends an XML document via HTTP POST to the shop's login URL. This document contains the sender identity, authentication data and the return URL (BrowserFormPost URL).
<cXML>
<Header>
<From><Credential domain="DUNS"><Identity>123456789</Identity></Credential></From>
<Sender>
<Credential domain="DUNS">
<Identity>123456789</Identity>
<SharedSecret>secret</SharedSecret>
</Credential>
</Sender>
</Header>
<Request>
<PunchOutSetupRequest operation="create">
<BuyerCookie>SESSION_COOKIE</BuyerCookie>
<BrowserFormPost>
<URL>https://procurement.company.com/return</URL>
</BrowserFormPost>
</PunchOutSetupRequest>
</Request>
</cXML>
Phase 2 — PunchOutSetupResponse
The connector validates the request and responds with a session URL via which the buyer opens the shop:
<cXML>
<Response>
<Status code="200" text="OK"/>
<PunchOutSetupResponse>
<StartPage>
<URL>https://shop.example.com/session/start?token=abc123</URL>
</StartPage>
</PunchOutSetupResponse>
</Response>
</cXML>
Phase 3 — Shopping
The buyer opens the session URL and shops as usual. Instead of checkout, they see a "Transfer" button.
Phase 4 — PunchOutOrderMessage
On transfer, the connector sends a PunchOutOrderMessage as XML via POST to the return URL. The procurement system receives all product data and processes it internally.
Punchout Level 1 vs. Level 2
| Level 1 | Level 2 | |
|---|---|---|
| Cart | Transferred once completely | Individual line items can be edited |
| Communication | Single POST after transfer | Bidirectional exchange possible |
| Typical systems | Standard Ariba, Coupa | Ariba Level 2, advanced systems |
| Configuration | Standard | Enable "Punchout Level 2" in the General tab |
Login URL
https://shop.example.com/AgiqonCxmlEntry/login/{system-id}
The {system-id} is the ID of the cXML system from the admin overview (AgiqonConnector → cXML Systems, "ID" column).