Start testing

Free · No sign-up · Nothing stored on our servers

Test your PunchOut catalog before your buyer does

A free PunchOut tester for cXML and SAP OCI. Send the setup request a procurement system would send, shop in the supplier's catalog, and see exactly what is wrong with the cart and order that come back. Works with SAP Ariba, Coupa, Jaggaer, Oracle, Workday and any cXML or OCI system.

Just need to check a message? Paste it into the free cXML validator.

Three testers and a cXML validator

Each tester plays the buyer's side, so you can test a supplier integration without a procurement system account. The validator checks any cXML message you paste.

cXML PunchOut tester

Act as the buyer's procurement system. Send a PunchOutSetupRequest to the supplier, open its catalog, and check the cart that comes back.

  • Create, edit and inspect sessions
  • Basic mode (fields) or Advanced mode (the full cXML)
  • Cart report: every line checked against the cXML rules
  • Saved configs per supplier, kept in your browser
Open the tester

OCI tester (SAP)

Run an SAP OCI round trip: open the catalog with OCI fields and read the NEW_ITEM cart it posts back to the HOOK_URL.

  • USERNAME, PASSWORD, ~OkCode, ~TARGET, ~CALLER
  • HOOK_URL filled in for you
  • NEW_ITEM fields shown as a table, line by line
  • Missing or malformed fields flagged
Open the tester

cXML order tester

Send a test OrderRequest to a supplier's order endpoint and read its response the way a procurement system would.

  • Order lines with UNSPSC, UOM and prices
  • Fill the lines from a returned cart in one click
  • HTTP status, cXML status code and the full reply
  • Test and production deployment modes
Open the tester

cXML validator

Paste any cXML message and see every error and warning, with the line it is on. Nothing is sent to a supplier.

  • Setup requests and responses
  • Carts (PunchOutOrderMessage), line by line
  • OrderRequest lines, totals and addresses
  • Well-formed XML, with line and column
Open the validator

Works with the procurement systems your buyers use

The requests follow the cXML 1.2 and OCI specifications, so a catalog that passes here is ready for testing with systems such as these.

  • SAP Ariba
  • Coupa
  • Jaggaer
  • SAP SRM
  • SAP S/4HANA
  • Oracle Procurement
  • Workday
  • Ivalua
  • Basware
  • GEP SMART
  • Microsoft Dynamics 365
  • Any cXML or OCI system

How it works

Test a PunchOut catalog in three steps.

  1. 1

    Fill in the supplier

    Paste the supplier's PunchOut URL and the credentials: the From, To and Sender identities and the shared secret. Or paste a whole cXML request in Advanced mode.

  2. 2

    Send and shop

    A new tab sends the setup request and opens the supplier's catalog, or shows exactly why setup failed. Shop as a buyer would, then check out.

  3. 3

    Read the cart report

    The cart comes back to the tester, which checks every line and flags what a procurement system would reject. One click sends the same items as a test order.

What is a PunchOut catalog?

A PunchOut catalog lets a buyer shop a supplier's website from inside their own procurement system. The buyer clicks the supplier in SAP Ariba, Coupa or Jaggaer, "punches out" to the supplier's catalog, fills a cart, and the cart comes back into the procurement system as a requisition for approval.

Behind the scenes, the two systems talk in cXML or, for SAP, OCI. One wrong field, such as a currency, a part ID or a total, and the buyer's system rejects the cart. This tester shows you those problems before your buyer sees them.

Need the catalog itself built or connected? See PunchOut integration for suppliers from IoTree Minds.

Supported protocols

The two standards procurement systems use for PunchOut.

cXML (commerce XML)

The XML standard used by SAP Ariba, Coupa, Jaggaer and most cloud procurement systems. Setup and orders go server to server; the cart returns through the shopper's browser.

PunchOutSetupRequest
The buyer asks to open a catalog session
PunchOutSetupResponse
The supplier answers with a one-time StartPage URL
PunchOutOrderMessage
The cart, posted back as cXML-urlencoded or cXML-base64
OrderRequest
The approved purchase order

OCI (Open Catalog Interface)

SAP's form-based catalog interface, used by SAP SRM, S/4HANA and other SAP-connected systems. No XML: the catalog opens with form fields and returns the cart the same way.

HOOK_URL
Where the catalog posts the cart back
~OkCode · ~TARGET · ~CALLER
How SAP expects the cart to arrive
NEW_ITEM-DESCRIPTION[n]
One field per item, per value
NEW_ITEM-QUANTITY[n] · NEW_ITEM-PRICE[n]
Quantity, price and the rest of each line

Questions

What is a PunchOut catalog?

A PunchOut catalog is a supplier's online store that a buyer opens from inside their own procurement system, such as SAP Ariba or Coupa. The buyer shops on the supplier's site, and at checkout the cart goes back into the procurement system as a requisition for approval, instead of being paid for on the supplier's site.

How do I validate a cXML message?

Paste it into the free cXML validator. It checks that the XML is well formed, then the envelope, the credentials and the rules for the message type (setup request or response, cart, OrderRequest), and lists every error and warning. Select a result to jump to its line.

Is the PunchOut tester free?

Yes, the testers and the cXML validator are free. There is no sign-up, no trial and no paid tier. The testers set no cookies; only this overview page uses Google Analytics and Microsoft Clarity to see how many people visit.

Do you keep the cXML or the credentials I send?

No. When a request goes through our server, it is passed to the supplier and the reply is passed back; neither is logged or stored. Configs you save stay in your own browser, and you can choose to leave out passwords and shared secrets.

What is OCI PunchOut?

OCI (Open Catalog Interface) is SAP's way of doing PunchOut. Instead of cXML, the catalog opens with plain form fields such as USERNAME and HOOK_URL, and returns the cart as NEW_ITEM form fields posted to the HOOK_URL.

Can I test a supplier on localhost or an internal network?

Through our server, only public addresses are reachable. Set "Send the request" to "Directly from your browser" and your browser posts the cXML to the supplier itself, so any address your computer can reach will work.

Why does the catalog open in a new tab?

Many supplier catalogs refuse to load inside another site's frame. A new tab works with all of them, and the cart report appears in that tab when you check out.

Is there a limit on how many requests I can send?

30 setup requests and 30 order requests every 10 minutes from one visitor. A request waits up to 15 seconds for the supplier, and redirects are shown to you rather than followed.

Ready to test?

Pick a tester, or paste a message into the validator. No sign-up, nothing to install.

Tested your catalog? Here's what comes next

From a failed test to a live PunchOut catalog

  1. 1
    Test it here

    Free. Run the round trip, or validate a single message, and see exactly where it breaks.

  2. 2
    We fix or build it

    cXML and OCI, on your platform, for each buyer's procurement system.

  3. 3
    Go live with your buyer

    We see it through the buyer's own testing and support it after launch.