What Is a Punchout Catalog? How B2B Punchout Works

A plain-English guide for manufacturers and distributors whose customers buy through procurement systems: how a punchout catalog works, cXML vs OCI, level 1 vs level 2, what your store needs, and when punchout is worth it.

What Is a Punchout Catalog? How B2B Punchout Works

A punchout catalog lets a business buyer shop your online store from inside their own company's procurement system. They click your name in SAP Ariba, Coupa or another e-procurement tool, land in your catalog at their contract prices, fill a cart, and send it back to their system for approval instead of checking out. The approved order then reaches you as a purchase order. For manufacturers and distributors selling to large companies, universities and hospitals, a punchout catalog is often what it takes to stay on the approved supplier list.

This guide explains how punchout works, cXML and OCI, level 1 and level 2, what your store needs, and the options on Adobe Commerce, Magento, Shopify Plus and BigCommerce. It draws on the B2B stores and ERP integrations our B2B ecommerce development team builds for manufacturers and distributors. If you sell to labs, see our guide to punchout catalogs for lab and reagent suppliers.

What a punchout catalog is, and why procurement teams ask for one

Large organizations control spending through e-procurement systems. An employee requests what they need, the request routes through approvals and budget checks, and purchasing issues a purchase order to an approved supplier. That works for short, stable product lists. It works badly for thousands of SKUs, configurable products, or prices that change by account and quantity.

A punchout catalog solves that by leaving the catalog on your site and letting the buyer's system open a session on your store. SAP's documentation for SAP Ariba describes punchout catalogs as live catalogs hosted on the supplier's own website, and Oracle's documentation notes that because the supplier hosts the catalog, requesters see current content and pricing.

The alternative is a hosted catalog: a static file of items and prices that the supplier loads into the procurement system. Hosted catalogs suit short product lists that rarely change. Oracle describes punchout as particularly useful for configurable products and highly variable items and pricing, which are costly to keep accurate in a catalog the buyer hosts.

For the buyer, punchout keeps every purchase inside their approval and budget rules. For you, it means your largest accounts can order online without leaving the system their purchasing team requires.

How a punchout order works, from click to purchase order

Every punchout follows the same round trip. Coupa's supplier documentation lays it out step by step for cXML, and other procurement systems follow the same pattern with their own details.

StepWhat happenscXML message
1. Punch outA buyer logs in to their procurement system and selects your punchout link.
2. Set up the sessionThe procurement system sends your store a request that identifies the company and the user. Your store checks the credentials and replies with the address for that session.PunchOutSetupRequest and PunchOutSetupResponse
3. ShopThe buyer lands in your catalog, signed in to their company account, and sees their catalog and contract prices.
4. Return the cartInstead of checking out, the buyer sends the cart back to the procurement system.PunchOutOrderMessage
5. ApproveThe items land on a requisition, which goes through the buyer's internal approvals.
6. Send the purchase orderOnce the requisition is approved, the procurement system sends you a purchase order.OrderRequest
7. Fulfill and invoiceYou ship and invoice against that purchase order, using the method the buyer requires.

Two details cause most of the trouble. In step 3, the session has to know exactly who the buyer is, so it opens the right company account with the right catalog, prices and ship-to addresses. A generic storefront at list price gives approvers a reason to reject the requisition.

Then there is the gap between steps 4 and 6. The returned cart is a request, not a commitment. The purchase order is the order of record, and it arrives after approvals you cannot see. Fulfill against the purchase order, and make sure its price matches the cart and your invoice, or accounts payable will reject the invoice.

cXML punchout and OCI punchout are the two protocols you will meet

A punchout protocol defines how the procurement system opens a session on your store and how the cart comes back. Before anything is built, you need to know which one each account expects: cXML, OCI or both.

cXML (Commerce Extensible Markup Language) is an open protocol for business documents, published at cxml.org. It covers punchout sessions as well as purchase orders and invoices, so one standard can carry the whole round trip. SAP Ariba, Coupa and Jaggaer all use it for punchout, and Oracle supports it alongside its own XML format.

