Pricing Attribute REST APIs
Overview
These endpoints enable administration of CPQ Pricing Engine pricing attributes using REST API services.
Administration
Description |
Use this endpoint to add a pricing attribute in Pricing Engine. |
|
---|---|---|
URI Endpoint |
/rest/v17/pricingSetup/attributes |
|
Endpoint Parameters |
None |
|
HTTP Method |
POST |
|
Request Body Parameters |
arrayType |
Indicates whether pricing attribute is an array type |
attributeLevel |
Pricing attribute level. Allowed values: "Header" and "Line" |
|
dataType |
Type of the pricing attribute data. Allowed values: "Boolean", "Currency", "String", "Decimal", "Date", and "Integer" | |
description |
The description of the pricing attribute | |
lookupType |
The lookup type variable name for the pricing attribute |
|
lookupTypeLabel |
The lookup type display label for the pricing attribute |
|
mappings |
JSON data for all attributes that are mapped to a pricing attribute | |
name |
Name of the pricing attribute | |
templateVariableKey |
Pricing attribute template variable key. Allowed values: "Custom"and "Quantity" | |
variableName |
The variable name of the pricing attribute | |
Response Body Parameters |
arrayType |
Indicates whether pricing attribute is an array type |
attributeLevel |
Pricing attribute level. Allowed values: "Header" and "Line" | |
createdBy |
The first name, last name, and email of the user that created the Pricing Attribute. | |
dataType |
Data type of the pricing attribute. Allowed values: "Boolean", "Currency", "String", "Decimal", "Date", and "Integer" | |
dateAdded |
Creation date of the pricing attribute. Format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z |
|
dateModified |
Last modified date of the pricing attribute. Format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z |
|
description |
Description of the pricing attribute | |
lastModifiedBy |
The first name, last name, and email of the user that last modified the Pricing Attribute. | |
lookupType |
The lookup type variable name for the pricing attribute |
|
lookupTypeLabel |
The lookup type display label for the pricing attribute |
|
mappings |
An array of mapped data source attributes | |
name |
Name of the pricing attribute | |
templateVariableKey |
Pricing attribute template variable key. Allowed values: "Custom", "Quantity", "BomItemVariableName", "ChargeAttribute", "PriceAsOf", "RequestedRatePlanNumber", "ServiceDuration", "ServiceDurationPeriod", "RequestedAgreementNumber", "BuyingAccountID", "Currency Code", "PartNumber", "Customer ID", "Line Price As Of" |
|
variableName |
Variable name of the pricing attribute | |
arrayType |
Indicates whether pricing attribute is an array type |
https://sitename.oracle.com/rest/v17/pricingSetup/attributes
{ "name": "New Pricing Attribute", "variableName": "newPricingAttribute_c", "dataType": "String", "attributeLevel": "Line" }
{ "createdBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "lastModifiedBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "name": "New Pricing Attribute", "variableName": "newPricingAttribute_c", "dateModified": "2024-04-30T14:55:52Z", "dateAdded": "2024-04-30T14:55:52Z", "dataType": "String", "attributeLevel": "Line", "templateVariableKey": "Custom", "arrayType": false }
Description |
Use this endpoint to add mapping information to the specified pricing attribute in Pricing Engine. |
|
---|---|---|
URI Endpoint |
/rest/v17/pricingSetup/attributes/{attributeVariableName}/mappings |
|
Endpoint Parameters |
attributeVariableName |
The variable name of the Pricing Engine pricing attribute. |
HTTP Method |
POST |
|
Request Body Parameters |
attributeLevel |
Pricing attribute level. Allowed values: "Header" and "Line" |
dataSourceAttribute |
The mapped data source attribute | |
dataSourceLabel |
The mapped label of the data source | |
dataSourceProviderVariableName |
The variable name of the data source provider | |
id |
The unique identifier of the pricing data source attribute | |
orderNumber |
The position (starting from 1) of the pricing data source attribute in the ordered list | |
readOnly |
indicates if the attribute has any restrictions for edits | |
variableName |
Indicates whether the pricing data source attribute has a valid mapping | |
Response Body Parameters |
attributeLabel |
The label of the pricing data source attribute |
createdBy |
The first name, last name, and email of the user that created the Pricing Attribute mapping. | |
dataSourceAttribute |
The mapped data source attribute | |
dataSourceProviderVariableName |
The variable name of the data source provider | |
dateAdded |
Creation date of the pricing attribute mapping | |
dateModified |
Last modified date of the pricing attribute mapping | |
id |
The unique identifier of the pricing data source attribute | |
lastModifiedBy |
The first name, last name, and email of the user that last modified the Pricing Attribute mapping. | |
orderNumber |
The position (starting from 1) of the pricing data source attribute in the ordered list | |
readOnly |
indicates if the attribute has any restrictions for edits | |
variableName |
Indicates whether the pricing data source attribute has a valid mapping |
https://sitename.oracle.com/rest/v17/pricingSetup/attributes/shippingCost_c/mappings
{ "dataSourceProviderVariableName": "oraclecpqo", "variableName": "shippingCost_c" }
{ "createdBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "lastModifiedBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "orderNumber": 1, "id": 38677434, "dataSourceAttribute": "/process/oraclecpqo/_main_doc/transaction/shippingCost_c", "dataSourceProviderVariableName": "oraclecpqo", "variableName": "shippingCost_c", "attributeLabel": "Shipping Cost", "dateModified": "2024-04-30T15:29:56Z", "dateAdded": "2024-04-30T15:29:56Z", "readOnly": false }
Description |
Use this endpoint to delete the specified pricing attribute in Pricing Engine. |
|
---|---|---|
URI Endpoint |
/rest/v17/pricingSetup/attributes/{attributeVariableName} |
|
Endpoint Parameters |
attributeVariableName |
The variable name of the Pricing Engine pricing attribute. |
HTTP Method |
DELETE |
|
Request Body Parameters |
None |
|
Success Response |
204 |
Description |
Use this endpoint to retrieve the specified pricing attribute in Pricing Engine. |
|
---|---|---|
URI Endpoint |
/rest/v17/pricingSetup/attributes/{attributeVariableName} |
|
Endpoint Parameters |
attributeVariableName |
The variable name of the Pricing Engine pricing attribute. |
(Optional) This endpoint supports the following query specifications: Refer to Query Parameters for more information. |
||
HTTP Method |
GET |
|
Request Body Parameters |
None |
|
Response Body Parameters |
arrayType |
Indicates whether pricing attribute is an array type |
attributeLevel |
Pricing attribute level. Allowed values: "Header" and "Line" | |
createdBy |
The details of the user who created the record. | |
dataType |
Data type of the pricing attribute. Allowed values: "Boolean", "Currency", "String", "Decimal", "Date", and "Integer" |
|
dateAdded |
Creation date of the pricing attribute. Format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z |
|
dateModified |
Last modified date of the pricing attribute. Format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z |
|
description |
Description of the pricing attribute | |
lastModifiedBy |
The details of the user who modified the record. | |
lookupType |
The lookup type variable name for the pricing attribute |
|
lookupTypeLabel |
The lookup type display label for the pricing attribute |
|
mappings |
An array of mapped data source attributes | |
name |
Name of the pricing attribute | |
templateVariableKey |
Pricing attribute template variable key. Allowed values: "Custom", "Quantity", "BomItemVariableName", "ChargeAttribute", "PriceAsOf", "RequestedRatePlanNumber", "ServiceDuration", "ServiceDurationPeriod", "RequestedAgreementNumber", "BuyingAccountID", "Currency Code", "PartNumber", "Customer ID", "Line Price As Of" |
|
variableName |
Variable name of the pricing attribute |
https://sitename.oracle.com/rest/v17/pricingSetup/attributes
The expand query specification is used in the following example to include attribute mappings in the response.
https://sitename.oracle.com/rest/v17/pricingSetup/attributes/newPricingAttribute_c?expand=mappings
{ "createdBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "lastModifiedBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "name": "New Pricing Attribute", "variableName": "newPricingAttribute_c", "description": "", "dateModified": "2024-04-30T15:12:22Z", "dateAdded": "2024-04-30T14:55:52Z", "dataType": "String", "attributeLevel": "Line", "templateVariableKey": "Custom", "valid": true, "arrayType": false, "mappings": { "items": [{ "orderNumber": 1, "id": 38674532, "dataSourceAttribute": "/process/oraclecpqo/_sub_doc/transactionLine/_price_period", "dataSourceLabel": "Standard Quote Process", "dataSourceProviderVariableName": "oraclecpqo", "variableName": "_price_period", "attributeLabel": "Pricing Engine Price Period", "validMapping": true, "dateModified": "2024-04-30T15:12:22Z", "dateAdded": "2024-04-30T15:12:22Z", "readOnly": false }, { "orderNumber": 2, "id": 38674533, "dataSourceAttribute": "/part/_custom_attr/field4", "dataSourceLabel": "Item Attributes", "dataSourceProviderVariableName": "PART_CUSTOM_ATTRS", "variableName": "_part_custom_field4", "attributeLabel": "Price Period", "validMapping": true, "dateModified": "2024-04-30T15:12:22Z", "dateAdded": "2024-04-30T15:12:22Z", "readOnly": false } ], "links": [{ "rel": "parent", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/newPricingAttribute_c" }, { "rel": "canonical", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/newPricingAttribute_c/mappings" }, { "rel": "self", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/newPricingAttribute_c/mappings?offset=0&limit=1000" } ] }, "links": [{ "rel": "self", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/newPricingAttribute_c" }, { "rel": "parent", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes" }, { "rel": "child", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/newPricingAttribute_c/mappings" } ] }
Get Pricing Attribute Mappings
Description |
Use this endpoint to retrieve attribute mapping information for the specified pricing attribute in Pricing Engine. |
|
---|---|---|
URI Endpoint |
/rest/v17/pricingSetup/attributes/{attributeVariableName}/mappings |
|
Endpoint Parameters |
attributeVariableName |
The variable name of the Pricing Engine pricing attribute. |
(Optional) This endpoint supports the following query specifications: |
||
HTTP Method |
GET |
|
Request Body Parameters |
None |
|
Response Body Parameters |
An array of attributes that are mapped to a pricing attribute. |
|
attributeLabel |
The label of the pricing data source attribute |
|
createdBy |
The details of the user who created the record. | |
dataSourceAttribute |
The mapped data source attribute | |
dataSourceLabel |
The mapped label of the data source | |
dataSourceProviderVariableName |
The variable name of the data source provider | |
dateAdded |
Creation date of the pricing attribute mapping | |
dateModified |
Last modified date of the pricing attribute mapping | |
id |
The unique identifier of the pricing data source attribute | |
lastModifiedBy |
The details of the user who modified the record. | |
orderNumber |
The position (starting from 1) of the pricing data source attribute in the ordered list | |
readOnly |
indicates if the attribute has any restrictions for edits | |
variableName |
Indicates whether the pricing data source attribute has a valid mapping |
https://sitename.oracle.com/rest/v17/pricingSetup/attributes/newPricingAttribute_c/mappings
{ "createdBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "lastModifiedBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "name": "New Pricing Attribute", "variableName": "newPricingAttribute_c", "description": "", "dateModified": "2024-04-30T15:12:22Z", "dateAdded": "2024-04-30T14:55:52Z", "dataType": "String", "attributeLevel": "Line", "templateVariableKey": "Custom", "arrayType": false, "links": [{ "rel": "self", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/newPricingAttribute_c" }, { "rel": "parent", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes" }, { "rel": "child", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/newPricingAttribute_c/mappings" } ] }
Description |
Use this endpoint to retrieve a list of all pricing attributes in Pricing Engine. |
|
---|---|---|
URI Endpoint |
/rest/v17/pricingSetup/attributes |
|
Endpoint Parameters |
None |
|
(Optional) This endpoint supports the following query specifications. |
||
HTTP Method |
GET |
|
Request Body Parameters |
None |
|
Response Body Parameters |
A collection of pricing attributes. |
|
arrayType |
Indicates whether pricing attribute is an array type | |
attributeLevel |
Pricing attribute level. Allowed values: "Header" and "Line" | |
createdBy |
The details of the user who created the record. | |
dataType |
Data type of the pricing attribute. Allowed values: "Boolean", "Currency", "String", "Decimal", "Date", and "Integer" | |
dateAdded |
Creation date of the pricing attribute. Format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z |
|
dateModified |
Last modified date of the pricing attribute. Format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z |
|
description |
Description of the pricing attribute | |
lastModifiedBy |
The details of the user who modifieded the record. | |
lookupType |
The lookup type variable name for the pricing attribute |
|
lookupTypeLabel |
The lookup type display label for the pricing attribute |
|
mappings |
An array of mapped data source attributes | |
name |
Name of the pricing attribute | |
templateVariableKey |
Pricing attribute template variable key. Allowed values: "Custom", "Quantity", "BomItemVariableName", "ChargeAttribute", "PriceAsOf", "RequestedRatePlanNumber", "ServiceDuration", "ServiceDurationPeriod", "RequestedAgreementNumber", "BuyingAccountID", "Currency Code", "PartNumber", "Customer ID", "Line Price As Of" |
|
variableName |
Variable name of the pricing attribute |
https://sitename.oracle.com/rest/v17/pricingSetup/attributes
The limit
query specification is used in the following example to limit the results to five attributes per page.
https://sitename.oracle.com/rest/v17/pricingSetup/attributes?limit=5
{ "items": [{ "createdBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "lastModifiedBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "name": "Quantity", "variableName": "_quantity", "description": "The exploded line quantity used in Pricing Engine.\n\nFor example, in a product hierarchy with 2 child products per root product and 3 grandchild parts per child product, this value will be '6' for the grandchild product when the root quantity is '1', and 12 when the root quantity is '2'.\n\nThis attribute implicitly maps to the Quantity (_price_quantity) attribute in the quote line Price Attribute Set, but the default can be overridden by explicitly defining a different mapping.", "dateModified": "2022-06-29T14:34:29Z", "dateAdded": "2022-06-29T14:34:29Z", "dataType": "Integer", "attributeLevel": "Line", "templateVariableKey": "Quantity", "arrayType": false, "links": [{ "rel": "self", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/_quantity" }, { "rel": "parent", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes" }, { "rel": "child", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/_quantity/mappings" } ] }, { "createdBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "lastModifiedBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "name": "Bom Item Variable Name", "variableName": "_bomItemVariableName", "description": "Variable Name of the BOM item definition for a BOM item. It is empty for a part item.", "dateModified": "2023-03-23T14:37:16Z", "dateAdded": "2023-03-23T14:37:16Z", "dataType": "String", "attributeLevel": "Line", "templateVariableKey": "BomItemVariableName", "arrayType": false, "links": [{ "rel": "self", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/_bomItemVariableName" }, { "rel": "parent", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes" }, { "rel": "child", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/_bomItemVariableName/mappings" } ] }, { "createdBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "lastModifiedBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "name": "Price As Of", "variableName": "_priceAsOf", "description": "Price as of date. When empty, the current timestamp at the pricing execution is used.", "dateModified": "2023-09-21T14:39:45Z", "dateAdded": "2023-09-21T14:39:45Z", "dataType": "Date", "attributeLevel": "Header", "templateVariableKey": "PriceAsOf", "arrayType": false, "links": [{ "rel": "self", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/_priceAsOf" }, { "rel": "parent", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes" }, { "rel": "child", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/_priceAsOf/mappings" } ] }, { "createdBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "lastModifiedBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "name": "Requested Rate Plan Number", "variableName": "_requestedRatePlanNumber", "description": "Requested Rate Plan Number.", "dateModified": "2023-09-21T14:39:45Z", "dateAdded": "2023-09-21T14:39:45Z", "dataType": "String", "attributeLevel": "Line", "templateVariableKey": "RequestedRatePlanNumber", "arrayType": false, "links": [{ "rel": "self", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/_requestedRatePlanNumber" }, { "rel": "parent", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes" }, { "rel": "child", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/_requestedRatePlanNumber/mappings" } ] }, { "createdBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "lastModifiedBy": { "firstName": "John", "lastName": "Smith", "emailId": "john.smith@companyname.com" }, "name": "Service Duration", "variableName": "_serviceDuration", "description": "The duration to service a product, measured in the unit of Service Duration Period. Only applicable to a product that fulfills a service contract.", "dateModified": "2023-12-18T17:00:10Z", "dateAdded": "2023-12-18T17:00:10Z", "dataType": "Integer", "attributeLevel": "Line", "templateVariableKey": "ServiceDuration", "arrayType": false, "links": [{ "rel": "self", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/_serviceDuration" }, { "rel": "parent", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes" }, { "rel": "child", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes/_serviceDuration/mappings" } ] } ], "offset": 0, "limit": 5, "count": 5, "hasMore": true, "links": [{ "rel": "canonical", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes" }, { "rel": "self", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes?offset=0&limit=5" }, { "rel": "next", "href": "https://sitename.oracle.com/rest/v17/pricingSetup/attributes?offset=5&limit=5" } ] }
Description |
Use this endpoint to update the specified pricing attribute in Pricing Engine. |
|
---|---|---|
URI Endpoint |
/rest/v17/pricingSetup/attributes/{attributeVariableName} |
|
Endpoint Parameters |
attributeVariableName |
The variable name of the Pricing Engine pricing attribute. |
HTTP Method |
PATCH |
|
Add Pricing Attribute |
arrayType |
Indicates whether pricing attribute is an array type |
attributeLevel |
Pricing attribute level. Allowed values: "Header" and "Line" |
|
dataType |
Type of the pricing attribute data. Allowed values: "Boolean", "Currency", "String", "Decimal", "Date", and "Integer" | |
description |
The description of the pricing attribute | |
lookupType |
The lookup type variable name for the pricing attribute |
|
lookupTypeLabel |
The lookup type display label for the pricing attribute |
|
mappings |
JSON data for all attributes that are mapped to a pricing attribute | |
name |
Name of the pricing attribute | |
templateVariableKey |
Pricing attribute template variable key. Allowed values: "Custom"and "Quantity" | |
variableName |
The variable name of the pricing attribute | |
Success Response |
204 |
https://sitename.oracle.com/rest/v17/pricingSetup/attributes/testAttribute
{ "name": "New pricing attribute name" }
Update Pricing Attribute Mappings
Description |
Use this endpoint to update mapping information for the specified pricing attribute in Pricing Engine. |
|
---|---|---|
URI Endpoint |
/rest/v17/pricingSetup/attributes/{attributeVariableName}/mappings |
|
Endpoint Parameters |
attributeVariableName |
The variable name of the Pricing Engine pricing attribute. |
HTTP Method |
PATCH |
|
Request Body Parameters |
The array of pricing patch operations. |
|
op |
The operation to be performed. Allowed values: "add", "remove", and "replace". | |
path |
The JSON pointer string for "path" property. | |
value |
The target value. Refer to Add Pricing Attribute for more information. | |
Success Response |
204 |
https://sitename.oracle.com/rest/v17/pricingSetup/attributes/testAttribute/mappings
Sample Request Body - Add Example
[{ "op": "add", "path": "/", "value": { "dataSourceProviderVariableName": "CONFIG_ATTRS_test3", "variableName": "textField1", "orderNumber": 4 } } ]
Sample Request Body - Remove Example
[{ "op": "remove", "path": "/3022752151", "value": {} } ]
Sample Request Body - Replace Example
[{ "op": "replace", "path": "/3022752151", "value": { "orderNumber": 1 } } ]
Description |
Use this endpoint to update or delete pricing attributes in Pricing Engine. |
|
---|---|---|
URI Endpoint |
/rest/v17/pricingSetup/attributes |
|
Endpoint Parameters |
None |
|
HTTP Method |
PATCH |
|
Request Body Parameters |
The array of pricing patch operations. |
|
op |
The operation to be performed. Allowed values: "add", "remove", and "replace". | |
path |
The JSON pointer string for "path" property. | |
value |
The target value. Refer to Add Pricing Attribute for more information. | |
Success Response |
204 |
https://sitename.oracle.com/rest/v17/pricingSetup/attributes
[{ "op": "add", "path": "/", "value": { "name": "New", "variableName": "testAdd_c", "dataType": "Currency", "attributeLevel": "Line" } }, { "op": "remove", "path": "/shippingCost_c", "value": { "variableName": "shippingCost_c" } }, { "op": "replace", "path": "/newPricingAttribute_c", "value": { "name": "Updated Attribute Name" } } ]