Using Cofactr as a Punchout Store

Last updated: July 17, 2026

Important Note

These instructions pertain to using Cofactr alongside an existing procurement system, such as Coupa, SAP Ariba, Silkline, etc, which support the cXML Punchout standard. This is used for initiating a procurement process within that procurement system and then conducting transactions within the Cofactr platform.

Cofactr also supports Punchout from Cofactr to a third-party e-commerce website (McMaster-Carr, etc.). In that flow, the procurement process is initiated from within Cofactr. If you are looking to implement Punchout from Cofactr to third-party suppliers, please contact success@cofactr.com for help enabling that feature. These instructions are not for you.

Licensing

Punchout is supported with Silkline P2P for all accounts. Punchout for Coupa, SAP Ariba, and othe enterprise systems is included with some Cofactr subscription plans. Please contact success@cofactr.com for more information.

Requirements

  1. You must have an existing Cofactr account and a Sandbox organization. If you do not already have a sandbox, please follow these instructions to create one: https://support.cofactr.com/articles/1864909892-sub-organizations?lang=en. There is no charge for sandbox accounts for Cofactr subscribers.

  2. Users must have a Cofactr login to complete punchout transactions within Cofactr. You can use SAML/SCIM to automatically provision users within Cofactr from your main IDP system (Okta, Microsoft Entra, etc.)

Procurement System Setup

You will need the following information to configure the punchout connection within your procurement system:

Punchout URL: https://flagship-api.cofactr.com/punchout_sessions/start/

PO URL: https://flagship-api.cofactr.com/punchout_sessions/approve_purchase_request_group/

Customer Domain: NetworkID

Customer Identity:  Provided in the Cofactr platform here: https://platform.cofactr.com/org?tab=purchasing

Supplier Domain: DUNS

Supplier Identity: 118635831

Shared Secret: Provided in the Cofactr platform here: https://platform.cofactr.com/org?tab=purchasing

You must also configure an Extrinsic for the email of the user who is initiating the punchout session:

<PunchOutSetupRequest operation="create">
  <Extrinsic name="Email">{user email here}</Extrinsic>
</PunchOutSetupRequest>

The user email must match the email used for that user's Cofactr account

When Cofactr returns the cart data to the BrowserFormPost URL, the OrderRequestHeader will include a PurchaseRequestGroupID Extrinsic. This must be included in the cXML PO otherwise the PO will be rejected:

<Extrinsic name="PurchaseRequestGroupID">{PurchaseRequestGroupID received from Cofactr}</Extrinsic>

Important Note

Your primary and sandbox accounts will have seperate Customer Identity and Shared Secret values. If you place orders through your primary account, they will be processed, and you will be charged for them. If you place orders through your sandbox account, they will be ignored. It is very important not to mix these two up.

Important Note

Cofactr does not support partial POs in punchout workflows. The total cost and line items submitted via PO to Cofactr must match the request received from the punchout session, otherwise the Cofactr platform will reject the request.