OCI (Open Catalog Interface) is SAP's interface for connecting an SAP system to an external catalog, common in SAP environments such as SAP SRM and SAP S/4HANA. Under SAP's OCI specification, the buyer's system calls your catalog with a return address, usually a parameter named HOOK_URL. When the buyer finishes, your store posts the cart back through the buyer's browser as an HTML form of hidden fields such as NEW_ITEM-DESCRIPTION, NEW_ITEM-QUANTITY and NEW_ITEM-PRICE. OCI's job ends there. The purchase order reaches you separately, through whatever order channel the buyer's SAP system uses.

cXMLOCI
Who defines itOpen standard published at cxml.orgSAP
Where you meet itSAP Ariba, Coupa, Jaggaer, Oracle (as a cXML option)SAP procurement environments
How the session startsA PunchOutSetupRequest from the procurement systemA call to your catalog with a return address
How the cart comes backA PunchOutOrderMessage documentNamed HTML form fields
What it coversPunchout session, cart, purchase orders and invoicesCatalog call and cart return

Many suppliers support both, because their customers include SAP shops alongside Ariba or Coupa shops.

Level 1 and level 2 punchout change where the buyer starts searching

The level describes how deep into your catalog the procurement system can send a buyer.

Level 1 punchout shows your company as a single link in the procurement system. The buyer clicks it, lands on your catalog home page and does all of their searching on your site. In SAP Ariba, level 1 needs only a simple index file, typically one line, that tells Ariba your punchout catalog exists.

Level 2 punchout puts your products into the procurement system's own search results, next to other suppliers' items. When the buyer picks one, the session opens on that product or category on your site. In SAP Ariba, you maintain an index file with a line for every SKU on SAP Business Network, an upload that can be automated. SAP notes that level 2 is more complex because the supplier has to adapt a level 1 site, and that the price in the index file can differ from the price the buyer sees after punching out.

Manage that price gap by generating the level 2 index on a schedule from the same data that drives your store. For most suppliers, level 1 is the right place to start, with level 2 added for the accounts that ask for it.

Which procurement systems your buyers are likely to use

Your customers choose the procurement system, so the first question in any punchout project is which systems they run. These are the ones you are likely to hear about, with what each vendor's own documentation says:

  • SAP Ariba. Supplier-hosted punchout catalogs in cXML, at level 1 or level 2, with index files on SAP Business Network.
  • Coupa. A cXML flow from setup request to cart return, with an OrderRequest purchase order after approval.
  • Jaggaer. Punchout suppliers must follow the cXML standard. Orders can be delivered by cXML, fax, EDI (X12) or email.
  • Oracle. Oracle Fusion Cloud Procurement supports punchout in cXML or Oracle's native XML, returning items to a requisition.
  • SAP SRM and SAP S/4HANA. SAP's own procurement software connects to external catalogs through OCI.

Each customer's setup is its own project, even on the same platform. Every implementation has quirks, so budget time to test with each account's procurement team before go-live.

What your store needs before a punchout integration

Punchout ecommerce is an integration layer on top of a B2B store. If the store cannot show the right catalog and price to the right company, punchout only exposes the problem faster, to a more senior audience. Check these first.

Company accounts that match how the customer buys

Each punchout session has to land in the right company account, and often the right location within it. That means company accounts with users, roles and ship-to addresses that mirror the customer, plus credentials for each account's procurement connection.

Customer-specific catalogs that follow the contract

Many contracts cover only part of your catalog. The buyer should see the products their contract allows and nothing else, so they cannot add an item their procurement team will reject.

Contract pricing from one source of truth

Contract and tier pricing should come from the system that owns it, usually your ERP, so the cart, the purchase order and the invoice agree. In punchout, a price mismatch becomes a rejected invoice.

ERP order sync for purchase orders, shipments and invoices

