B2B e-commerce · Punchout

Punchout catalog development for distributors and manufacturers.

A large customer has told you they only buy through Coupa, SAP Ariba, Jaggaer or Oracle, and they want your punchout URL. We build cXML and OCI punchout from your Shopify Plus, BigCommerce B2B, Adobe Commerce or custom store into their procurement system, with their contract prices on screen and their purchase orders landing in your ERP.

By Bhavesh Barot, Founder & CEO · Updated

Working software on your own data before you sign. Bhavesh replies within 24 hours.
cXML + OCIboth punchout methods
Coupa · Aribaplus Jaggaer, Oracle and SAP
4 store typesShopify Plus, BigCommerce, Adobe, custom
PO to ERPorders land as sales orders

// the short answer

What is a punchout catalog?

A punchout catalog lets a buyer shop your live B2B store from inside their company's procurement system. They click your name in Coupa or SAP Ariba, land on your store already logged in, see their contract prices, and send the cart back for approval. The approved purchase order then comes to you.

For the buyer, you become as easy to order from as any supplier already on their approved list. For you, the order arrives with the right prices and part numbers, ready to become a sales order in your ERP.

Buyers and their eprocurement teams also call this punchout ecommerce, and the store they open is your punchout website. We build and test the link between that store, your customer's procurement system and your ERP. Then we hand it over. You own the code.

Definition

Punchout catalog

A punchout catalog is a supplier's live online store opened from inside a buyer's procurement system (Coupa, SAP Ariba, Jaggaer, Oracle or SAP). The buyer shops with contract prices, the cart returns to their system as a requisition for approval, and the approved purchase order is sent back to the supplier, usually over cXML or SAP's OCI.

Key takeaways
  • cXML for Coupa, SAP Ariba and Jaggaer; OCI for SAP procurement tools.
  • Level 1 opens your store; Level 2 puts your items inside the buyer's own search.
  • Purchase orders flow into your ERP as sales orders.
Source: FactoryJet, from Coupa supplier documentation and cxml.org (Oct 2026).

// how punchout works

The punchout round trip, in six steps

This is the flow Coupa's supplier documentation describes, and SAP Ariba and Jaggaer work the same way over cXML. The message names come from the cXML specification. When a cart fails to come back, Coupa's troubleshooting guide tells admins to check that the right units of measure are enabled. Amazon Business sells to the same buyers this way: its punchout page says buyers start in their e-procurement system and route the cart back for approval.

  1. Setup request

    The buyer clicks your company inside their procurement system. It sends your store a PunchOutSetupRequest, a cXML message that says who the buyer is.

  2. Setup response

    Your store checks the credentials and replies with a one-time address. The buyer lands on your store, logged in to their company account.

  3. Shopping

    The buyer searches, sees their contract prices and stock, and builds a cart on your live catalog.

  4. Cart return

    At checkout, your store sends the cart back as a PunchOutOrderMessage. Nothing is ordered yet.

  5. Approval

    The cart becomes a requisition in the buyer's system and follows their approval rules and budgets.

  6. Purchase order

    Once approved, their system sends an OrderRequest, the purchase order, which we turn into a sales order in your ERP.

// cXML, OCI and levels

cXML vs OCI, Level 1 vs Level 2

Your customer picks the method. Their supplier enablement guide will name the procurement system and the level they expect. Here is what each one means for your store.

Swipe sideways to see every column.

MethodUsed byHow the buyer reaches youHow the PO arrives
cXML Level 1Coupa, SAP Ariba, Jaggaer, OracleBuyer clicks your name, lands on your store home page or a chosen categorycXML OrderRequest
cXML Level 2Buyers who want your items in their own searchYour items are indexed in their system; a click opens that exact productcXML OrderRequest
OCISAP procurement toolsStore opens with a HOOK_URL; cart posts back as form fieldsOften email, EDI (a direct system-to-system order feed) or cXML

// supplier setup by system

Coupa punchout and SAP Ariba punchout setup for suppliers

Each procurement system has its own supplier steps. Here is what the vendors' own documentation says, checked on 31 Oct 2026.

Coupa punchout

