SHOPIFY × COUPA
Coupa punchout for Shopify, live in days
Coupa buyers configure punchout themselves, and Coupa charges suppliers nothing. We give your Shopify store the endpoint, the contract pricing, and the cart return that just works.
<cXML payloadID="20260806.1@buyer.example.com">
<Request deploymentMode="production">
<PunchOutSetupRequest operation="create">
<BuyerCookie>7f2c-buyer-session</BuyerCookie>
<Extrinsic name="UserEmail">jane@buyer.example.com</Extrinsic>
<BrowserFormPost>
<URL>https://buyer.example.com/punchout/return</URL>
</BrowserFormPost>
</PunchOutSetupRequest>
</Request>
</cXML><PunchOutOrderMessage>
<BuyerCookie>7f2c-buyer-session</BuyerCookie>
<PunchOutOrderMessageHeader operationAllowed="edit">
<Total><Money currency="USD">1250.00</Money></Total>
</PunchOutOrderMessageHeader>
<ItemIn quantity="50">
<ItemID><SupplierPartID>SKU-4711</SupplierPartID></ItemID>
<ItemDetail>
<UnitPrice><Money currency="USD">25.00</Money></UnitPrice>
<Description xml:lang="en">Nitrile gloves, box of 100</Description>
</ItemDetail>
</ItemIn>
</PunchOutOrderMessage><Request>
<OrderRequest>
<OrderRequestHeader orderID="PO-10023" orderDate="2026-08-06" type="new">
<Total><Money currency="USD">1250.00</Money></Total>
<ShipTo><Address addressID="BER-01"/></ShipTo>
</OrderRequestHeader>
<ItemOut quantity="50" lineNumber="1">
<ItemID><SupplierPartID>SKU-4711</SupplierPartID></ItemID>
</ItemOut>
</OrderRequest>
</Request>Coupa is the enablement you hope for after reading about Ariba. No supplier network fee, no transaction fee, no central catalog validation queue. Your buyer's Coupa admin configures the punchout connection in their own instance, usually in a single session.
What they need from you is a short list: a punchout URL, From and To identities, a shared secret, and test credentials. PunchRelay generates all of it for your Shopify store, serves the punchout session at your B2B contract prices, and returns the cart exactly the way Coupa expects. Integrators quote 4,000 to 12,000 USD per connection for plumbing this app already has.
Works with
- SAP Ariba
- Coupa
- Jaggaer
- Oracle Procurement
- Workday
- SAP SRM
- Unimarket
- PO acknowledgment
- <150ms
- protocols, cXML + OCI
- 2
- cXML documents, full round trip
- 4
- contract pricing from Shopify B2B catalogs
- 100%
How it works with Coupa
- 01
Coupa calls your punchout URL
Your buyer clicks your catalog in Coupa. Coupa sends a cXML PunchOutSetupRequest to the endpoint PunchRelay provisions. We validate the shared secret and identities and map the buyer to their Shopify B2B company location.
- 02
The buyer shops at contract prices
PunchRelay responds with the StartPage URL and the buyer lands in your Shopify storefront. Catalog and prices come from the price list you assigned to that company location. No parallel price file, no export.
- 03
The cart returns as PunchOutOrderMessage
On transfer, the cart posts back into Coupa as a cXML PunchOutOrderMessage with SKUs, quantities, UNSPSC codes and unit prices. Quantity rules are enforced before the transfer, not after the rejection.
- 04
Requisition and approval inside Coupa
The cart becomes a requisition and moves through the buyer's approval flow in Coupa. Your side is done and logged. When the buyer's admin has questions, the raw XML answers them.
- 05
The purchase order becomes a Shopify order
Coupa transmits the approved PO as a cXML OrderRequest. PunchRelay acknowledges in under 150ms and creates the Shopify order with the punchout lines and prices. Fulfillment starts from your normal orders screen.
Built for the buyer's IT checklist
Contract pricing per company location
Prices come straight from Shopify B2B catalogs, per company location. What the buyer sees in the punchout session is what lands on the purchase order.
Quantity rules enforced before transfer
Minimums, maximums and case increments run in the cart, before the PunchOutOrderMessage leaves. Requisitions arrive in Coupa already matching what you will fulfill.
Full XML session logs, both directions
Every document in and out is logged raw. Coupa admins configure punchout themselves, and when they hit a snag, you hand them the exact request and response instead of a support ticket.
Coupa punchout, asked and answered
- Does Coupa charge suppliers network fees?
- No. The Coupa Supplier Portal is free, and Coupa charges suppliers no network or transaction fees for punchout or purchase orders. Compare Ariba, where cXML automation alone puts you on a 750 USD per year tier. On Coupa, the cost of a connection is only your side of the integration.
- What do I send my buyer's Coupa admin?
- Your punchout URL, From and To identity (a DUNS number or NetworkID), a shared secret, a 150 by 50 logo, and your UNSPSC and unit-of-measure conventions. Two credential sets, test and production, are the norm. PunchRelay outputs this as a one-page sheet you forward.
- How fast can we actually go live?
- Days, and the honest version is that your side is hours. Coupa buyers self-configure, so the variable is their testing calendar. First connections commonly land within a week or two, which is why we tell merchants to start their punchout program with a Coupa buyer.
- Where do the prices come from?
- From Shopify B2B catalogs, per company location. The prices your buyer sees in the punchout session are the ones you already manage in Shopify, and the same prices return on the purchase order. There is no second price file to keep in sync.
- What happens to purchase orders?
- Coupa sends the PO as a cXML OrderRequest to your PunchRelay endpoint. We acknowledge in under 150ms and create the Shopify order with the punchout lines. If a buyer transmits POs some other way, the transferred cart is one click away from becoming a Shopify draft order.
Get early access
We are onboarding a small group of Shopify B2B merchants and building their first buyer connections with them. Tell us where to reach you.