The purchase order has to become an order in your ERP without anyone retyping it, and confirmations, shipping notices and invoices may need to go back electronically. This is the same work our ERP integration services team does on B2B stores. On the Adobe Commerce B2B platform we run for DMC, an aerospace tooling manufacturer, a bidirectional Infor SyteLine sync carries customers, payment terms, products, inventory, lead times, orders and shipments. Punchout does not replace that kind of integration. It depends on it.

Product data a procurement system can use

Procurement systems expect a stable SKU, description, quantity, unit of measure and price on every line. SAP's OCI specification, for example, defines a field for each. Inconsistent units or part numbers in your store become inconsistent requisitions.

A normal checkout for everyone else

Smaller customers, new accounts and urgent orders still come through your regular store. Build punchout on the same catalog and pricing, not as a separate site you have to keep in sync.

How punchout catalog software fits Adobe Commerce, Shopify Plus and BigCommerce

You rarely need to write cXML and OCI handling from scratch. Punchout catalog software from integrators, extensions and middleware handles the protocol, and the remaining work sits in your store: account mapping, catalogs, pricing and the ERP connection. We scope cXML or OCI on your platform, using an established punchout extension or service where one fits, and confirm which procurement systems your accounts use before recommending an approach.

Punchout on Adobe Commerce and Magento

Adobe Commerce's B2B module covers most of what punchout sits on: company accounts with roles, shared catalogs with company-specific pricing, negotiable quotes, purchase orders with approval rules, requisition lists, quick order and payment on account. Punchout is not in Adobe's list of B2B features, so it comes from an extension, middleware or custom code. TradeCentric, formerly PunchOut2Go, lists an extension on the Adobe Commerce Marketplace and describes punchout, purchase order automation and invoice automation for Adobe Commerce.

Note that Adobe Commerce's purchase orders run approvals inside your store, while punchout moves approval into the buyer's system, so a punchout account may not need both. The B2B modules are exclusive to Adobe Commerce; Magento Open Source stores get B2B features from extensions or custom development. Our Magento B2B team builds on both editions, and our guide to the Adobe Commerce B2B module explains what it includes and where it stops.

Punchout on Shopify Plus

Shopify's native B2B features run on the Basic, Grow, Advanced and Plus plans, but only Shopify Plus lets you assign a catalog directly to a specific company or company location for customer-level pricing. Shopify's B2B documentation does not describe a built-in punchout feature, so punchout comes from an integrator or app. TradeCentric says its Shopify connector shows contract pricing and inventory during each punchout session, delivers approved purchase orders into Shopify and can send invoices in cXML or EDI. Punchout Cloud from PunchOut Catalogs, on the Shopify App Store, lists cXML and OCI support. Our Shopify Plus B2B team sets up the companies, catalogs and ERP sync a connector depends on.

Punchout on BigCommerce

BigCommerce B2B Edition adds company accounts, buyer roles, sales quotes, invoice management for purchase orders on net terms and a Buyer Portal, with company pricing from price lists applied to customer groups. BigCommerce's own guide to punchout catalogs points merchants to punchout plugins, and its app marketplace lists both Punchout Cloud and TradeCentric. TradeCentric's listing notes it may not be fully compatible with Multi-Storefront, so check that if you run more than one storefront. Our BigCommerce B2B team connects B2B Edition to your ERP and to the punchout solution your accounts need.

Still choosing a platform? Our B2B ecommerce platform comparison covers how the three compare beyond punchout.

When punchout is worth it, and when a self-serve portal is enough

Punchout is not the only way to move B2B orders online, and for many accounts it is not the best one. A self-serve portal, where buyers log in, see their own prices, reorder from history and pay on terms, is often the better fit for trade, contractor and dealer customers who order on their own. Our guide to what B2B buyers expect from an ordering portal covers that side, and our B2B portal development page explains how we build dealer, distributor and customer portals.

