cXML en une minute
cXML a été créé à la fin des années 1990, à l’origine par Ariba, pour permettre aux systèmes d’achat et aux fournisseurs d’échanger des documents commerciaux dans un format commun. Il est publié sur cxml.org comme un ensemble de types de documents XML avec une DTD publique et reste aujourd’hui le langage utilisé par la plupart des systèmes d’achat cloud.
Chaque document cXML suit la même structure : une enveloppe avec un payloadID et un horodatage, un Header qui précise l’expéditeur, le destinataire et les identifiants utilisés, puis un Request, un Response ou un Message contenant les données commerciales.
cXML ou XML
| XML | cXML | |
|---|---|---|
| Définition | Un format général de données structurées | Un ensemble précis de documents XML pour les achats |
| Règles | Tout schéma que vous définissez | DTD fixe publiée sur cxml.org |
| Utilisé pour | Tout usage | PunchOut, commandes, confirmations, avis d’expédition, factures |
Les messages cXML qu’un fournisseur reçoit
| Message | Fonction | Dans PunchOut Rocket |
|---|---|---|
| PunchOutSetupRequest | Le client ouvre votre boutique | Oui |
| PunchOutOrderMessage | Le panier retourne au client | Oui |
| OrderRequest | Bon de commande approuvé | Forfait Premium |
| ConfirmationRequest | Confirmation de commande | Option OC & ASN |
| ShipNoticeRequest | Avis d’expédition (ASN) | Option OC & ASN |
| InvoiceDetailRequest | Facture | Sur demande |
Pour PunchOut, les trois premiers sont essentiels : ils ouvrent la session, retournent le panier et transmettent la commande. Confirmations, avis d’expédition et factures sont des flux distincts que certains clients exigent après la mise en production : PunchOut Rocket importe les bons de commande avec le forfait Premium, envoie les confirmations et avis d’expédition avec son option OC & ASN et propose les factures sur devis.
Exemple · PunchOutSetupRequest (abrégé)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.069/cXML.dtd">
<cXML payloadID="1729332000.4711@buyer.example.com" timestamp="2026-10-19T10:00:00+02:00">
<Header>
<From><Credential domain="NetworkID"><Identity>AN01000000001</Identity></Credential></From>
<To><Credential domain="NetworkID"><Identity>AN01000000002</Identity></Credential></To>
<Sender>
<Credential domain="NetworkID">
<Identity>AN01000000001</Identity>
<SharedSecret>••••••••</SharedSecret>
</Credential>
<UserAgent>Buyer procurement system</UserAgent>
</Sender>
</Header>
<Request>
<PunchOutSetupRequest operation="create">
<BuyerCookie>8f2c41d0a9</BuyerCookie>
<BrowserFormPost><URL>https://buyer.example.com/punchout/return</URL></BrowserFormPost>
<SupplierSetup><URL>https://gateway.example.com/setup</URL></SupplierSetup>
</PunchOutSetupRequest>
</Request>
</cXML>Identifiants et shared secrets
Chaque document cXML contient trois identifiants dans son en-tête : From (l’origine du document), To (son destinataire) et Sender (le système qui l’envoie effectivement, avec un SharedSecret). Sur SAP Business Network, les identités sont des Ariba Network ID (ANID) ; d’autres systèmes utilisent des numéros DUNS ou leurs propres identifiants. Le shared secret est convenu avec le client et ne doit jamais apparaître dans des emails ou captures d’écran.
Qu’est-ce qu’un catalogue cXML ?
Le terme désigne deux choses différentes :
Catalogue statique (CIF ou index cXML)
Un fichier que vous chargez dans le système du client. Prix et articles restent figés jusqu’au prochain chargement.
Catalogue PunchOut
Le client ouvre votre boutique en temps réel via cXML. Prix, stocks et configurations sont toujours à jour.
À lire ensuite : comparatif de cXML et d’OCI de SAP.
PunchOut sur votre boutique existante
PunchOut Rocket connecte WooCommerce, Magento, PrestaShop et nopCommerce à SAP Ariba, Coupa et SAP via cXML ou OCI. À partir de 163 €/mois par site, essai gratuit de 30 jours.