PunchOut Tester

Local cXML + OCI testing workbench

PHP 8.1.34 Base URL: https://punchout.ataraxie.de

About PunchOut Tester

A self-contained PHP 8.2+ tool for testing and validating cXML PunchOut and SAP OCI round trips.

cXML PunchOut

  • PunchOutSetupRequest — Initiate a PunchOut session with a supplier
  • PunchOutSetupResponse — Parse the supplier's response with StartPage URL
  • PunchOutOrderMessage — Receive and parse the shopping cart return
  • Supports cXML 1.2.x standard
  • Extrinsics, custom headers, basic auth

SAP OCI

  • OCI 4.0 / 5.0 — Launch OCI catalog sessions
  • HOOK_URL Return — Parse returned cart items
  • Support for NEW_ITEM-* field parsing
  • Custom additional parameters
  • Auto-submitting form POST launch

Return Endpoints

These endpoints receive the cart data from suppliers. Share them with suppliers or use a tunnel to expose them externally.

Protocol Endpoint Method
cXML https://punchout.ataraxie.de/cxml/return POST (BrowserFormPost)
OCI https://punchout.ataraxie.de/oci/return POST (HOOK_URL)

Storage Locations

Type Path Format
Profiles /storage/profiles/ JSON files (cxml-*.json, oci-*.json)
Logs /storage/logs/ JSONL files (YYYY-MM-DD.jsonl)

Exposing Endpoints Externally

To test with real suppliers, you need to expose your return endpoints to the internet. Options include:

When using a tunnel, update the BrowserFormPost URL (cXML) or HOOK_URL (OCI) to use the public tunnel URL.

⚠️ Standard vs Non-Standard Implementations

This tool supports both standard protocols and common non-standard variations. Non-standard implementations are clearly marked.

Standard cXML Flow

  1. Buyer sends PunchOutSetupRequest via HTTP POST
  2. Supplier returns PunchOutSetupResponse with StartPage URL
  3. Buyer opens StartPage in browser/iframe
  4. Supplier POSTs PunchOutOrderMessage to BrowserFormPost URL

Standard OCI Flow

  1. Buyer browser POSTs form directly to supplier URL (with HOOK_URL, USERNAME, PASSWORD, etc.)
  2. Supplier renders shop page in browser
  3. User shops and clicks "transfer cart"
  4. Supplier POSTs NEW_ITEM-* fields to HOOK_URL

Non-Standard Supplier Behaviors (Detected & Warned)

BehaviorWhat We SendWhat Supplier DoesVerdict
OCI JSON Response Standard OCI form POST Returns JSON with punchoutUrl ⚠️ Supplier non-standard
OCI Custom Fields Standard OCI + extra fields Requires sessionId, accountID, etc. ⚠️ Supplier non-standard
cXML on OCI Endpoint OCI HOOK_URL Returns cXML PunchOutOrderMessage ❌ Supplier violates spec
Important: This tool correctly implements OCI and cXML standards. Non-standard behaviors are supplier decisions, not our requests. If a supplier returns cXML via OCI endpoint, that's their implementation choice - for proper cXML, use the cXML tab with XML POST.

Security Notes

System Information

PHP Version 8.1.34
Base URL https://punchout.ataraxie.de
Session ID sns9hasb36arl101js84chrmtc
cURL Available (7.88.1)