Punchout catalogSelf-serve portal
Who it suitsAccounts that must buy through a procurement systemTrade, dealer and smaller business accounts
Where approval happensIn the buyer's procurement systemIn your store, if you set up approval rules
How the order arrivesA purchase order from the procurement systemAn order placed in your checkout
How the buyer paysAgainst the purchase order and your invoiceCard, purchase order number or net terms
Setup for each customerCredentials, account mapping and testing with their procurement teamCompany account, pricing and users
What it depends onCompany catalogs, contract pricing and ERP syncThe same foundation

Punchout tends to be worth it when:

  • A large account says punchout is a requirement for continuing to buy from you.
  • Several accounts ask for it, so the shared work on catalogs, pricing and the ERP order flow pays off more than once.
  • Your catalog is large, configurable or priced by contract, which makes a static hosted catalog hard to keep accurate.
  • Your team rekeys purchase orders that arrive from procurement systems by email or PDF.

A self-serve portal is usually enough when no account requires procurement integration. Most suppliers who need punchout need the portal too, because both run on the same foundation.

A short decision checklist for punchout

Answer these before you commit to a punchout project:

  1. Which accounts have asked for punchout, and how much of your revenue do they represent?
  2. Which procurement system does each account use, and does it expect cXML or OCI?
  3. Does any account need level 2, or will level 1 do for now?
  4. Can your store already show each company its own catalog and contract prices?
  5. Does pricing come from your ERP, so the cart, the purchase order and the invoice agree?
  6. How will purchase orders reach your ERP, and how will confirmations, shipping notices and invoices go back?
  7. Will you use a punchout integrator, a platform extension or custom code, and who supports it after launch?
  8. Who on your team owns testing and go-live with each account's procurement team?

If you can answer the first three but not the rest, the store is the real project. Our pages on B2B ecommerce for distributors and manufacturing ecommerce cover that wider build.

Have a customer asking for punchout?

We will review your catalog, pricing, ERP and the procurement systems your accounts use, and show you the most direct way to get punchout orders into your back office. No pitch deck, no obligation.

Book a 30-minute assessment

Frequently asked questions

What is a punchout catalog?

A punchout catalog is a supplier's online catalog that a buyer opens from inside their own procurement system, such as SAP Ariba, Coupa, Jaggaer or Oracle. The buyer shops at their contract prices and sends the cart back to their system for approval, and the approved order arrives at the supplier as a purchase order.

What is cXML punchout?

cXML punchout is a punchout session that uses the cXML standard. The procurement system sends a PunchOutSetupRequest, the supplier replies with a session address, the cart comes back as a PunchOutOrderMessage, and the purchase order follows as an OrderRequest. SAP Ariba, Coupa and Jaggaer all use cXML for punchout.

What is the difference between cXML and OCI punchout?

cXML is an open standard that covers punchout sessions, purchase orders and invoices. OCI is SAP's Open Catalog Interface, which returns the cart as HTML form fields and leaves the purchase order to a separate channel. cXML is widely used by systems such as SAP Ariba and Coupa, while OCI is common in SAP environments.

What is the difference between level 1 and level 2 punchout?

In level 1, the buyer clicks your company in their procurement system and lands on your catalog home page to search. In level 2, your products appear in the procurement system's own search results, and the buyer lands directly on the product or category they chose. In SAP Ariba, level 2 needs an index file with a line for every SKU that you keep current.

Can Shopify Plus and BigCommerce support punchout?

Yes, through integrators and apps, since neither platform documents punchout as a built-in B2B feature. TradeCentric offers a Shopify connector and a BigCommerce app, and the Punchout Cloud app from PunchOut Catalogs is listed for both. On Shopify, assigning catalogs directly to specific companies requires the Plus plan.

Do I still need a regular B2B store if I offer punchout?

Yes. Punchout serves the accounts that must buy through a procurement system, while smaller and newer customers keep ordering directly. Both should run on the same catalog, pricing and ERP integration, so you maintain one store rather than two.