Per Coupa's punchout ordering guide, Coupa sends your store a PunchoutSetupRequest with the user's details. Your store logs them in and replies with a landing page URL. At checkout, your store sends a PunchoutOrderMessage, and the items land on the buyer's requisition. After approval, Coupa sends an OrderRequest. The same guide lists the common setup errors, such as a wrong URL, a login failure and no cart returned.

SAP Ariba punchout

Per SAP's training on punchout catalogs, the buyer's request goes through SAP Business Network, which checks the buying company and passes it to your store. The catalog stays on your site and is not uploaded. Level 1 needs a static index file; Level 2 needs one line per item. An SAP Ariba support note says every setup response must carry a 200 status code and a StartPage URL.

Jaggaer, Oracle and SAP OCI

Jaggaer and Oracle customers send their own supplier guide, which names the messages and the test steps they expect. Customers on SAP's own buying tools often ask for OCI instead, where the cart goes back as form fields to a HOOK_URL. We read the guide your customer sent before we quote.

// what we build

Eight parts of a punchout integration we build

Your customer's test script checks each of these eight pieces, not only the punchout URL.

  • Setup and login

    We answer the setup request, check the shared secret (a password the buyer's system sends with each request), and open a session tied to the right company account and buyer.

  • Contract pricing per buyer

    Each buyer sees the prices, items and minimums in their contract, read from your ERP or price lists.

  • Cart return

    Carts go back with part numbers, units of measure, classification codes and prices in the format the buyer's system expects.

  • Purchase order intake

    Incoming OrderRequests are checked against the returned cart, then created as sales orders in your ERP.

  • Order documents back

    Order confirmations, ship notices and invoices returned over cXML where your customer asks for them.

  • Level 2 item index

    An item file kept in step with your catalog so your products show up inside the buyer's own search.

  • Multi-customer setup

    Credentials, company accounts and price lists per customer, so adding the next account is a short job.

  • Test and monitoring logs

    A log of every setup request, cart and order, so a failed session can be traced fast.

Dashboards showing a B2B store connected to procurement, ERP and inventory systems

// store platforms

Punchout on the store you already run

On most B2B platforms, punchout is an add-on. Shopify's B2B documentation, for example, covers companies and per-customer catalogs, and punchout is added on top. We keep the account and pricing rules you already have and add the punchout layer to them.

  • Shopify Plus. Shopify B2B companies and catalogs hold the buyer and their prices. We add punchout with a connector or a custom app and keep checkout rules intact. See Shopify Plus B2B.
  • BigCommerce B2B Edition. Company accounts, buyer roles and price lists carry over. We add the punchout layer through a partner connector or custom code. See BigCommerce B2B.
  • Adobe Commerce (Magento). Shared catalogs and company accounts map well to punchout buyers. We build or configure the punchout module and test it end to end. See Adobe Commerce development.
  • Custom or older stores. A small punchout service sits beside your store and reads its catalog and contract prices. Or we plan it into a rebuild.

// connector or custom

Punchout connector app vs custom build

There are three ways to add punchout to a store. The examples below are named from each vendor's own page, checked on 31 Oct 2026.

Swipe sideways to see every column.

OptionExampleHow you payFits when
Punchout app from your platform's app storePunchout Cloud on the Shopify App Store lists cXML and OCI, with Ariba, Coupa, Jaggaer and Oracle (Shopify App Store listing)Monthly subscription, per the listingYour platform has an app and your customer's system is on its list
Punchout network vendorTradeCentric says it connects 75+ ecommerce platforms to 220+ ERP and eprocurement systems (tradecentric.com)Quoted by the vendorYou want a third party to run the connection for many buyers
Custom buildA punchout service written for your store, your price rules and your ERPFixed build price; hosting in your account at costUnusual pricing, an older store, or a test script an app cannot pass

Next step

Find out which punchout method your customer needs

Send us their supplier enablement guide. We will tell you which method they need, what your store already covers, and what has to be built.

Talk to the founderBhavesh replies within 24 hours.

// send us your brief or RFP

Send us your customer's brief or RFP

Most punchout projects start with a document from the customer: a supplier enablement guide, a vendor onboarding pack or an RFP with a punchout section. Send it to us with four facts and we will reply with a plan.

  1. The customer's procurement system, and cXML or OCI if they said.
  2. Your store platform: Shopify Plus, BigCommerce, Adobe Commerce or custom.
  3. Your ERP, and where contract prices live today.
  4. The customer's go-live or test date, if they gave one.

// what the market charges

Punchout integration cost and timeline

These are published market figures, not FactoryJet prices. FactoryJet quotes a fixed price in writing after a short scoping call, once we have read your customer's requirements.

  • 1.2.071

    The cXML version listed on cxml.org in August 2026. cXML is the format Coupa, SAP Ariba and Jaggaer use for punchout, purchase orders and invoices.

    Source: cxml.org
  • EUR 12K to 35K

    Market range for one procurement platform connector, in euros excl. VAT, from Kolonell's 8 October 2026 guide. Kolonell is a remote studio, so treat this as a euro reference, not a US quote. Level 1 cXML sits at the low end, Level 2 at the high end. Not a FactoryJet price.

    Source: Kolonell, Oct 2026
  • 6 to 12 weeks

    Time for one procurement platform in the same guide, including 2 to 4 weeks of testing with the customer's team.

    Source: Kolonell, Oct 2026

// how a project runs

How a punchout project runs

Six steps, from the customer's requirements document to the first live purchase order in your ERP.

01

Read your customer's requirements

We go through the supplier enablement guide or RFP your customer sent: which procurement system, cXML or OCI, Level 1 or Level 2, which documents they expect back, and their test dates.

02

Map accounts, prices and item data

We match each procurement identity to a company account in your store, confirm where contract prices live, and check units of measure, part numbers and classification codes against what the buyer's system accepts.

03

Show it working on your data, then fix the price

Before you sign, you see a test punchout session open your own catalog with a sample buyer's prices. Then you get the scope and one fixed price in writing, paid in stages tied to milestones.

04

Build the punchout connector

We build or configure the piece that answers the setup request, logs the buyer in, and returns the cart as a cXML PunchOutOrderMessage or an OCI form post.

05

Connect purchase orders to your ERP

Incoming purchase orders become sales orders in your ERP. Where the buyer wants them, order confirmations, ship notices and invoices go back the same way.

06

Test with the buyer and go live

We run the buyer's test script with their procurement team, fix what surfaces, and switch on production credentials. Defects after launch are fixed inside the build price for the agreed cover period.

// how we work

Punchout project terms: fixed price per phase, no monthly minimum

  • A working draft before you sign

    You see a test punchout session open your own catalog with a sample buyer's prices before any contract.

  • Fixed price per phase

    Each phase is scoped, priced and signed on its own. Payments are tied to milestones.

  • You own the code

    The code and repository are yours from day one. Hosting and connector apps can run in your accounts at cost, with no markup.

  • Defect cover in the build price

    Defects found after launch are fixed inside the build price for a cover period we agree before work starts.

  • Support only if you want it

    After that, each change is quoted and approved before we do it. There is no monthly minimum.

// select client work

B2B account pricing and ERP work that punchout builds on

Punchout depends on the same pieces as any B2B store: company accounts, contract prices and orders that land in the ERP. Two B2B builds with that work, one live and one in progress:

GPSUK · Commerceflo

Account pricing for trade buyers

A Commerceflo storefront for a UK promotional products supplier, with account-based pricing and quote-to-order workflows for customers buying against agreed terms.

Read the GPSUK case study →

Sow Easy · WooCommerce + Odoo

Trade store connected to Odoo (in progress)

WooCommerce ordering for a distributor, being connected to Odoo so trade orders and stock live in one place instead of two. Being tested on staging before launch.

Read the Sow Easy case study →

PUNCHOUT CATALOG FAQ

Questions suppliers ask before building punchout.

Plain answers to what distributors and manufacturers ask when a customer wants them on Coupa, SAP Ariba, Jaggaer or Oracle.

Punchout Basics

What is a punchout catalog?

A punchout catalog lets a buyer shop your online store from inside their own procurement system, such as Coupa or SAP Ariba. They click your company name, land on your store already logged in, see their contract prices and build a cart. The cart goes back to their system as a requisition for approval. Once it is approved, a purchase order comes back to you.

Why are our biggest customers asking us for punchout?

Large companies send their spending through a procurement system so every purchase follows approval rules and budgets. If you are not inside that system, their buyers have to raise a manual request or pick a supplier who is. Punchout puts your catalog and your live prices inside their buying process, so ordering from you is as easy as ordering from anyone else on their approved list.

What is a punchout supplier or punchout vendor?

A punchout supplier, or punchout vendor, is a seller whose online store a buyer can open from inside their procurement system. The buyer's team adds you as a supplier, enters your punchout URL and credentials, and tests the round trip with you. After that, their staff see your company as a button in their buying screen. Distributors and manufacturers usually become punchout suppliers because a large customer asks them to.

What is punchout in Amazon Business?

Amazon Business is itself a punchout supplier. Its punchout page says buyers start in their e-procurement system, punch out to Amazon Business, and route the cart back for approval. Amazon says more than 200 e-procurement systems integrate with it. Your customers may already buy from Amazon this way. A punchout catalog on your store gives your products the same place in their buying screen.

What are punchout items, and how are they different from hosted catalog items?

Punchout items live on your own store. The buyer sees them only after punching out from their procurement system, so prices, stock and options are always current. Hosted catalog items, also called static catalog items, sit in a file you upload into the buyer's system. That file goes stale when prices or stock change, and you have to load it again. Many buyers accept both. Large or configurable catalogs suit punchout better.

Do we still need our normal B2B store if we add punchout?

Yes, in most cases. Punchout serves the buyers who purchase through a procurement system. Smaller accounts, field buyers and quick reorders often still come through your trade portal, by EDI (electronic data interchange, a direct system-to-system order feed) or through a sales rep. We build punchout on top of the store you already run, so every route uses the same catalog, the same contract prices and the same inventory.

cXML, OCI & Levels

What is cXML?

cXML, short for Commerce XML, is a shared format for sending business documents between procurement systems and suppliers. It defines the messages for a punchout session, the returned cart and the purchase order, plus later documents such as order confirmations, ship notices and invoices. Coupa, SAP Ariba and Jaggaer all use it. The specification is published at cxml.org, which listed version 1.2.071 in August 2026.

What is OCI punchout?

OCI stands for Open Catalog Interface. It is SAP's own punchout method, used mostly by companies buying through SAP procurement tools. The buyer's system opens your store with a return address called the HOOK_URL. When the buyer finishes shopping, your store posts the cart back to that address as a set of form fields. The purchase order then usually reaches you by another route, such as email, EDI or cXML.

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

With Level 1, the buyer clicks your company name in their procurement system and lands on your store's home page or a chosen category. With Level 2, your items are searchable inside the buyer's system, and a click takes them straight to that product on your store. Level 2 needs an item index file that stays up to date, so it takes more work. Some buyers ask for Level 2 from the start.

How do we set up an Ariba punchout catalog as a supplier?

Your customer adds you as a supplier on SAP Business Network. You give them a punchout URL that answers cXML setup requests. SAP's training material says a Level 1 catalog needs a static index file, often a single comma-separated line, while Level 2 needs one line per item. Each setup response must return a 200 status code and a StartPage URL, per an SAP Ariba support note. Then you run the buyer's tests together.

Which procurement systems can you connect our store to, and should we build cXML or OCI first?

We connect B2B stores to Coupa, SAP Ariba, Jaggaer and Oracle procurement through their cXML punchout interfaces, and to SAP buying tools that use OCI. Build the method your first customer asks for. Their supplier enablement guide names the system and the method. Login mapping, contract prices and the order flow into your ERP are shared by both, so the second method costs less than the first.

Store Platforms

Can Shopify Plus support punchout?

Yes. Shopify B2B gives you companies, catalogs with pricing set per customer, and payment terms, but punchout is not part of it out of the box. We add it with a punchout connector or a custom app. That piece answers the setup request, logs the buyer into the right Shopify company, and sends the finished cart back to their procurement system in the format it expects.

Can BigCommerce B2B Edition do punchout?

Yes, with a connector. BigCommerce B2B Edition handles company accounts, buyer roles, quotes and price lists. Punchout is added through a partner connector or custom code. We set up that layer, map each procurement login to a B2B Edition company, and make sure the returned cart carries the right part numbers, units of measure and contract prices so the purchase order matches.

Can you add punchout to Adobe Commerce (Magento)?

Yes. Adobe Commerce has company accounts, shared catalogs and requisition lists, which map well to punchout buyers. Punchout itself comes from an extension or a custom module. We build or configure that module, connect it to shared catalogs so each buyer sees their contract prices, and test the full round trip with your customer before go-live.

Should we use a punchout connector app or a custom build?

A connector app is the fastest start if your platform has one and your customer's system is on its list. Shopify's app store, for example, lists punchout apps sold as monthly subscriptions. A custom build suits unusual pricing rules, an older store, or a buyer test script the app cannot pass, and you own the code. We read your customer's requirements first and tell you which one fits.

We run a custom or older store. Can punchout still work?

Yes. Punchout only needs your store to accept a setup request, start a logged-in session and send a cart back in the right format. We can build that as a small service that sits beside a custom or older store. If the store is due for replacement anyway, we can plan punchout into the new build so you only pay for it once.

Pricing & ERP

How do punchout orders get into our ERP?

After the buyer approves the requisition, their system sends a purchase order, usually a cXML OrderRequest. We receive it, check it against the cart that was returned, and create the sales order in your ERP, such as NetSuite, SAP Business One, Dynamics 365 Business Central, Acumatica or Odoo. Order confirmations, ship notices and invoices can flow back to the buyer the same way.

How do contract prices show up for each punchout buyer?

Each punchout login carries the buyer's company identity. We map that identity to the right customer account in your store, which reads contract prices from your ERP or your price lists. The buyer sees only their agreed prices and approved items. The same prices are written into the returned cart, so the purchase order matches what the buyer saw on screen.

What usually goes wrong in a punchout project?

Small data mismatches. Units of measure are a common one: Coupa's own troubleshooting guide for a cart that fails to return tells admins to check that the right units of measure are enabled. Others are missing classification codes such as UNSPSC (a standard code for each type of product), a shared secret (the password the buyer's system sends with each request) entered wrong, and prices that differ between the cart and the purchase order. We test each of these with the buyer before go-live.

