Skip to main content



Coupa Success Portal

How to add an extrinsic field to PunchOut Setup Requests

Problem Statement 

Coupa's standard punchout setup request only includes unique identifiers to identify the company, and the user that is punching out.  Often Suppliers want another layer of identification so they can route the punchout session to a specific profile within that company's punchout environment.  An example of this would be a supplier who has a different punchout profile based on what location each user is from.

Solution Summary:

In R14 or later, this has been fixed with Enhanced punchout capabilities


We've improved the punchout setup request so that it's no longer necessary to set up a punchout for each supplier catalog. This makes setting up and maintaining punchouts faster and easier for suppliers who have different catalogs for different people in your organization, while still maintaining the customized shopping experience for your users.

What We Were Thinking

Previously, if you wanted a supplier to deliver different catalogs based on who's accessing the punchout, we required different punchouts for each unique catalog, and then restrict them by content groups, which was time-consuming to set up. This required increased setup time and effort for both the supplier and for Coupa admins. By sending the relevant user-specific information in the punchout setup request, we could eliminate the need for multiple punchouts for the same supplier.

There are two common situations where this is particularly valuable:

  • When suppliers have regional catalogs based on location
  • When suppliers want to specialize their content depending on the type of shopper that's entering their site (i.e. Marketing should see different content than IT)

How It Works

Now you can add custom fields to Punchout Sites that default from a custom field on the user object. These custom fields appear as extrinsics on the punchout setup request. You can also choose to include the user's Department as the punchout's Business Unit field if you prefer by selectingDefault Business Unit From User's Department. Just go to Setup > Punchout sites and click the edit icon () for the puncout you want to modify to find the setting. 

Coupa pulls the default for the custom field when someone clicks on the punchout site, and Coupa sends the punchout setup request. If you don't set up a custom field, Coupa sends the person's department to the supplier.

Behind the Scenes

To set up a punchout custom field go to Setup > Custom fields and choose Punchout Setup from the dropdown menu to get started. Not all custom fields are supported by punchouts.

Supported Custom Fields Unsupported Custom Fields
Text Field Approval group
Text Box Descriptive text
Number Attachment
Lookup Date
Drop down  
Check box  

If you are on earlier than R14, please see below as solution: 

Coupa can now pass an additional field in each PunchOut Setup Request.  This field should be a custom field on the User object, and can be called whatever you want. The supplier should then build a map on their side of the different punchout profiles to the possible values of this custom field.  In the punchout setup request this value will always come over in the "BusinessUnit" tag.

Detailed Configuration steps

  1. Add a custom field to the User object, call it whatever you want.  In this example, we'll call it [Prompt: Department  Field Name: department]
  2. Login as coupasupport on instance and go to: (Note: only Coupa employees can do this step so implementation partners and customers will need a little help.  All coupa employees must run this request through Clint Pohler for proper /setup data controls)
  3. Create a new setup key:    The key must be exactly: cxml_punchout_businessunit_field.  The value must be the Field Name (not the prompt) of the user object custom field you created.  In our example: department
  4. Now when a user punches out the value of this custom field will be sent as an extrinisic in the punchout setup request.  It will always be called "BusinessUnit" in the cXML.  If your department value were "1234" in our example the cXML will look like this for the suppliers:
      <Extrinsic name="FirstName">Adam</Extrinsic>
      <Extrinsic name="LastName">Alphin</Extrinsic>
      <Extrinsic name="UniqueName">aalphin</Extrinsic>
      <Extrinsic name="UserEmail"></Extrinsic>
      <Extrinsic name="User">aalphin1</Extrinsic>
      <Extrinsic name="BusinessUnit">1234</Extrinsic>
  • Was this article helpful?