Skip to main content

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 1Level 2
CartTransferred once completelyIndividual line items can be edited
CommunicationSingle POST after transferBidirectional exchange possible
Typical systemsStandard Ariba, CoupaAriba Level 2, advanced systems
ConfigurationStandardEnable "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).

Further Reading