Notes
PunchOut vs hosted catalog: your live store or a file in their system
A hosted catalog is a file of your items and contract prices that the buyer loads into Coupa or SAP Ariba, approves per version and searches there. A PunchOut catalog stays on your store: the procurement system holds a link, and the buyer sees the price and stock your store has at the moment of the click.
Updated
The short answer
Both put your items in front of a buyer who works in a procurement system. They differ in where the items and prices live.
- Hosted catalog: a file with your items, units and contract prices. You upload it, the buyer approves it, and the procurement system searches its own copy. SAP calls it a static catalog; Coupa calls it a hosted catalog.
- PunchOut catalog: your store, opened from the procurement system. SAP describes it as a live catalog hosted on your website instead of uploaded; the procurement system shows a button such as Buy from Supplier in place of product and price details. The cart comes back as a requisition.
Facts below were checked on October 3, 2026 against SAP's Customer Catalog Format Reference for SAP Business Network and Coupa's supplier documentation.
Side by side
| Hosted catalog | PunchOut catalog | |
|---|---|---|
| Where the items live | a copy in the buyer's procurement system | your store |
| What the buyer searches | the loaded file, next to other suppliers' items | your store, after the click |
| Price | the price in the approved version of the file | the price your store shows that customer at the click |
| Stock and lead time | a Lead Time field, fixed per version |
whatever the store shows during the session |
| Format | CIF, cXML, BMEcat or Excel at SAP; a CSV template at Coupa | cXML or OCI for the session and the cart |
| Size limit | 200 MB per CIF or cXML file on SAP Business Network, 1 MB for a CIF Excel file | none on the catalog; Coupa limits payloadID to 180 characters and the auxiliary ID to 765 |
| A change | a new version, approved again by the buyer | the next session shows it |
| Configurable items | one row per fixed item | configured in the store, returned as cart lines |
| After the cart or requisition | a purchase order | a purchase order |
The last row is the same for both. Whether the item came from a file or a session, the buyer's approval turns the requisition into a purchase order, and your order intake handles it the same way.
One price change, both ways
On October 28 your ERP raises the contract price of item 10482 for Bakker Installatie B.V., customer 10432, from 9.60 to 9.90, valid from November 1.
PunchOut. The ERP price list feeds the store. The first session after November 1 shows 9.90, and the cart that goes back carries <Money currency="USD">9.90</Money> on that line. Nothing else changes.
Hosted catalog. The integration writes catalog version 2 with the new price and uploads it. In Coupa the catalog moves from Draft to Awaiting Approval, and the items in it are not available until the customer accepts it. An accepted catalog cannot be edited; every change is a new version. At SAP Business Network a catalog for a buyer that runs a content management system passes the statuses Pending Buyer Validation, Validated, Approved and Activated before users see it.
Until the buyer approves version 2, requisitions are created at 9.60. A purchase order for 120 pieces then arrives at 120 x 9.60 = 1,152.00, where the ERP prices it at 120 x 9.90 = 1,188.00, a difference of 36.00 on one line. The integration has to catch that at order intake and either confirm the order with the changed price or book it at the catalog price.
At scale: three customers on hosted catalogs of 4,000 items each, and a price increase on 600 of those items, makes 3 new versions with 3 x 600 = 1,800 changed rows and 3 approvals to wait for. With PunchOut the same 1,800 prices change in the ERP and appear in the next session of each customer.
Where each one stops
Hosted catalog, by what the formats and systems document:
| Limit | Source | Consequence |
|---|---|---|
| Unit of measure must exist in the customer's Coupa setup | Coupa, catalog items | items with an unknown unit cannot be saved or loaded |
| Pricing type limited to a fixed price | Coupa, catalog items | one price per item in each catalog |
| An accepted item cannot be deleted, only deactivated | Coupa, catalogs | a discontinued item stays in the list with Active set to No |
| A full load that contains delete items generates errors | SAP, incremental loading | deletions go in an incremental file with LOADMODE: I |
| Buyers' systems poll for new catalogs, usually once a day | SAP, uploading index catalogs | an upload is searchable after the buyer's next poll |
| BMEcat and CIF 2.1 catalogs do not support PunchOut items | SAP, catalog formats | a combined index needs CIF 3.0 or cXML |
PunchOut stops where the buyer leaves the procurement system. A buyer cannot compare your item with another supplier's in one search, unless you supply a Level 2 index. The store has to be up and answering during working hours of every customer, because the session runs live; the cXML reference lists a reliable web server as the first technical requirement for a PunchOut supplier. And the store has to support what the session needs: a login without a form, the contract prices of that customer, and a transfer button in place of the checkout. The supplier checklist lists those items one by one.
The cXML reference names the product types where a static file falls short: highly configurable products, very large assortments, items with unique attributes, normalized MRO data, and items that change or grow quickly. A hosted catalog fits a stable assortment with few price changes.
What each asks in upkeep
| Event | Hosted catalog | PunchOut catalog |
|---|---|---|
| A price changes | new version per customer, uploaded and approved | the ERP price list, read by the store |
| An item is discontinued | deactivate it in the next version, or a Delete row in an incremental CIF |
remove it from the store; with a Level 2 index, also from the index |
| A new buying customer | a new catalog in that customer's format | a new connection: identities and shared secret for that customer |
| A validation error | SAP checks field lengths, ITEMCOUNT, units and UNSPSC codes; the file is not published |
a refused setup request or cart, seen at the next session |
| Errors show up | in the catalog status: Error or Rejected at Coupa, Validation Errors Found by Customer at SAP | in the logs of the connection, if it is monitored |
A hosted catalog moves the work to versions and approvals. PunchOut moves it to the store and the connection. In both, the price list of each customer in the ERP is the source.
What this means for your integration
A hosted catalog is an export: the integration builds the file per customer from the ERP and the store, in CIF, cXML or the buyer's CSV, checks it against the rules the buyer's system enforces before upload, and keeps each version so a purchase order can be traced back to the price it was placed at. PunchOut is a session on the store with the contract prices of that customer, plus the order intake behind it.
We build either one on your existing store and ERP, and run it with a log of every upload, every approval status and every order that arrived at a price other than the ERP's. How the PunchOut side works end to end is on the PunchOut hub; how contract prices reach the store is on per-customer catalogs.
Frequently asked questions
Can a supplier offer both to the same buyer?
Yes, and SAP Ariba documents the combination: Level 2 PunchOut. You upload an index file of your items without binding prices, the buyer searches it, and a click opens your store on that product page in a PunchOut session. The price comes from the store. How that works is on Level 2 PunchOut.
Does a hosted catalog carry customer-specific prices?
Yes, because each catalog belongs to one customer. Coupa calls them customer-specific catalogs and fixes the pricing type to a fixed price per item. Three customers with their own price lists means three catalogs, each uploaded and approved on its own.
What happens to an order placed from an outdated hosted catalog?
The purchase order arrives at the price in the catalog, not the price in your ERP. The supplier then confirms with the changed price, delivers at the catalog price or corrects the invoice, and the buyer's three-way match flags any difference between order and invoice.
Which file formats do procurement systems take for a hosted catalog?
SAP Business Network takes CIF, cXML, BMEcat and Excel, which it converts to CIF. Coupa takes its own CSV template, uploaded in the Coupa Supplier Portal or by the customer. The format is set by the buyer's system, so a supplier with buyers on both keeps two exports. The CIF format is described in the CIF catalog.
Can a buyer search a PunchOut catalog inside the procurement system?
Only with an index. In a plain PunchOut setup the procurement system shows your logo or a Buy from Supplier button, and the search happens in your store. With a Level 2 index your items appear in the buyer's own search next to hosted items from other suppliers.
Tell us what you need
Tell us which systems you use and what needs to work better. We reply personally within one working day. We help you define the work, then agree the price and timing before you commit.
- You know the price and the timeline before you commit to anything
- We work out the connection that takes the work off your hands
- We handle the build, hosting, monitoring and maintenance
- Your team has less information to retype and fewer discrepancies to chase