Can punchout run alongside EDI?

Yes. Many suppliers use both: punchout for shopping and the cart, and EDI for purchase orders, ship notices and invoices with customers who prefer it. We make sure both routes write to the same order and stock records in your ERP, so a punchout order and an EDI order look the same to your warehouse and your finance team.

Cost & Timeline

How much does punchout catalog integration cost?

It depends on the procurement system, the level and your ERP. As one market reference, Kolonell, a remote web studio that builds punchout connectors, published a range of EUR 12,000 to 35,000 excl. VAT per procurement platform on 8 October 2026, with Level 1 cXML at the low end and Level 2 at the high end. That is a euro price, not a US quote. FactoryJet quotes a fixed price in writing after a short scoping call.

How long does a punchout integration take?

Kolonell's October 2026 guide puts one procurement platform at 6 to 12 weeks, including 2 to 4 weeks of testing with the customer. The buyer's supplier enablement team sets the test dates, so we agree a plan with them early. A second customer on a system you already connect to is much faster, because the connector, pricing and ERP order flow already exist.

Working Together

What do you need from us to scope a punchout project, and will you work with our customer's team?

Send the supplier enablement guide or RFP your customer sent, the name of their procurement system, your store platform, your ERP, and how you set contract prices today. With those, we tell you which method you need and what has to be built. During testing, we can join calls with your customer's procurement team and work through their checklist, while you keep the customer relationship and the commercial terms.

Can we add more customers after the first one goes live?

Yes. Once the connector for a procurement system is built, each new customer on that system mostly needs their own credentials, a company account and a contract price list, plus a round of testing with their team. A second procurement system reuses the login mapping, pricing rules and ERP order flow from the first one.

Who owns the punchout code when the project ends?

You do. You own the code and the repository from day one. Hosting and any connector apps can run in your own accounts at cost, with no markup. Defects found after launch are fixed inside the build price for a cover period we agree before work starts. Support after that is optional, each change is quoted and approved, and there is no monthly minimum.

Get on your customer's approved supplier list

Send us the punchout requirements your customer gave you. We will map the method, your store and your ERP, show it working on your own catalog, and send a fixed proposal before any work starts.

Talk to the founder

Related: B2B e-commerce development, ERP integration, and EDI integration for Shopify.

Why suppliers choose FactoryJet

See real, named client case studies →

Working draft on your own catalog before you sign
Fixed price per phase, quoted in writing; changes quoted and approved per request
You own the code and the repository from day one
Decade-plus building commerce, B2B included
Free quote
Founder replies in 24h