Pricing Agreements
Pricing Agreements provide users a single place to build, negotiate, and track multi-line product pricing commitments with customers during a renewal cycle. Pricing Agreements include pricing-aware Contract Lines entry, a dedicated set of contract pricing rules, and partner and stakeholder relationships so that list prices, discounts, and net prices are calculated automatically as users enter quantities.
Who can use this feature?
- End Users - Browser
- Creating Pricing Agreements
- Contract Admins - Browser
- Activating Pricing Agreements
- Unlocking Pricing Agreements
- Users do not require an additional license
Configuring Pricing Agreements for
To configure this feature:
- Ensure Configuring Accounts is complete.
- Ensure Configuring the Product Catalog is complete.
- Navigate to Admin > Users & Groups > Permission Sets.
- Select the appropriate Permission Set.
- Grant the following permissions:
- is_pricing_agreement__v
- local_currency__sys
- lock__v
- pa_primary_account__v
- pa_primary_account_name__v
- pa_primary_account_id__v
- pa_contract_list_amount__v
- pa_contract_net_amount__v
- pa_contract_total_quantity__v
- pa_contract_total_discount__v
- pa_contract_net_amount_rule__v
- pricing_as_of_date__v
- lock__v
- object_type__v
- pa_list_price__v
- quantity__v
- account__v
- contract__v
- contract_partner_status__v
- object_type__v
- pa_primary_account__v
- contract_list_price_rule__v
- contract_discount_rule__v
- content_per_unit__v
- unit_element__v
- Grant Execute permissions for the activate__v and unlock__v object actions.
- Navigate to Admin > Configuration > Objects > contract__v > Layouts.
- Select the appropriate Contract layout.
- Add the pa_primary_account__v and pricing_as_of_date__v fields to the Contract layout.
- Populate the Pricing Agreement Contract Types field with pricing_agreement__v, separating each object type with a semicolon.
|
Object |
Object Permission |
Object Types |
Fields |
Field Permission |
|---|---|---|---|---|
|
account_partner__v Only needed when Price Book functionality is being used. |
CRED | price_book__v | All Object Fields |
Edit |
|
contract__v |
CRED |
Applicable Object Types |
|
Edit |
| contract_line__v | CRED |
Applicable Object Types |
|
Edit |
| contract_partner__v | CRED | Applicable Object Types |
|
Edit |
| contract_stakeholder__v | CRED | n/a | All Object Fields | Edit |
| contract_pricing_rule__v | CRED |
|
All Object Fields | Edit |
| product__v | CRED | n/a |
|
Edit |
Creating Custom Pricing Agreement Object Types (Optional)
Custom object types can be created to track unique Pricing Agreement object types, for example, brand or species-specific custom object types.
To create a custom Pricing Agreement Contracts object type:
- Create a contract__v custom object type:
- Navigate to Admin > Configuration > Objects > contract__v > Object Types
- Select Create
- Populate the required Label, Plural Label, and Name fields
- Select Save
Ensure the contract__v fields applicable to end users are enabled.
- Create a new contract__v layout.
- Navigate to contract__v > Layouts
- Select Create
- Select the custom contract__v object type via the Object Type dropdown
- Select Done
- Select Save
- Create a contract_line__v object type.
- Navigate to Admin > Configuration > Objects > contract_line__v > Object Types
- Select Create
- Populate the required Label, Plural Label, and Name fields. The Name field must be the same as the previously created custom contract__v object type
- Select Save
Ensure the contract_line__v fields applicable to end users are enabled.
- Create a new contract_line__v layout.
- Navigate to contract_line__v > Layouts
- Select Create
- Select the custom contract_line__v object type via the Object Type dropdown
- Select Done
- Select Save
- Create a contract_partner__v object type.
- Navigate to Admin > Configuration > Objects > contract_partner__v > Object Types
- Select Create.
- Populate the required Label, Plural Label, and Name fields. The Name field must be the same as the previously created custom contract__v object type.
- Select Save
Ensure the contract_partner__v fields applicable to end users are enabled.
- Create a new contract_partner__v layout.
- Navigate to contract_partner__v > Layouts
- Select Create
- Select the custom contract_partner__v object type via the Object Type dropdown
- Select Done
- Select Save
- Navigate to Business Admin > Objects > veeva_settings__v.
- Select the appropriate record.
- Populate the Pricing Agreement Contract Types field with the custom contract__v object type(s). Separate each object type with a semicolon.
Configuring Pricing Agreements for
To configure this feature:
- Ensure Configuring X-Pages or Configuring X-Pages Studio is complete.
- Grant the following permissions:
Object
Object Permission
Object Types
Fields
Field Permission
contract__v R Applicable Object Types object_type__v
Read html_report__v CRED contracts__v All Object Fields Edit
Configuring Pricing Agreements for
To configure this feature:
- Ensure Configuring Accounts is complete.
- Ensure Configuring the Product Catalog is complete.
- Navigate to Admin > Users & Groups > Permission Sets.
- Select the appropriate Permission Set.
- Grant the following permissions:
Object
Object Permission
Object Types
Fields
Field Permission
account_partner__v
Only needed when Price Book functionality is being used.
R price_book__v All Object Fields
Read contract__v CRED Applicable Object Types - is_pricing_agreement__v
- local_currency__sys
- lock__v
- pa_primary_account__v
- pa_primary_account_name__v
- pa_primary_account_id__v
- pa_contract_list_amount__v
- pa_contract_net_amount__v
- pa_contract_total_quantity__v
- pa_contract_total_discount__v
- pa_contract_net_amount_rule__v
- pricing_as_of_date__v
Edit contract_line__v CRED Applicable Object Types - content_per_unit__v
- content_quantity__v
- local_currency__sys
- pa_line_discount_rule__v
- pa_line_discount__v
- pa_list_price__v
- pa_net_price_rule__v
- pa_net_price__v
- pa_list_price_per_measure__v
- pa_net_price_per_measure_rule__v
- pa_net_price_per_measure__v
- pa_list_amount__v
- pa_net_amount__v
- pa_net_amount_rule__v
- pa_line_warning__v
- pa_discount_calculation_path__v
- pa_final_net_price__v
- pa_final_net_price_rule__v
- pa_total_discount__v
- pa_total_discount_rule__v
- quantity__v
- rule__v
- unit_element__v
Edit contract_partner__v CRED Applicable Object Types - account__v
- contract__v
- contract_partner_status__v
- device_type__v
- modified_date__v
- object_type__v
- pa_primary_account__v
Edit lock__v
Read contract_stakeholder__v CRED n/a All Object Fields Edit contract_pricing_rule__v R - contract_list_price_rule__v
- contract_discount_rule__v
All Object Fields Raed product__v R n/a - content_per_unit__v
- unit_element__v
Read html_report__v R contracts__v All Object Fields Read veeva_settings__v R n/a - application_profile__v
- disable_contract_line_total_round__v
- enable_contract_simple_rebate_addition__v
- pricing_agreement_contract_types__v
Read - Navigate to Objects > accounts__v.
- Grant Create permission for the appropriate account__v object type(s).
- Grant Execute permission for the create_pricing_agreement__v object action.
- Navigate to Objects > contract__v.
- Grant Execute permission for the activate__v object action.
- Navigate to Objects > contract_partner__v.
- Grant Execute permission for the activate__v object action.
For organizations with Contracts already enabled, to prevent Pricing Agreement object types from causing device sync issues on mobile devices, ensure that the WHERE clause for the contract__v VMOC records excludes Pricing Agreement object types.
Configuring Contract Line Columns (Optional)
By default, the Contract Lines table displays the Product and Quantity columns. These and additional optional columns can be managed via the corresponding layout to determine the displayed columns on the Contract Lines tab.
Content Quantity
Products may be sold in multiples as a purchasable unit, for example, as a case of 20 bottles or a box of 100 doses. Content Quantity allows end users to update quantity values in the unit that makes the most sense for their conversation using the Quantity and/or Content Quantity columns.
- Quantity - The product as a packaged unit, for example, a box or carton
- Content Quantity - The product as an individual item
Updating the values in either Quantity or Content Quantity column updates the other to match the quantity value. For example, if a product is sold as a carton with 20 units and the user populates the Quantity column with 5, the Content Quantity column updates to 100. If the user instead entered 100 in the Content Quantity column, then the Quantity column updates to 5.
To configure this column:
- Navigate to Admin > Configuration > Objects > contract_line__v > Layouts.
- Select the appropriate Contract Line layout record.
- Add the content_quantity__v field.
- Select Save.
Once added, the Content Quantity column displays after the Quantity column.
Product Identifier
The Product Identifier column displays secondary product identification information, for example SKU or product codes.
To configure this column:
- Navigate to Admin > Configuration > Objects > contract_line__v > Layouts.
- Select the appropriate Contract Line layout record.
- Add the product_identifier__v field.
- Select Save.
Once added, the Product Identifier column displays between the Product and Quantity columns.
Configuring Contract Line Pricing Calculation for
Contract Pricing Rules determine the prices and discounts that are automatically calculated on the Contract Line. See Contract Pricing Rules Overview for more information.
Vault CRM evaluates the following rule types for each product on a Contract Line:
- Contract List Price Rule - Defines the contract’s available products and sets the List Price
- Contract Discount Rule - Defines the discount that sets the Line Discount and Net Price
Discount Calculation (Optional)
Determine how multiple discounts on a line are calculated via the Enable Contract Simple Rebate Addition field. By default, this field is set to False.
To configure this feature:
- Navigate to Business Admin > veeva_settings__v.
- Select the appropriate record.
- Enter True or False in the Enable Contract Simple Rebate Addition field:
- True - Allows discount percentages to be added together, for example, 10% + 5% for a total 15% discount.
- False or null - Applies a discount to the price, before applying the second discount to the remaining discounted balance. For example, 10% is discounted on $100. The next discount of 5% is then applied to the remaining $90.
Rounding Behavior (Optional)
Determine how Vault CRM rounds line amounts via the Disable Contract Line Total Round field. By default, this field is set to False.
To configure this feature:
- Navigate to Business Admin > veeva_settings__v.
- Select the appropriate record.
- Enter True or False in the Disable Contract Line Total Round field:
- True - Rounds item prices first, disabling line total rounding.
- False or null - Rounds the line total at the end. Useful for larger orders with volumes in the thousands to prevent rounding creep, ensuring maximum precision.
Unlocking Pricing Agreements as
Pricing Agreements and their line items cannot be edited by end users while locked to ensure unintended changes don’t affect an activated Pricing Agreement.
To unlock a Pricing Agreement:
- Navigate to the Contracts tab.
- Select the appropriate Pricing Agreement.
- Select Unlock via the All Actions menu.
Activating Pricing Agreements as
Once a Pricing Agreement has been reviewed and approved, end users can activate the Pricing Agreement and Contract Partner to allow end users to use and complete the Pricing Agreement from the Pricing Agreements page.
To activate a Pricing Agreement:
- Navigate to the Contracts tab.
- Select the approved Pricing Agreement.
- Select Activate via the All Actions menu.
- Select Save.
- Navigate to the Contract Partners record.
- Select Activate via the All Actions menu.
Once activated, a Pricing Agreement is locked and does not allow Contract Admins and end users to edit the Pricing Agreement or its line items.
Creating Pricing Agreements as
To create a Pricing Agreement record:
- Navigate to the appropriate Account record or the Contracts tab.
- Select Create Pricing Agreement via the All Actions menu.
- Select the appropriate Contract Object Type, if applicable.
- Populate the following required fields:
- Contract Name - Enter the name of the Pricing Agreement Contract
- Start/End Date - Defines the active period for the Pricing Agreement Contract
- Pricing as of Date - Determines the price books and discount rules that apply to the Contract Line items
- Primary Account - Select the appropriate account
- Select Save.
- Select the Contract Lines subtab.
- Enter a quantity for each product to view the corresponding List Amount, Net Price, and Net Amount according to the applicable Contract Pricing Rules.
- Edit the Line Discount and Net Price fields to automatically recalculate the updated fields
The available Contract Line rows reflect the user’s My Setup assignment and any active Contract List Price Rules for the account.
- Select Save and Submit via the All Actions menu.
Adding Stakeholders and Partners
Stakeholders and Partners can be managed via the Contract Header to track additional accounts involved in fulfillment, for example, distributors or buying groups.
Existing Stakeholder record(s) can be added via the Contract Stakeholder field. Alternatively, users can populate the free-text Stakeholder Name field for stakeholders without a Vault CRM account.
When saving the Pricing Agreement, Vault CRM automatically creates a corresponding Contract Partner record for the Primary Account to simplify reporting and data management. Users can create additional Contract Partner records for other accounts involved in the Pricing Agreement.
Only one Contract Partner record can be marked as the Primary Account at a time. If the Primary Account changes, the existing Contract Partner record(s) update accordingly.

