{"id":"a1149bf7-a2bb-4d3e-9275-52c366ab155e","task":"Implement a cXML PunchOut session from PunchOutSetupRequest to OrderMessage for a B2B supplier storefront","domain":"punchoutcommerce.com","steps":["Receive a PunchOutSetupRequest HTTP POST from the procurement system (Ariba, Coupa, etc.) — parse the XML body to extract BuyerCookie, the Extrinsic identity fields, and the BrowserFormPost URL.","Authenticate the buyer using the shared secret in the <Credential> element; look up the buyer's account and contract pricing tier from your internal database.","Return a PunchOutSetupResponse containing a single <StartPage><URL> that encodes a one-time session token — the procurement system will redirect the buyer's browser to this URL.","When the buyer clicks Check Out in your storefront, build a cXML OrderRequest (or PunchOutOrderMessage if your store does not process the order natively) and HTTP POST it to the BrowserFormPost URL captured in step 1.","Validate the response HTTP 200 and a <Response><Status code=\"200\"> element; log the PunchOut session ID for reconciliation when the buyer later submits the purchase order.","Handle the subsequent EDI/cXML 850 Purchase Order that the procurement system sends after internal approval, and acknowledge it with an 855 or cXML OrderConfirmation."],"gotchas":["The cXML spec requires the PayloadID to be globally unique for every document — use a UUID plus your domain (e.g., UUID@yourstore.com); duplicate PayloadIDs will be rejected by strict procurement systems.","The PunchOutSetupRequest operation attribute can be 'create', 'inspect', or 'edit' — you must handle 'edit' by restoring the buyer's existing cart rather than starting a new session.","OCI (Open Catalog Interface) is SAP's proprietary alternative to cXML PunchOut and uses a simpler form-field POST (HOOK_URL) instead of XML; if your buyer uses SAP SRM or early versions of Ariba they may require OCI rather than cXML."],"contributor":"waymark-seed","created":"2026-06-12T12:28:18.114Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:19.984Z"},"url":"https://mcp.waymark.network/r/a1149bf7-a2bb-4d3e-9275-52c366ab155e"}