RTPE Evaluation Service
Download OpenAPI specification:Download
The pricing evaluation service provides a service to define methods containing a set of named elements computed by formulas, and to request the computed results of those formulas for a given set of parameters.
pros-request-id
: ... [ 16 .. 64 ] characters
Defines the correlation ID that should be associated with this request, and transitively associated with all other requests made on behalf of this original request.
If a request includes this header and its value satisfies the minimum and maximum length requirements, that value is used as the correlation ID. Otherwise, a new random value is generated and used instead.
Create or update credential configurations
Authorizations:
Request Body schema: application/json
name | string The name of the credential. Required unless implied by context (e.g., updating a credential where the name is present in the URI). Between 1-128 characters. |
value | string The value of the credential, i.e., the secret. This value will be obfuscated in credential instances that are returned from calls to the service. |
updatedBy | string Recorded user who last updated the credential value stored in the system. |
updatedAt | string The time when this credential was last updated in the system, represented as a string in ISO-8601 format. |
Responses
Request samples
- Payload
Example 1
{- "name": "AccessToken",
- "value": "cHJvbnRvYWRtaW5AdGVuYW50MDpmb28="
}
Response samples
- 200
- 400
Example 1
{- "name": "AccessToken",
- "value": "*",
- "updatedBy": "d9420c21-3a2f-36b4-840e-2a0a21eb9425",
- "updatedAt": "2019-04-10T19:44:02.476Z"
}
Create/update evaluation iteration limits
Authorizations:
Request Body schema: application/json
Schema not providedResponses
Request samples
- Payload
Example 1
{- "requestLimit": 300,
- "functionLimit": 200
}
Response samples
- 200
- 400
Example 1
{- "requestLimit": 300,
- "functionLimit": 200
}
Create or update request preprocessors
At most one preprocessor can be associated with a named method; if one already exists, it is replaced in its entirety with the definition in the body of this request.
Authorizations:
Request Body schema: application/json
methodName | string Name of the method to which this preprocessor is associated. |
Array of objects (PreprocessorStageDTO) List of preprocessor stages that are to be applied to requests, in order. |
Responses
Request samples
- Payload
Example 1
{- "methodName": "my-price-method",
- "stages": [
- {
- "type": "transform",
- "request": "{ \"batchItems\": [for (.batchItems) { * - \"overrides\": . }] } // drop overrides"
}, - {
- "type": "transform",
- "request": "{ \"batchItems\": [for (.batchItems) { \"overrides\": [{ \"name\": \"v2\", \"value\": \"true\"}], *:.}] } // insert new override"
}
]
}
Response samples
- 201
- 400
Example 1
{- "methodName": "my-price-method",
- "stages": [
- {
- "type": "transform",
- "request": "{ \"batchItems\": [for (.batchItems) { * - \"overrides\": . }] } // drop overrides"
}, - {
- "type": "transform",
- "request": "{ \"batchItems\": [for (.batchItems) { \"overrides\": [{ \"name\": \"v2\", \"value\": \"true\"}], *:.}] } // insert new override"
}
]
}
Get a credential configuration by name
The credential value is not returned for security reasons; a placeholder symbol for credential value is returned instead.
Authorizations:
path Parameters
name required | string |
Responses
Response samples
- 200
- 404
GET /api/configure/credential/name/AccessToken
{- "name": "AccessToken",
- "value": "*",
- "updatedBy": "d9420c21-3a2f-36b4-840e-2a0a21eb9425",
- "updatedAt": "2019-04-10T19:44:02.476Z"
}
Update a credential configuration by name.
If the name is specified in the request body, it will be ignored. The name from the URL path will be used.
Authorizations:
path Parameters
name required | string |
Request Body schema: application/json
name | string The name of the credential. Required unless implied by context (e.g., updating a credential where the name is present in the URI). Between 1-128 characters. |
value | string The value of the credential, i.e., the secret. This value will be obfuscated in credential instances that are returned from calls to the service. |
updatedBy | string Recorded user who last updated the credential value stored in the system. |
updatedAt | string The time when this credential was last updated in the system, represented as a string in ISO-8601 format. |
Responses
Request samples
- Payload
POST /api/configure/credential/name/AccessToken
{- "value": "cHJvbnRvYWRtaW5AdGVuYW50MDpmb28="
}
Response samples
- 200
- 400
- 404
Example 1
{- "name": "AccessToken",
- "value": "*",
- "updatedBy": "d9420c21-3a2f-36b4-840e-2a0a21eb9425",
- "updatedAt": "2019-04-10T19:44:02.476Z"
}
Get the preprocessor configuration for a method
Authorizations:
path Parameters
methodName required | string |
Responses
Response samples
- 200
- 404
GET /api/configure/preprocessor/name/my-price-method
{- "methodName": "my-price-method",
- "stages": [
- {
- "type": "transform",
- "request": "{ \"batchItems\": [for (.batchItems) { * - \"overrides\": . }] } // drop overrides"
}, - {
- "type": "transform",
- "request": "{ \"batchItems\": [for (.batchItems) { \"overrides\": [{ \"name\": \"v2\", \"value\": \"true\"}], *:.}] } // insert new override"
}
]
}
Update the preprocessor configuration for a method
If the method name is also specified in the request body, it is ignored; the method name from URL path is used.
This operation is only supported for preprocessors that already exist. Attempting to use this endpoint to set a preprocessor that does not already exist results in a 404 error. New preprocessors must be created with the POST configure/preprocessor
endpoint instead.
Authorizations:
path Parameters
methodName required | string |
Request Body schema: application/json
methodName | string Name of the method to which this preprocessor is associated. |
Array of objects (PreprocessorStageDTO) List of preprocessor stages that are to be applied to requests, in order. |
Responses
Request samples
- Payload
POST /api/configure/preprocessor/name/my-price-method
{- "methodName": "my-price-method",
- "stages": [
- {
- "type": "transform",
- "request": "{ \"batchItems\": [for (.batchItems) { * - \"overrides\": . }] } // drop overrides"
}, - {
- "type": "transform",
- "request": "{ \"batchItems\": [for (.batchItems) { \"overrides\": [{ \"name\": \"v2\", \"value\": \"true\"}], *:.}] } // insert new override"
}
]
}
Response samples
- 200
- 400
Example 1
{- "methodName": "my-price-method",
- "stages": [
- {
- "type": "transform",
- "request": "{ \"batchItems\": [for (.batchItems) { * - \"overrides\": . }] } // drop overrides"
}, - {
- "type": "transform",
- "request": "{ \"batchItems\": [for (.batchItems) { \"overrides\": [{ \"name\": \"v2\", \"value\": \"true\"}], *:.}] } // insert new override"
}
]
}
Delete the preprocessor configuration for a method
Deleting the preprocessor associated with a method disables preprocessing for all requests to evaluate the given method.
Note that attempting to delete a preprocessor which does not exist is not an error. The end state of such a call is the same: the resource now does not exist.
Authorizations:
path Parameters
methodName required | string |
Responses
Response samples
- 204
DELETE /api/configure/preprocessor/name/my-price-method
null
Retrieve the post-evaluation conversion configuration
This configuration determines the behavior of any requested currency or unit conversions on element results after evaluation of a price method. At the request level, this includes:
- matrix parameters
- cur query parameter
- unit query parameter
At the batch request item level, this includes:
- elements
Authorizations:
Responses
Response samples
- 200
Example 1
{- "onError": "warn",
- "enabled": {
- "curQuery": true,
- "unitQuery": false,
- "matrix": false,
- "bodyItem": false
}
}
Update the post-evaluation conversion configuration
This configuration determines the behavior of any requested currency or unit conversions on element results after evaluation of a price method. At the request level, this includes:
- matrix parameters
- cur query parameter
- unit query parameter
At the batch request item level, this includes:
- elements
Authorizations:
Request Body schema: application/json
onError | string Determines the behavior when an error is encountered during conversion. Valid values are 'warn' and 'fail'. |
object (PostConversionEnabledConfigDTO) Class containing information on which conversions are applied. |
Responses
Request samples
- Payload
Example 1
{- "onError": "warn",
- "enabled": {
- "curQuery": true,
- "unitQuery": false,
- "matrix": false,
- "bodyItem": false
}
}
Response samples
- 200
- 400
Example 1
{- "onError": "warn",
- "enabled": {
- "curQuery": true,
- "unitQuery": false,
- "matrix": false,
- "bodyItem": false
}
}
Provides documentation over the runtime-supported types, operations, and functions for the configured instance of the evaluation service.
Get all supported data types and operators
Return a list of all data types supported by this instance of the evaluation service and all category groupings that contain one or more function(s) and/or operator(s).
Authorizations:
Responses
Response samples
- 200
Example 1
{- "types": [
- {
- "name": "decimal"
}, - {
- "name": "string"
}, - {
- "name": "boolean"
}, - {
- "name": "date"
}, - {
- "name": "datetime"
}, - {
- "name": "currency"
}, - {
- "name": "unit"
}
], - "categories": {
- "math": {
- "label": "Math",
- "description": "Basic mathematical operations and functions that operate on numbers",
- "operators": [
- "ADDITION",
- "SUBTRACTION",
- "MULTIPLICATION",
- "DIVISION"
], - "functions": [
- "AVERAGE",
- "RANK"
]
}, - "uncategorized": {
- "label": "Other",
- "description": "Other category",
- "operators": [
- "EQUAL",
- "NOT_EQUAL"
], - "functions": [
- "ADD_TIME",
- "COERCE",
- "TRYINORDER"
]
}
}
}
Get formula function metadata (batch)
This method provides a batch operation to retrieve the FormulaFunctionMetaDetails for a given list of function names. Instead of multiple calls of GET formula/function/{name} on each function name, a single call to this method with the function names passed in as parameters retrieves the same result more efficiently. Metadata objects appear in the result in the same order as originally specified in the request. If requested formula does not exist, it is represented by a null value in the result list.
The request must contain at least 1 or maximum of 100 function names. Any other size results in an error.
Authorizations:
Request Body schema: application/json
Responses
Request samples
- Payload
Example 1
[- "SUM"
]
Response samples
- 200
- 400
Example 1
[- {
- "name": "SUM",
- "signatures": [
- {
- "returns": {
- "type": "decimal",
- "description": ""
}, - "arguments": {
- "fixed": [
- {
- "type": "decimal",
- "nullable": false,
- "label": "firstValue",
- "description": ""
}, - {
- "type": "keyword",
- "keywordType": "NullIndicator",
- "nullable": false,
- "label": "nullIndicator",
- "description": "i18n-specific description of this argument's usage"
}
], - "variable": [
- {
- "type": "decimal",
- "nullable": false,
- "label": "moreValues",
- "description": ""
}
]
}
}
], - "categories": [
- "arithmetic"
], - "keywords": {
- "NullIndicator": {
- "values": [
- "IGNORE_NULL"
]
}
}, - "description": "Arithmetic summation of one or more numbers."
}
]
Get formula function metadata (single)
Return an object describing the metadata of a function identified by its unique name.
Authorizations:
path Parameters
name required | string |
Responses
Response samples
- 200
- 404
GET /api/formula/function/SUM
{- "name": "SUM",
- "signatures": [
- {
- "returns": {
- "type": "decimal",
- "description": ""
}, - "arguments": {
- "fixed": [
- {
- "type": "decimal",
- "nullable": false,
- "label": "firstValue",
- "description": ""
}, - {
- "type": "keyword",
- "keywordType": "NullIndicator",
- "nullable": false,
- "label": "nullIndicator",
- "description": "i18n-specific description of this argument's usage"
}
], - "variable": [
- {
- "type": "decimal",
- "nullable": false,
- "label": "moreValues",
- "description": ""
}
]
}
}
], - "categories": [
- "arithmetic"
], - "keywords": {
- "NullIndicator": {
- "values": [
- "IGNORE_NULL"
]
}
}, - "description": "Arithmetic summation of one or more numbers."
}
Get formula operator metadata
Return an object describing the metadata of an operator identified by its unique name.
Authorizations:
path Parameters
name required | string |
Responses
Response samples
- 200
- 404
GET /api/formula/operator/ADDITION
{- "name": "ADDITION",
- "signatures": [
- {
- "returns": {
- "type": "decimal",
- "description": ""
}, - "arguments": {
- "fixed": [
- {
- "type": "decimal",
- "nullable": false,
- "label": "augend",
- "description": ""
}, - {
- "type": "decimal",
- "nullable": false,
- "label": "addend",
- "description": ""
}
], - "variable": [ ]
}
}
], - "categories": [
- "arithmetic"
], - "description": "Arithmetic sum of two numbers. An error will occur if the augend's and addend's unit and/or currency values do not match.",
- "symbols": [
- "+"
]
}
Get supported operators
Return a list of all operators supported by this instance of the evaluation service.
Authorizations:
Responses
Response samples
- 200
Example 1
{- "operators": [
- "ADDITION",
- "AND",
- "DIVISION",
- "EQUAL",
- "GREATER_THAN",
- "GREATER_THAN_OR_EQUAL",
- "LESS_THAN",
- "LESS_THAN_OR_EQUAL",
- "MULTIPLICATION",
- "NEGATION",
- "NOT",
- "NOT_EQUAL",
- "OR",
- "SUBTRACTION"
]
}
Define and modify a method, which is a user-defined algorithmic calculation based on an ordered list of formula elements. The elements are parsed and validated by the formula engine. Each method definition must have a unique name when created. Multiple versions of a method are supported, but each version is only valid for a certain (non-overlapping) period of time.
Get all methods
Retrieve one page containing list of existing methods ordered by name.
Authorizations:
query Parameters
pageSize | integer <int32> Default: 50 Specifies the maximum number of records for a single request, as desired by the caller. The number of records actually returned may be different. min: 25 max: 100 default value: 50 example values:
|
token | string The token corresponding to the page of results. Supplying this parameter will start the search in the specified area. |
include | Array of strings It is an optional query parameter and when specified, result set includes method details, for example either effective start date or effective end date. valid values: start end example values:
|
header Parameters
pros-evaluation-cache | string pros-evaluation-cache is an optional HTTP header used to define the caching strategy used by the evaluation service for a request. This header specifies whether the evaluation service should use internal caches to help return a response to a client. There is a trade off between returning the most recent data and performance. Disabling a cache will potentially result in more recent data being returned but at a cost to the response time for the request. When valid values:
|
Responses
Response samples
- 200
Example 1
{- "meta": {
- "next": {
- "pageSize": 50,
- "token": "VGFyZ2V0IFJldHVybiBQcmljaW5nIDA"
}
}, - "data": [
- {
- "name": "Target Return Pricing 2"
}, - {
- "name": "Target Return Pricing 3"
}, - {
- "name": "Target Return Pricing 5"
}, - {
- "name": "Target Return Pricing 8"
}
]
}
Create a new method
Authorizations:
Request Body schema: application/json
id | string <uuid> The system-defined internal object ID (in UUID canonical string format). [example: 0a4fa51c-c040-46a0-a3d0-63ca0e9ae699] |
name | string The name used to identify the method to external systems. Between 1 and 64 characters. |
effectiveStart | string The date and time when this method first becomes available for evaluation. Before this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the value defaults to the local date and time on the server receiving the request at the time the request is processed. |
effectiveEnd | string The last date and time at which this method is available for evaluation. After this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the method remains effective indefinitely until it is superseded by a new version that becomes effective at a later time. |
Array of objects (ElementDTO) List of one or more elements and their formulas in the order that will be evaluated by this method. An element whose value is used by other elements must be listed before all of those elements that depend upon it. It is an error if all elements are defined with internal equal to true. | |
description | string The description used to describe the method to external systems. Between 1 and 4000 characters. |
Responses
Request samples
- Payload
Normal
{- "effectiveStart": "2014-05-01",
- "name": "Price",
- "elements": [
- {
- "name": "ListPrice",
- "type": "DECIMAL",
- "formula": "LOOKUP(\"ListPrice\", EFFECTIVE_DATETIME())"
}
], - "description": "description for ListPrice"
}
Response samples
- 200
- 400
- 409
Normal
{- "id": "bb01aa5d-e4dd-4f15-86d0-297ec811edc4",
- "effectiveStart": "2014-05-01",
- "name": "Price",
- "elements": [
- {
- "name": "ListPrice",
- "type": "DECIMAL",
- "formula": "LOOKUP(\"ListPrice\", EFFECTIVE_DATETIME())"
}
], - "description": "description for ListPrice"
}
Get method by ID
Return a single object describing a specific method identified by its system-generated, permanent ID.
Authorizations:
path Parameters
method-id required | string <uuid> The ID of the desired method, as used by external systems. |
query Parameters
on | string Specifies the relevant date and time for method retrieval. For example, retrieving a cost-plus method at some time specified in the future or the past. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the value defaults to the local date and time on the server receiving the request at the time the request is processed. example values:
|
header Parameters
pros-evaluation-cache | string pros-evaluation-cache is an optional HTTP header used to define the caching strategy used by the evaluation service for a request. This header specifies whether the evaluation service should use internal caches to help return a response to a client. There is a trade off between returning the most recent data and performance. Disabling a cache will potentially result in more recent data being returned but at a cost to the response time for the request. When valid values:
|
Responses
Response samples
- 200
- 400
- 404
GET /api/method/id/16cfabee-f1bd-4f28-9ddc-18df5da72de3?on=2014-12-24T12%3A34%3A56
{- "id": "16cfabee-f1bd-4f28-9ddc-18df5da72de3",
- "name": "CostPlus",
- "effectiveStart": "2010-01-01T00:00:00",
- "elements": [
- {
- "name": "goodsCosts",
- "type": "DECIMAL",
- "formula": "100"
}
], - "description": "description for CostPlus"
}
Update method by ID
Update a single object identified by its system-generated, permanent ID. This operation ignores any values for the id and name fields that may be present in the object sent with the request.
Authorizations:
path Parameters
method-id required | string <uuid> The ID of the desired method, as used by external systems. |
Request Body schema: application/json
id | string <uuid> The system-defined internal object ID (in UUID canonical string format). [example: 0a4fa51c-c040-46a0-a3d0-63ca0e9ae699] |
name | string The name used to identify the method to external systems. Between 1 and 64 characters. |
effectiveStart | string The date and time when this method first becomes available for evaluation. Before this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the value defaults to the local date and time on the server receiving the request at the time the request is processed. |
effectiveEnd | string The last date and time at which this method is available for evaluation. After this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the method remains effective indefinitely until it is superseded by a new version that becomes effective at a later time. |
Array of objects (ElementDTO) List of one or more elements and their formulas in the order that will be evaluated by this method. An element whose value is used by other elements must be listed before all of those elements that depend upon it. It is an error if all elements are defined with internal equal to true. | |
description | string The description used to describe the method to external systems. Between 1 and 4000 characters. |
Responses
Request samples
- Payload
POST /api/method/id/67bba953-57a5-4e75-87b2-2b9bb9196d35
{- "elements": [
- {
- "name": "goodsCost",
- "type": "DECIMAL",
- "formula": "100"
}
]
}
Response samples
- 200
- 400
Example 1
{- "id": "3502f4b2-b325-4738-b4ae-5b93c92512ce",
- "name": "CostPlus",
- "effectiveStart": "2010-01-01T00:00:00",
- "elements": [
- {
- "name": "goodsCosts",
- "type": "DECIMAL",
- "formula": "100"
}
]
}
Delete method by ID
Logically delete a specific method identified by its system-generated, permanent ID.
Authorizations:
path Parameters
method-id required | string <uuid> |
Responses
Response samples
- 400
- 404
Example 2 - Concurrent Modification
{- "errorID": "EVAL-011110",
- "errorMessage": "Could not operate on the method because it has been modified by another operation.",
- "resourceType": "method",
- "resourceID": "<id/name>"
}
Get method by name
Return the specific version of a method identified by its unique name and the specified time.
Authorizations:
path Parameters
method-name required | string The name of the desired method, as used by external systems. |
query Parameters
on | string Specifies the relevant date and time for method retrieval. For example, retrieving a cost-plus method at some time specified in the future or the past. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the value defaults to the local date and time on the server receiving the request at the time the request is processed. example values:
|
header Parameters
pros-evaluation-cache | string pros-evaluation-cache is an optional HTTP header used to define the caching strategy used by the evaluation service for a request. This header specifies whether the evaluation service should use internal caches to help return a response to a client. There is a trade off between returning the most recent data and performance. Disabling a cache will potentially result in more recent data being returned but at a cost to the response time for the request. When valid values:
|
Responses
Response samples
- 200
- 400
- 404
GET /api/method/name/CostPlus?on=2014-12-24T12%3A34%3A56
{- "id": "2e6b32a1-3af3-4ed4-b802-0feeb06c4dcf",
- "name": "CostPlus",
- "effectiveStart": "2010-01-01T00:00:00",
- "elements": [
- {
- "name": "goodsCosts",
- "type": "DECIMAL",
- "formula": "100"
}
], - "description": "description for CostPlus"
}
Update method by name
Update a single method identified by its externally-provided name. This operation ignores any values for the id
and name
fields that may be present in the object sent with the request.
Authorizations:
path Parameters
method-name required | string |
Request Body schema: application/json
id | string <uuid> The system-defined internal object ID (in UUID canonical string format). [example: 0a4fa51c-c040-46a0-a3d0-63ca0e9ae699] |
name | string The name used to identify the method to external systems. Between 1 and 64 characters. |
effectiveStart | string The date and time when this method first becomes available for evaluation. Before this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the value defaults to the local date and time on the server receiving the request at the time the request is processed. |
effectiveEnd | string The last date and time at which this method is available for evaluation. After this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the method remains effective indefinitely until it is superseded by a new version that becomes effective at a later time. |
Array of objects (ElementDTO) List of one or more elements and their formulas in the order that will be evaluated by this method. An element whose value is used by other elements must be listed before all of those elements that depend upon it. It is an error if all elements are defined with internal equal to true. | |
description | string The description used to describe the method to external systems. Between 1 and 4000 characters. |
Responses
Request samples
- Payload
POST /api/method/name/CostPlus
{- "elements": [
- {
- "name": "goodsCost",
- "type": "DECIMAL",
- "formula": "100"
}
]
}
Response samples
- 200
- 400
Example 1
{- "id": "2e6b32a1-3af3-4ed4-b802-0feeb06c4dcf",
- "name": "CostPlus",
- "effectiveStart": "2010-01-01T00:00:00",
- "elements": [
- {
- "name": "goodsCosts",
- "type": "DECIMAL",
- "formula": "100"
}
]
}
Delete method by name
Logically delete a specific method identified by its externally-provided name.
Authorizations:
path Parameters
method-name required | string |
Responses
Response samples
- 400
- 404
Example 2 - Concurrent Modification
{- "errorID": "EVAL-011110",
- "errorMessage": "Could not operate on the method because it has been modified by another operation.",
- "resourceType": "method",
- "resourceID": "<id/name>"
}
Get method by version (by method ID)
Returns a specific instance of the desired method identified by its version.
Authorizations:
path Parameters
method-id required | string <uuid> |
version-id required | string |
header Parameters
pros-evaluation-cache | string pros-evaluation-cache is an optional HTTP header used to define the caching strategy used by the evaluation service for a request. This header specifies whether the evaluation service should use internal caches to help return a response to a client. There is a trade off between returning the most recent data and performance. Disabling a cache will potentially result in more recent data being returned but at a cost to the response time for the request. When valid values:
|
Responses
Response samples
- 200
GET /api/method/id/2e6b32a1-3af3-4ed4-b802-0feeb06c4dcf/version/1507922489
{- "id": "2e6b32a1-3af3-4ed4-b802-0feeb06c4dcf",
- "name": "CostPlus",
- "effectiveStart": "2010-01-01T00:00:00",
- "version": "1507922489",
- "elements": [
- {
- "name": "goodsCosts",
- "type": "DECIMAL",
- "formula": "100"
}
]
}
Get method by version (by method name)
Authorizations:
path Parameters
method-name required | string |
version-id required | string |
header Parameters
pros-evaluation-cache | string pros-evaluation-cache is an optional HTTP header used to define the caching strategy used by the evaluation service for a request. This header specifies whether the evaluation service should use internal caches to help return a response to a client. There is a trade off between returning the most recent data and performance. Disabling a cache will potentially result in more recent data being returned but at a cost to the response time for the request. When valid values:
|
Responses
Response samples
- 200
GET /api/method/name/CostPlus/version/1507922489
{- "id": "2e6b32a1-3af3-4ed4-b802-0feeb06c4dcf",
- "name": "CostPlus",
- "effectiveStart": "2010-01-01T00:00:00",
- "version": "1507922489",
- "elements": [
- {
- "name": "goodsCosts",
- "type": "DECIMAL",
- "formula": "100"
}
]
}
Get all method versions (by method ID)
Authorizations:
path Parameters
method-id required | string <uuid> |
query Parameters
since | string |
header Parameters
pros-evaluation-cache | string pros-evaluation-cache is an optional HTTP header used to define the caching strategy used by the evaluation service for a request. This header specifies whether the evaluation service should use internal caches to help return a response to a client. There is a trade off between returning the most recent data and performance. Disabling a cache will potentially result in more recent data being returned but at a cost to the response time for the request. When valid values:
|
Responses
Response samples
- 200
GET /api/method/id/2e6b32a1-3af3-4ed4-b802-0feeb06c4dcf/version
{- "id": "2e6b32a1-3af3-4ed4-b802-0feeb06c4dcf",
- "name": "CostPlus",
- "history": [
- {
- "version": "1507922489",
- "effectiveStart": "2014-05-01T09:00:00",
- "effectiveEnd": "2014-05-01T13:00:00"
}, - {
- "version": "1507922400",
- "effectiveStart": "2014-05-01T09:00:00",
- "effectiveEnd": "2014-05-01T13:00:00"
}, - {
- "version": "1507920000",
- "effectiveStart": "2014-05-01T13:00:01",
- "effectiveEnd": "2016-05-01T13:00:00"
}, - {
- "version": "1507916787",
- "effectiveStart": "2014-05-01T13:00:01",
- "effectiveEnd": "2016-05-01T13:00:00"
}
]
}
Get all method versions (by method name)
Authorizations:
path Parameters
method-name required | string |
query Parameters
since | string |
header Parameters
pros-evaluation-cache | string pros-evaluation-cache is an optional HTTP header used to define the caching strategy used by the evaluation service for a request. This header specifies whether the evaluation service should use internal caches to help return a response to a client. There is a trade off between returning the most recent data and performance. Disabling a cache will potentially result in more recent data being returned but at a cost to the response time for the request. When valid values:
|
Responses
Response samples
- 200
GET /api/method/name/CostPlus/version
{- "id": "2e6b32a1-3af3-4ed4-b802-0feeb06c4dcf",
- "name": "CostPlus",
- "history": [
- {
- "version": "1507922489",
- "effectiveStart": "2014-05-01T09:00:00",
- "effectiveEnd": "2014-05-01T13:00:00"
}, - {
- "version": "1507922400",
- "effectiveStart": "2014-05-01T09:00:00",
- "effectiveEnd": "2014-05-01T13:00:00"
}, - {
- "version": "1507920000",
- "effectiveStart": "2014-05-01T13:00:01",
- "effectiveEnd": "2016-05-01T13:00:00"
}, - {
- "version": "1507916787",
- "effectiveStart": "2014-05-01T13:00:01",
- "effectiveEnd": "2016-05-01T13:00:00"
}
]
}
Change method name
Change the name by which a method is accessed and evaluated. The method must first be identified by its system-generated, permanent ID, which will never change as a result of this operation. On success, the change takes effect immediately and applies to all versions of the method for any effective date and time range: present, future, or past.
The name length restrictions are the same as Method.name
.
Authorizations:
path Parameters
method-id required | string <uuid> |
Request Body schema: text/plain
Schema not providedResponses
Request samples
- Payload
Example 1 - Already Exists
Target Return Pricing
Response samples
- 400
Example 1 - Already Exists
{- "errorID": "EVAL-011107",
- "errorMessage": "Could not save a method because the name Target Return Pricing already exists.",
- "resourceType": "method"
}
Evaluate a pre-configured method definition containing a list of ordered formula elements. If the method requested is currently valid, then the values of its elements for a specified scope are calculated by the formula engine and the results are returned to the requester. The exact set of results returned depends on the method configuration and the specific request made.
All endpoints in the Request API are subject to rate throttling as detailed in the additional information.
There are also unique headers associated with these requests:
Header Name | Purpose | Unit |
---|---|---|
RateLimit-Limit | The tenant's configured item limit per minute. Returned on every request. | item/minute |
RateLimit-Remaining | Number of remaining items in the time window. Returned on every request. | item |
RateLimit-Reset | Recommended number of seconds to wait before sending a retry request. Returned only when a request receives a 429 response due to throttling. | seconds |
Evaluate items for method (batch/debug)
Evaluate a specific method for multiple items in a single request in debug mode. Each item in the request specifies its dimensional key and other optional attributes/overrides of any parameters given at this request level. Returns a detailed response in lexical order with the following response objects:
The response header pros-batch-errors
indicates the number of elements with errors in the response body. This header is only returned when the status code is 200 and errors are present in the response, otherwise the header is omitted.
Dimension information:
metadata
: Definition of each dimension that was used by the price method and resolved during evaluation. See dimension service for definition.nodes
: Definition of each node in each dimension that was resolved during evaluation. Each node that was used by the price method is grouped by dimension name. See dimension service for definition.
Error information:
error
: Error code returned from the API.errorMessage
: Error message returned from the API.errorPhase
: The phase of request processing that caused the error.
Evaluation Information:
effectiveRequestItem
: The request item send to the internal service to be evaluated.result
: The evaluation results and the evaluation trace for all elements in the request.
Guidance information:
guidance
: Results for every guidance call to the service grouped by guidance context. The guidance context contains name, productId, customerId, attributes, customerAttributes, derivedAttributes.
Lookup information:
lookups
: Resolved lookups during evaluation grouped by lookup name, scope key, and date time. The lookup name is the name of the table in the lookup service. The scope key specifies which dimension nodes are being queried. The date time is the time that was used to request the lookup value. Records start and end date time, key, and columns. Unresolved lookups are also shown as null entries.
Conversion information:
uom
: A list of all of the UOM conversions performed during the batch request, including the origin unit, the product ID, the target unit, and the conversion rate for each.currency
: A list of all of the currency conversions performed during the batch request, including the base price, the quote price, and the conversion rate for each.
Method Information:
method
: The actual method retrieved that is being evaluated.methodName
: The method name as seen by the service.methodID
: The method id for this request.actualMethodOn
: The method effective date seen by the service.
Request information: Trace the request flow through the system. First, the original request enters the system and the preprocessor generates an effective request. Next, the shared item is processed and validated. Then the shared item and request item are merged into the effective item, which is then validated. Finally, the effective item is passed into the actual evaluator.
request
: The original request as received by the service.processedRequest
: The request after preprocessor execution.requestID
: Request id sent with the request if there was one.
User information:
user
: User that invoked the price method.
Authorizations:
path Parameters
method-reference-type required | string Enum: "ID" "NAME" |
method-reference required | string The name of the method. |
query Parameters
methodOn | string Restricts the selection of the evaluation method to the version that is or was applicable at a specific date and time. This is useful when performing evaluations that are required to resolve to a deterministic version of the evaluation logic, regardless of the date and time specified by the on parameter. For example, use this parameter when future prices in future orders must be computed by the method that was in place at the time a contract was quoted, in the past. Be aware that the selection of the method version may not always resolve to the same version when The value must be less than or equal to the value of the example values:
|
Request Body schema: application/json
object (BatchItemDTO) A data structure that describes the parameters supplied for evaluating a price method. These parameters include dimensions, element overrides, element specifications, dates, and the item context. | |
Array of objects (BatchItemDTO) List of 1-100 individual items to be evaluated in this batch request. Each item in this list is evaluated independently of the other items in the list. The shared field in the batch request can be used to specify common dimensions, overrides, and elements that are shared between the items in the batch. |
Responses
Request samples
- Payload
POST /api/method/name/OptimalPrice/values/debug
{- "request": {
- "batchItems": [
- {
- "key": [
- {
- "dimName": "LARGE_CITIES",
- "nodeName": "US-TX-Houston"
}
]
}, - {
- "key": [
- {
- "dimName": "LARGE_CITIES",
- "nodeName": "US-TX-Houston"
}
]
}
]
}
}
Response samples
- 200
- 429
Example 1
{- "actualMethodOn": "2021-08-02T13:57:01.6384407",
- "dimensions": {
- "LARGE_CITIES": {
- "metadata": {
- "aspects": [
- {
- "id": "2b848a8c-c886-3253-921a-77c43cd50aae",
- "label": {
- "locale": "es",
- "value": "región"
}, - "name": "STATE"
}, - {
- "id": "6ddc09dc-4560-31d9-854e-9fe670374eb2",
- "label": {
- "locale": "es",
- "value": "país"
}, - "name": "COUNTRY"
}, - {
- "id": "85921462-8431-3951-97c0-558f7b5f8ffc",
- "label": {
- "locale": "es",
- "value": "ciudad"
}, - "name": "CITY"
}
], - "defaultLocale": "es",
- "id": "c689acc7-ee13-3482-aa7b-c6a13419431c",
- "label": {
- "locale": "es",
- "value": "Ciudades Grandes"
}, - "locales": [
- "es",
- "en",
- "en-GB"
], - "name": "LARGE_CITIES",
- "nodeAttributes": [
- {
- "constraints": {
- "max": 6000000000,
- "min": 0,
- "type": "integer-constraints"
}, - "id": "29be0fe0-8815-37d0-81b5-7f4781e3848e",
- "label": {
- "locale": "es",
- "value": "tamaño de la población"
}, - "name": "POPULATION"
}, - {
- "constraints": {
- "max": 180,
- "min": -180,
- "type": "decimal-constraints"
}, - "id": "8eff7d99-4f05-3e95-a6e5-d0adb6f62f37",
- "label": {
- "locale": "und",
- "value": "LON"
}, - "name": "LON"
}, - {
- "constraints": {
- "max": 90,
- "min": -90,
- "type": "decimal-constraints"
}, - "id": "c4a8afa2-34be-3060-a91c-81928eb1b701",
- "label": {
- "locale": "und",
- "value": "LAT"
}, - "name": "LAT"
}
], - "rootAspect": {
- "id": "c689acc7-ee13-3482-aa7b-c6a13419431c",
- "label": {
- "locale": "es",
- "value": "el mundo"
}, - "name": "WORLD"
}, - "rootNode": {
- "aspect": {
- "aspectID": "c689acc7-ee13-3482-aa7b-c6a13419431c"
}, - "id": "c689acc7-ee13-3482-aa7b-c6a13419431c",
- "label": {
- "locale": "es",
- "value": "dondequiera"
}, - "name": "Any"
}
}, - "nodes": {
- "US-TX-Houston": {
- "ancestors": [
- {
- "aspectID": "2b848a8c-c886-3253-921a-77c43cd50aae",
- "nodeID": "7baaa4ab-dd43-31a2-9454-ebc60fb910d5"
}, - {
- "aspectID": "6ddc09dc-4560-31d9-854e-9fe670374eb2",
- "nodeID": "7516fd43-adaa-3e0b-8a65-a672c39845d2"
}
], - "aspect": {
- "aspectID": "85921462-8431-3951-97c0-558f7b5f8ffc"
}, - "id": "32b16534-406d-3436-b4c6-c61f24874650",
- "label": {
- "locale": "und",
- "value": "US-TX-Houston"
}, - "name": "US-TX-Houston"
}, - "Any": {
- "aspect": {
- "aspectID": "c689acc7-ee13-3482-aa7b-c6a13419431c"
}, - "id": "c689acc7-ee13-3482-aa7b-c6a13419431c",
- "label": {
- "locale": "es",
- "value": "dondequiera"
}, - "name": "Any"
}
}
}
}, - "conversions": {
- "uom": [
- {
- "rate": 1000,
- "origin": "kg",
- "target": "grm"
}
], - "currency": [
- {
- "quote": "GBP",
- "rate": 0.87,
- "base": "USD"
}
]
}, - "evaluations": [
- {
- "effectiveRequestItem": {
- "onDate": "2021-08-02T13:57:01.6384407",
- "serviceOn": "2021-08-02T13:57:01.6384407",
- "convertToCurrency": {
- "code": ""
}, - "convertToUnit": {
- "code": ""
}, - "itemContext": {
- "currency": {
- "code": ""
}, - "unit": {
- "code": ""
}
}, - "dimensionKey": {
- "LARGE_CITIES": "US-TX-Houston"
}, - "elementSpecs": [ ],
- "overrides": [ ],
- "scaleOverrides": { },
- "basePriceOverrides": { }
}, - "results": {
- "elements": [
- {
- "name": "test",
- "type": "STRING",
- "value": "US-TX-Houston"
}, - {
- "name": "test2",
- "type": "STRING",
- "value": null
}
], - "trace": "EvaluationTrace(events=[TraceEvent{name=\"element: test2\", µsSum=71.30, µsMean=71.30, µsMin=71.30, µsMax=71.30, samples=1}, TraceEvent{name=\"func: DIM_GET_VALUE(S)S\", µsSum=7755.20, µsMean=3877.60, µsMin=19.70, µsMax=7735.50, samples=2}, TraceEvent{name=\"@exec\", µsSum=27466.30, µsMean=27466.30, µsMin=27466.30, µsMax=27466.30, samples=1}, TraceEvent{name=\"@parse (hard)\", counter=2}, TraceEvent{name=\"element: test\", µsSum=24547.70, µsMean=24547.70, µsMin=24547.70, µsMax=24547.70, samples=1}, TraceEvent{name=\"@parse\", µsSum=1774.70, µsMean=887.35, µsMin=174.20, µsMax=1600.50, samples=2}])"
}
}, - {
- "effectiveRequestItem": {
- "onDate": "2021-08-02T13:57:01.6384407",
- "serviceOn": "2021-08-02T13:57:01.6384407",
- "convertToCurrency": {
- "code": ""
}, - "convertToUnit": {
- "code": ""
}, - "itemContext": {
- "currency": {
- "code": ""
}, - "unit": {
- "code": ""
}
}, - "dimensionKey": {
- "LARGE_CITIES": "US-TX-Houston"
}, - "elementSpecs": [ ],
- "overrides": [ ],
- "scaleOverrides": { },
- "basePriceOverrides": { }
}, - "results": {
- "elements": [
- {
- "name": "test",
- "type": "STRING",
- "value": "US-TX-Houston"
}, - {
- "name": "test2",
- "type": "STRING",
- "value": null
}
], - "trace": "EvaluationTrace(events=[TraceEvent{name=\"element: test2\", µsSum=22.40, µsMean=22.40, µsMin=22.40, µsMax=22.40, samples=1}, TraceEvent{name=\"func: DIM_GET_VALUE(S)S\", µsSum=26.70, µsMean=13.35, µsMin=6.50, µsMax=20.20, samples=2}, TraceEvent{name=\"@exec\", µsSum=147.10, µsMean=147.10, µsMin=147.10, µsMax=147.10, samples=1}, TraceEvent{name=\"@parse (hard)\", counter=2}, TraceEvent{name=\"element: test\", µsSum=57.90, µsMean=57.90, µsMin=57.90, µsMax=57.90, samples=1}, TraceEvent{name=\"@parse\", µsSum=1774.70, µsMean=887.35, µsMin=174.20, µsMax=1600.50, samples=2}])"
}
}
], - "guidance": { },
- "lookups": {
- "DebugLookup": {
- "{c689acc7-ee13-3482-aa7b-c6a13419431c=32b16534-406d-3436-b4c6-c61f24874650}": {
- "2020-04-10T00:00": {
- "start": "2020-01-01T00:00:00",
- "end": "2020-05-01T00:00:00",
- "values": {
- "PRICE": {
- "name": "PRICE",
- "value": "10.00",
- "type": "DECIMAL",
- "currency": "USD"
}
}, - "key": [
- {
- "dimID": "c689acc7-ee13-3482-aa7b-c6a13419431c",
- "dimName": "LARGE_CITIES",
- "nodeID": "32b16534-406d-3436-b4c6-c61f24874650",
- "nodeName": "US-TX-Houston"
}
]
}, - "2020-04-01T00:00": {
- "start": "2020-01-01T00:00:00",
- "end": "2020-05-01T00:00:00",
- "values": {
- "PRICE": {
- "name": "PRICE",
- "value": "10.00",
- "type": "DECIMAL",
- "currency": "USD"
}
}, - "key": [
- {
- "dimID": "c689acc7-ee13-3482-aa7b-c6a13419431c",
- "dimName": "LARGE_CITIES",
- "nodeID": "32b16534-406d-3436-b4c6-c61f24874650",
- "nodeName": "US-TX-Houston"
}
]
}
}
}
}, - "method": {
- "id": "9eda386d-5c92-4203-b6f7-f8be3314cc95",
- "name": "DebugTest",
- "effectiveStart": "2020-01-01T00:00:00",
- "elements": [
- {
- "name": "test",
- "type": "STRING",
- "formula": "DIM_GET_VALUE(\"LARGE_CITIES\")",
- "internal": false
}, - {
- "name": "test2",
- "type": "STRING",
- "formula": "DIM_GET_VALUE(\"INVALID_DIMENSION\")",
- "internal": false
}
]
}, - "methodID": "9eda386d-5c92-4203-b6f7-f8be3314cc95",
- "methodName": "DebugTest",
- "processedRequest": {
- "shared": { },
- "batchItems": [
- {
- "key": [
- {
- "dimName": "LARGE_CITIES",
- "nodeName": "US-TX-Houston"
}
]
}, - {
- "key": [
- {
- "dimName": "LARGE_CITIES",
- "nodeName": "US-TX-Houston"
}
]
}
]
}, - "request": {
- "batchItems": [
- {
- "key": [
- {
- "dimName": "LARGE_CITIES",
- "nodeName": "US-TX-Houston"
}
]
}, - {
- "key": [
- {
- "dimName": "LARGE_CITIES",
- "nodeName": "US-TX-Houston"
}
]
}
]
}, - "requestID": "EVAL-17a98ce9090935a9",
- "user": {
- "id": "urn:pros:portal:acct:fcb9bcc3-7dae-4f3e-b327-73a263fb9725",
- "roles": [
- "EVALUATION_ADMIN"
], - "tenantRoles": [ ],
- "tenant": {
- "id": "b853be31-3251-4703-a030-000000000002",
- "shortId": "138kh4iiz73lp8xifia",
- "envId": "b853be31-3251-4703-a030-000000000002",
- "shortEnvId": "138kh4iiz73lp8xifia"
}, - "prosSupportLogin": false,
- "nickname": "urn:pros:portal:acct:fcb9bcc3-7dae-4f3e-b327-73a263fb9725",
- "name": "urn:pros:portal:acct:fcb9bcc3-7dae-4f3e-b327-73a263fb9725"
}
}
Get guidance supporting info
Evaluates a specific method for one item and uses the result of the pricing method evaluation to call Guidance API Supporting Info endpoint. The result from Guidance Service will be returned to the client.
This endpoint accepts only one item to be evaluated, otherwise it'll throw an error. Additionally, only one request may be made per tenant at one time to this endpoint. Results that go over this will receive a 429 error. The item in the request specifies its dimensional key and other optional attributes/overrides of any parameters given at this request level.
Guidance Service helps customers drive revenue and profitability by providing pricing recommendations that are based on updated market information and customers’ buying behavior/willingness-to-pay. Guidance Service provide instant data-driven price guidance in the cloud, empowering companies to meet aggressive sales growth targets in an increasingly competitive market.
Example Request as of January 3, 2022
POST - /api/guidance/detail
{
"customer": {
"id": "CUST01"
},
"requestItems": [
{
"attributes": [
{
"name": "Product",
"value": "232343301"
},
{
"name": "DEAL_TYPE",
"value": "CONTRACT"
},
{
"name": "STORE_TYPE",
"value": "TIRE"
}
]
}
]
}
Additional details are available with PROS' Guidance team.
Authorizations:
path Parameters
method-reference-type required | string Enum: "ID" "NAME" |
method-reference required | string |
query Parameters
on | string Specifies the relevant date and time for date-related computations in the evaluation. For example, retrieving cost or discount percentages at some time specified in the future. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When specified together with the example values:
|
methodOn | string Restricts the selection of the evaluation method to the version that is or was applicable at a specific date and time. This is useful when performing evaluations that are required to resolve to a deterministic version of the evaluation logic, regardless of the date and time specified by the on parameter. For example, use this parameter when future prices in future orders must be computed by the method that was in place at the time a contract was quoted, in the past. Be aware that the selection of the method version may not always resolve to the same version when The value must be less than or equal to the value of the example values:
|
serviceOn | string Supplies the date and time of scheduled fulfillment, or service. Intended for use by applications that consider the time-of-service as distinctly separate from the instant at which it was proposed, contracted, or transacted (as represented by the query parameter When present, it must be greater than or equal to the value of the example values:
|
Request Body schema: application/json
object (BatchItemDTO) A data structure that describes the parameters supplied for evaluating a price method. These parameters include dimensions, element overrides, element specifications, dates, and the item context. | |
Array of objects (BatchItemDTO) List of 1-100 individual items to be evaluated in this batch request. Each item in this list is evaluated independently of the other items in the list. The shared field in the batch request can be used to specify common dimensions, overrides, and elements that are shared between the items in the batch. |
Responses
Request samples
- Payload
POST /api/method/name/OptimalPriceGuidance/values/supporting-info?on=2015-06-12T12%3A34%3A56&serviceOn=2015-06-24T00%3A00%3A00&%24Mileage=200&%24CompetitiveLevel=Low
{- "batchItems": [
- {
- "key": [
- {
- "dimName": "Origin",
- "nodeName": "Houston"
}, - {
- "dimName": "Destination",
- "nodeName": "Dallas"
}, - {
- "dimName": "TimeOfDay",
- "nodeName": "13:05"
}, - {
- "dimName": "SalesAgencyType",
- "nodeName": "01234"
}, - {
- "dimName": "LoadFactor",
- "nodeName": "62"
}, - {
- "dimName": "PassengerType",
- "nodeName": "Adult"
}
], - "overrides": [
- {
- "name": "Transfers",
- "value": "2"
}, - {
- "name": "NumOfTravelers",
- "value": "3"
}
]
}, - {
- "key": [
- {
- "dimName": "Origin",
- "nodeName": "Houston"
}, - {
- "dimName": "Destination",
- "nodeName": "Austin"
}, - {
- "dimName": "TimeOfDay",
- "nodeName": "13:45"
}, - {
- "dimName": "SalesAgencyType",
- "nodeName": "01234"
}, - {
- "dimName": "LoadFactor",
- "nodeName": "92"
}, - {
- "dimName": "PassengerType",
- "nodeName": "Senior"
}
], - "overrides": [
- {
- "name": "Transfers",
- "value": "1"
}, - {
- "name": "NumOfTravelers",
- "value": "1"
}, - {
- "name": "Mileage",
- "value": "160"
}
]
}
]
}
Response samples
- 200
- 429
Example 1
{- "results": [
- {
- "guidance": {
- "average": 39.23,
- "floor": 41.50534,
- "target": 45.1145,
- "expert": 48.72366
}, - "peers": {
- "mostRelevantPeers": [
- {
- "name": "CustomerPerf_26296",
- "id": "CID26296",
- "average": 352.98
}, - {
- "name": "CustomerPerf_27602",
- "id": "CID27602",
- "average": 340.6
}
], - "totalPeers": 2
}, - "currentPercentile": 20,
- "peerGroupDefs": [
- {
- "name": "CARRYING_COST",
- "included": false,
- "label": "CARRYING_COST"
}
]
}
]
}
Evaluate a method
Evaluate a specific method for a given dimensional key and optional date and time.
Authorizations:
path Parameters
values required | string Used when requesting that all items in the batch include the value of a specific element, by name, from the specified method. Replace When conversion fails:
If the configured post-conversion behavior has example values:
|
key required | string Specifies the dimensionality of a single item to be evaluated. Repeat this parameter, replacing
|
method-reference-type required | string Enum: "ID" "NAME" |
method-reference required | string The name of the method. |
query Parameters
$elementName | string Overrides the value of a specific element, by name. The provided value will be used in place of the normally computed value in any applicable, subsequent calculations for this single requested evaluation. Replace Boolean, string, unit code, and currency code values may be provided as-is, with appropriate URI escaping as necessary. Numeric values must be represented in machine-readable decimal format, using an ASCII full stop or period(.) as the decimal separator and no grouping separators. Numeric values may be specified in a particular currency and/or unit by appending the value with a comma(,) then a currency code, an additional comma(,), and finally the unit code. A unit-only or currency-only value is specified by using an empty string for the currency or unit codes, respectively. Date and time values must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. example values:
|
on | string Specifies the relevant date and time for date-related computations in the evaluation. For example, retrieving cost or discount percentages at some time specified in the future. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When specified together with the example values:
|
methodOn | string Restricts the selection of the evaluation method to the version that is or was applicable at a specific date and time. This is useful when performing evaluations that are required to resolve to a deterministic version of the evaluation logic, regardless of the date and time specified by the on parameter. For example, use this parameter when future prices in future orders must be computed by the method that was in place at the time a contract was quoted, in the past. Be aware that the selection of the method version may not always resolve to the same version when The value must be less than or equal to the value of the example values:
|
serviceOn | string Supplies the date and time of scheduled fulfillment, or service. Intended for use by applications that consider the time-of-service as distinctly separate from the instant at which it was proposed, contracted, or transacted (as represented by the query parameter When present, it must be greater than or equal to the value of the example values:
|
cur | string Requests that all numeric element results in the evaluation response with a currency be converted, if applicable or configured. If a conversion is requested by matrix parameters, the conversion requested in this query parameter will be overridden.
min length: 1 example values:
|
unit | string Requests that all numeric element results in the evaluation response with a unit be converted, if applicable or configured. If a conversion is requested by matrix parameters, the conversion requested in this query parameter will be overridden.
min length: 1 example values:
|
item.cur | string Used to store a currency code as item-level metadata. This field does not alter the evaluation but makes the the specified currency code available to the evaluation and specific functions may consume them. example values:
|
item.unit | string Used to store a unit code as item-level metadata. This field does not alter the evaluation but makes the the specified unit code available to the evaluation and specific functions may consume them. example values:
|
header Parameters
pros-enable-trace | integer <int32> Default: 0 |
Responses
Response samples
- 200
- 429
GET /api/method/name/CostPlus/values/key;PRODUCT=Cola;LOCATION=US?on=2014-12-24T12%3A34%3A56
{- "elements": [
- {
- "name": "cost",
- "type": "DECIMAL",
- "value": "1.23",
- "currency": "USD"
}, - {
- "name": "price",
- "type": "DECIMAL",
- "value": "2.04",
- "currency": "EUR",
- "unit": "kg"
}, - {
- "name": "customer",
- "type": "STRING",
- "value": "Shops A Lot, Inc."
}, - {
- "name": "serviceStartDate",
- "type": "DATETIME",
- "value": "2014-12-24T12:34:56"
}
]
}
Evaluate items for method (batch)
Each item in the request specifies its dimensional key and other optional attributes/overrides of any parameters given at this request level.
The response header pros-batch-errors
indicates the number of elements with errors in the response body. This header is only returned when the status code is 200 and errors are present in the response, otherwise the header is omitted.
Authorizations:
path Parameters
values required | string Used when requesting that all items in the batch include the value of a specific element, by name, from the specified method. Replace When conversion fails:
If the configured post-conversion behavior has example values:
|
method-reference-type required | string Enum: "ID" "NAME" |
method-reference required | string The name of the method. |
query Parameters
$elementName | string Overrides the value of a specific element, by name. The provided value will be used in place of the normally computed value in any applicable, subsequent calculations for this single requested evaluation. Replace Boolean, string, unit code, and currency code values may be provided as-is, with appropriate URI escaping as necessary. Numeric values must be represented in machine-readable decimal format, using an ASCII full stop or period(.) as the decimal separator and no grouping separators. Numeric values may be specified in a particular currency and/or unit by appending the value with a comma(,) then a currency code, an additional comma(,), and finally the unit code. A unit-only or currency-only value is specified by using an empty string for the currency or unit codes, respectively. Date and time values must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. example values:
|
on | string Specifies the relevant date and time for date-related computations in the evaluation. For example, retrieving cost or discount percentages at some time specified in the future. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When specified together with the example values:
|
methodOn | string Restricts the selection of the evaluation method to the version that is or was applicable at a specific date and time. This is useful when performing evaluations that are required to resolve to a deterministic version of the evaluation logic, regardless of the date and time specified by the on parameter. For example, use this parameter when future prices in future orders must be computed by the method that was in place at the time a contract was quoted, in the past. Be aware that the selection of the method version may not always resolve to the same version when The value must be less than or equal to the value of the example values:
|
serviceOn | string Supplies the date and time of scheduled fulfillment, or service. Intended for use by applications that consider the time-of-service as distinctly separate from the instant at which it was proposed, contracted, or transacted (as represented by the query parameter When present, it must be greater than or equal to the value of the example values:
|
cur | string Requests that all numeric element results in the evaluation response with a currency be converted, if applicable or configured. If a conversion is requested by matrix parameters, the conversion requested in this query parameter will be overridden.
min length: 1 example values:
|
unit | string Requests that all numeric element results in the evaluation response with a unit be converted, if applicable or configured. If a conversion is requested by matrix parameters, the conversion requested in this query parameter will be overridden.
min length: 1 example values:
|
header Parameters
pros-enable-trace | integer <int32> Default: 0 |
request-type | string Default: SIMULATION Enum: "SIMULATION" "ANALYTICS" "NORMAL" This header is used to indicate requests that require special management by the evaluation service. When a request is going to be analyzed later, set the header to valid values:
|
Request Body schema: application/json
object (BatchItemDTO) A data structure that describes the parameters supplied for evaluating a price method. These parameters include dimensions, element overrides, element specifications, dates, and the item context. | |
Array of objects (BatchItemDTO) List of 1-100 individual items to be evaluated in this batch request. Each item in this list is evaluated independently of the other items in the list. The shared field in the batch request can be used to specify common dimensions, overrides, and elements that are shared between the items in the batch. |
Responses
Request samples
- Payload
POST /api/method/name/OptimalPrice/values/batch?on=2015-06-12T12%3A34%3A56&serviceOn=2015-06-24T00%3A00%3A00&%24Mileage=200&%24CompetitiveLevel=Low
{- "batchItems": [
- {
- "key": [
- {
- "dimName": "Origin",
- "nodeName": "Houston"
}, - {
- "dimName": "Destination",
- "nodeName": "Dallas"
}, - {
- "dimName": "TimeOfDay",
- "nodeName": "13:05"
}, - {
- "dimName": "SalesAgencyType",
- "nodeName": "01234"
}, - {
- "dimName": "LoadFactor",
- "nodeName": "62"
}, - {
- "dimName": "PassengerType",
- "nodeName": "Adult"
}
], - "overrides": [
- {
- "name": "Transfers",
- "value": "2"
}, - {
- "name": "NumOfTravelers",
- "value": "3"
}
]
}, - {
- "key": [
- {
- "dimName": "Origin",
- "nodeName": "Houston"
}, - {
- "dimName": "Destination",
- "nodeName": "Austin"
}, - {
- "dimName": "TimeOfDay",
- "nodeName": "13:45"
}, - {
- "dimName": "SalesAgencyType",
- "nodeName": "01234"
}, - {
- "dimName": "LoadFactor",
- "nodeName": "92"
}, - {
- "dimName": "PassengerType",
- "nodeName": "Senior"
}
], - "overrides": [
- {
- "name": "Transfers",
- "value": "1"
}, - {
- "name": "NumOfTravelers",
- "value": "1"
}, - {
- "name": "Mileage",
- "value": "160"
}
]
}
]
}
Response samples
- 200
- 429
Example 1
{- "itemResults": [
- {
- "elements": [
- {
- "name": "Economy",
- "type": "DECIMAL",
- "value": "12.23"
}, - {
- "name": "Economy Plus",
- "type": "DECIMAL",
- "value": "15.04"
}, - {
- "name": "Refundable",
- "type": "DECIMAL",
- "value": "17.09"
}, - {
- "name": "Terminal",
- "type": "DECIMAL",
- "value": "20.94"
}
]
}, - {
- "elements": [
- {
- "name": "Economy",
- "type": "DECIMAL",
- "value": "9.25"
}, - {
- "name": "Economy Plus",
- "type": "DECIMAL",
- "value": "10.11"
}, - {
- "name": "Refundable",
- "type": "DECIMAL",
- "value": "12.04"
}, - {
- "name": "Terminal",
- "type": "DECIMAL",
- "value": "14.09"
}
]
}
]
}
Get scale grid (no overrides)
Get scale grid metadata retrieval for a particular component type, without overrides.
Authorizations:
path Parameters
component required | string |
Responses
Response samples
- 200
- 204
- 400
GET /api/scale/name/ScaledType/default
{- "type": "QUANTITY",
- "offsetType": "PERCENT",
- "calcType": "CUMULATIVE"
}
Get scale grid and projection for component (single)
Scale grid retrieval and projection for a particular component type. The scale and the base price can be overridden separately if required.
Authorizations:
path Parameters
component required | string |
Request Body schema: application/json
Array of objects (DimensionNodeReferenceDTO) The list of dimension nodes to use to look up the price record with a scale. | |
currency | string Currency code associated with the value, if applicable. [examples: USD, EUR] |
unit | string Unit code associated with the value, if applicable. [examples: LB, kg] |
on | string <date-time> The optional date/time to use to search for the scale structure information. This defaults to the time of the request if not specified. |
baseValue | number An optional override of the base value to use when projecting the scale. If not provided, the base value in the record will be used for projections, if it exists. |
object (ScaleStructureDTO) An optional override of the scale used to compute projections. If not provided, the scale in the record will be used, if it exists. |
Responses
Request samples
- Payload
POST /api/scale/name/ScaledType
{- "key": [
- {
- "dimName": "LARGE_CITIES",
- "nodeName": "US-TX-Houston"
}
], - "currency": "USD",
- "on": "2020-04-01T00:00:00"
}
Response samples
- 200
- 400
Example 1
{- "type": "QUANTITY",
- "offsetType": "PERCENT",
- "calcType": "CUMULATIVE",
- "currency": "USD",
- "unit": "kg",
- "baseValue": 25,
- "scale": [
- {
- "threshold": 0,
- "offset": 10,
- "projected": 27.5
}, - {
- "threshold": 10,
- "offset": 0,
- "projected": 25
}, - {
- "threshold": 20,
- "offset": -10,
- "projected": 22.5
}
]
}
Get scale grid and projection for component (batch)
Batch scale grid retrieval and projection for a particular component type. The scale and the base price can be overridden separately for each item in the batch if required.
The response header pros-batch-errors
indicates the number of elements with errors in the response body. This header is only returned when the status code is 200 and errors are present in the response, otherwise the header is omitted.
Authorizations:
path Parameters
component required | string |
Request Body schema: application/json
Array of objects (ScaleRequestDTO) |
Responses
Request samples
- Payload
POST /api/scale/name/ScaledType/batch
{- "scales": [
- {
- "key": [
- {
- "dimName": "LARGE_CITIES",
- "nodeName": "US-TX-Houston"
}
], - "baseValue": 25,
- "currency": "USD",
- "on": "2020-04-01T00:00:00"
}, - {
- "key": [
- {
- "dimName": "LARGE_CITIES",
- "nodeName": "US-TX-Los Angeles"
}
], - "baseValue": 25,
- "currency": "USD",
- "on": "2020-04-01T00:00:00"
}, - {
- "key": [
- {
- "dimName": "INVALID",
- "nodeName": "US-CA-Los Angeles"
}
], - "baseValue": 25,
- "currency": "USD",
- "on": "2020-04-01T00:00:00"
}
]
}
Response samples
- 200
Example 1
{- "scales": [
- {
- "scale": {
- "type": "QUANTITY",
- "offsetType": "PERCENT",
- "calcType": "CUMULATIVE",
- "currency": "USD",
- "unit": "kg",
- "scale": [
- {
- "threshold": 0,
- "offset": 10,
- "projected": 27.5
}, - {
- "threshold": 10,
- "offset": 0,
- "projected": 25
}, - {
- "threshold": 20,
- "offset": -10,
- "projected": 22.5
}
], - "baseValue": 25
}
}, - {
- "error": {
- "errorID": "EVAL-013104",
- "errorMessage": "Sorry, node \"US-TX-Los Angeles\" does not exist in dimension \"LARGE_CITIES\".",
- "resourceType": "value",
- "requestID": "EVAL-744729f8344a38bb"
}
}, - {
- "error": {
- "errorID": "EVAL-013103",
- "errorMessage": "Sorry, dimension \"INVALID\" does not exist.",
- "resourceType": "value",
- "requestID": "EVAL-744729f8344a38bb"
}
}
]
}
A data structure that describes the parameters supplied for evaluating a price method. These parameters include dimensions, element overrides, element specifications, dates, and the item context.
Array of objects (ItemKeyDTO) Identifies the item by its dimensionality. The set of item keys must not include more than one entry that references any single dimension. | |
on | string Overrides the evaluation date for this specific item in the batch. If not specified, the item's evaluation date is derived from the on query parameter of the batch request (when specified) or its default. Date-time values must be a valid ISO 8601 string consisting of a fully specified date and time component with second precision. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. |
serviceOn | string Overrides the service date for this specific item in the batch. If not specified, the item's service date is derived from the serviceOn query parameter of the POST method/name/{name}/values/batch request (when specified) or its default. Date-time values must be a valid ISO 8601 string consisting of a fully specified date and time component with second precision. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. |
Array of objects (ElementSpecDTO) Element specifications included in this list will be included, if not already present, in the result for this item in addition to the default set of elements or those specified by the elementName matrix parameters of the batch request. Currency and/or unit conversions requested at this level override, for this item only, the element's normal currency/unit and any previous conversion specification provided in the request. When conversion fails:
The | |
Array of objects (ElementSpecDTO) Element specifications included in this list will override and replace, for this item only, the normally computed value for those elements. These overrides supercede any override values specified by a corresponding $elementName query parameter in the batch request, if any. | |
Array of objects (ScaleOverrideDTO) Scale specifications included in this list will override and replace, for this item only, the normally computed value for those scales. | |
object (ItemContextDTO) A container which holds the item-level metadata for a batch item. Fields within the item context do not alter the evaluation but are made available to the evaluation and specific functions may consume them. |
{- "key": [
- {
- "dimName": "string",
- "nodeName": "string"
}
], - "on": "string",
- "serviceOn": "string",
- "elements": [
- {
- "name": "string",
- "value": "string",
- "currency": "string",
- "unit": "string"
}
], - "overrides": [
- {
- "name": "string",
- "value": "string",
- "currency": "string",
- "unit": "string"
}
], - "scales": [
- {
- "elementName": "string",
- "baseValue": 0,
- "currency": "string",
- "structure": {
- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "units": "string",
- "currency": "string",
- "offsetCurrency": "string",
- "scale": [
- {
- "threshold": 0,
- "offset": 0
}
]
}
}
], - "itemContext": {
- "currency": "string",
- "unit": "string"
}
}
object (BatchItemDTO) A data structure that describes the parameters supplied for evaluating a price method. These parameters include dimensions, element overrides, element specifications, dates, and the item context. | |
Array of objects (BatchItemDTO) List of 1-100 individual items to be evaluated in this batch request. Each item in this list is evaluated independently of the other items in the list. The shared field in the batch request can be used to specify common dimensions, overrides, and elements that are shared between the items in the batch. |
{- "shared": {
- "key": [
- {
- "dimName": "string",
- "nodeName": "string"
}
], - "on": "string",
- "serviceOn": "string",
- "elements": [
- {
- "name": "string",
- "value": "string",
- "currency": "string",
- "unit": "string"
}
], - "overrides": [
- {
- "name": "string",
- "value": "string",
- "currency": "string",
- "unit": "string"
}
], - "scales": [
- {
- "elementName": "string",
- "baseValue": 0,
- "currency": "string",
- "structure": {
- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "units": "string",
- "currency": "string",
- "offsetCurrency": "string",
- "scale": [
- {
- "threshold": 0,
- "offset": 0
}
]
}
}
], - "itemContext": {
- "currency": "string",
- "unit": "string"
}
}, - "batchItems": [
- {
- "key": [
- {
- "dimName": "string",
- "nodeName": "string"
}
], - "on": "string",
- "serviceOn": "string",
- "elements": [
- {
- "name": "string",
- "value": "string",
- "currency": "string",
- "unit": "string"
}
], - "overrides": [
- {
- "name": "string",
- "value": "string",
- "currency": "string",
- "unit": "string"
}
], - "scales": [
- {
- "elementName": "string",
- "baseValue": 0,
- "currency": "string",
- "structure": {
- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "units": "string",
- "currency": "string",
- "offsetCurrency": "string",
- "scale": [
- {
- "threshold": 0,
- "offset": 0
}
]
}
}
], - "itemContext": {
- "currency": "string",
- "unit": "string"
}
}
]
}
Array of objects (RequestResultDTO) |
{- "itemResults": [
- {
- "elements": [
- {
- "name": "string",
- "type": "string",
- "value": "string",
- "currency": "string",
- "unit": "string",
- "errorID": "string",
- "errorMessage": "string",
- "scaleResult": {
- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "currency": "string",
- "unit": "string",
- "scale": [
- {
- "offset": 0,
- "threshold": 0,
- "projected": 0
}
], - "baseValue": 0,
- "threshold": 0
}
}
], - "error": "string"
}
]
}
Array of objects (ScaleRequestDTO) |
{- "scales": [
- {
- "key": [
- {
- "nodeId": "959356e3-6168-4a92-b4a5-b9d462be6177",
- "nodeName": "string",
- "aspectId": "72fb6181-08ae-49b1-9ed3-9ccf5b4a403c",
- "aspectName": "string",
- "dimId": "fedd024d-7d19-4dac-8fb1-e8618c7ce568",
- "dimName": "string"
}
], - "currency": "string",
- "unit": "string",
- "on": "2019-08-24T14:15:22Z",
- "baseValue": 0,
- "scale": {
- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "units": "string",
- "currency": "string",
- "offsetCurrency": "string",
- "scale": [
- {
- "threshold": 0,
- "offset": 0
}
]
}
}
]
}
Array of objects (ScaleStructureResponseDTO) |
{- "scales": [
- {
- "scale": {
- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "currency": "string",
- "unit": "string",
- "scale": [
- {
- "offset": 0,
- "threshold": 0,
- "projected": 0
}
], - "baseValue": 0,
- "threshold": 0
}, - "error": {
- "errorID": "string",
- "errorMessage": "string",
- "resourceType": "string",
- "resourceID": "string",
- "requestID": "string",
- "details": [
- {
- "fieldID": "string",
- "fieldValue": "string",
- "errorID": "string",
- "errorMessage": "string",
- "fieldKey": "string"
}
]
}
}
]
}
Element specifications included in this list will override and replace, for this item only, the normally computed value for those elements. These overrides supercede any override values specified by a corresponding $elementName query parameter in the batch request, if any.
name | string The name used to identify this element within its method. The name must be unique within the method. Leading and trailing white spaces are trimmed automatically. |
value | string The element value. Ignored if this is not an override |
currency | string If an override value is defined, this field specifies the currency code associated with that value; leave blank or undefined to indicate no currency. Otherwise, this field requests that the named element's computed value be converted in the response to the currency code specified by this field. In this second case, a blank or undefined value indicates no conversion will be performed and the computed currency, if any, will be returned as is. |
unit | string If an override value is defined, this field specifies the unit code associated with that value; leave blank or undefined to indicate no unit. Otherwise, this field requests that the named element's computed value be converted in the response to the unit code specified by this field. In this second case, a blank or undefined value indicates no conversion will be performed and the computed unit, if any, will be returned as is. |
{- "name": "string",
- "value": "string",
- "currency": "string",
- "unit": "string"
}
A container which holds the item-level metadata for a batch item. Fields within the item context do not alter the evaluation but are made available to the evaluation and specific functions may consume them.
currency | string |
unit | string |
{- "currency": "string",
- "unit": "string"
}
Identifies the item by its dimensionality. The set of item keys must not include more than one entry that references any single dimension.
dimName | string |
nodeName | string |
{- "dimName": "string",
- "nodeName": "string"
}
Lists the individual result values for each requested element of a single item.
name | string Name of the element. |
type | string Data value type of the element. Valid values are BOOLEAN, CURRENCY, DATETIME, DECIMAL, STRING, UNIT. |
value | string Primary value of the element. The format of the value varies by type. Decimal values must be represented in machine-readable decimal format, using an ASCII full stop or period(.) as the decimal separator and no grouping separators. Numeric values with a currency and/or unit are specified using the additional currency and/or unit fields, respectively. Date-time values must be a valid ISO 8601 string consisting of a fully specified date and time component with second precision. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. example values:
|
currency | string Currency code associated with the value, if applicable. [examples: USD, EUR] |
unit | string Unit code associated with the value, if applicable. [examples: LB, kg] |
errorID | string System defined error ID that represents a specific type of error. When present, indicates that the value for this element could not be computed for the reason identified by this field. In this case, the value field will not be present. [example: FORMULA-001002] |
errorMessage | string When present, indicates that the value for this element could not be computed for the reason given by this field. In this case, the value field will not be present. [example: divide by zero] |
object (ProjectedScaleStructureDTO) |
{- "name": "string",
- "type": "string",
- "value": "string",
- "currency": "string",
- "unit": "string",
- "errorID": "string",
- "errorMessage": "string",
- "scaleResult": {
- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "currency": "string",
- "unit": "string",
- "scale": [
- {
- "offset": 0,
- "threshold": 0,
- "projected": 0
}
], - "baseValue": 0,
- "threshold": 0
}
}
Array of objects (RequestElementResultDTO) Lists the individual result values for each requested element of a single item. | |
error | string When present, provides the reason why evaluation failed for the entire item. |
{- "elements": [
- {
- "name": "string",
- "type": "string",
- "value": "string",
- "currency": "string",
- "unit": "string",
- "errorID": "string",
- "errorMessage": "string",
- "scaleResult": {
- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "currency": "string",
- "unit": "string",
- "scale": [
- {
- "offset": 0,
- "threshold": 0,
- "projected": 0
}
], - "baseValue": 0,
- "threshold": 0
}
}
], - "error": "string"
}
Class containing element information.
name | string The name used to identify this element within its method. The name must be unique within the method. Leading and trailing white spaces are trimmed automatically. |
description | string The description for this element within its method. Leading and trailing whitespaces are trimmed automatically. Between 1-4096 characters. |
type | string The data type of this element, which must be one of the supported types listed below. The formula, when evaluated, must generate a value of this type or an error will occur. Similarly, override values must be compatible with this data type, when used in an evaluation request. valid values:
|
formula | string The formula that computes the value of this element. [examples: "1.3 + 2.4 + 3.4", "LOOKUP("ListPrice", "Surcharge", EFFECTIVE_DATE())"] |
internal | boolean When true, this element will not appear in an evaluation response by default and must be explicitly requested. This is useful when an element represents an intermediate value in the calculation but is not normally needed by external systems. |
{- "name": "string",
- "description": "string",
- "type": "string",
- "formula": "string",
- "internal": true
}
Contains information used to identify a method.
id | string <uuid> The system-defined internal object ID (in UUID canonical string format). [example: 0a4fa51c-c040-46a0-a3d0-63ca0e9ae699] |
name | string The name used to identify the method to external systems. Between 1 and 64 characters. |
effectiveStartDate | string The date and time when this method first becomes available for evaluation. Before this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the value defaults to the local date and time on the server receiving the request at the time the request is processed. |
effectiveEndDate | string The last date and time at which this method is available for evaluation. After this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the method remains effective indefinitely until it is superseded by a new version that becomes effective at a later time. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "effectiveStartDate": "string",
- "effectiveEndDate": "string"
}
Class representing method information.
id | string <uuid> The system-defined internal object ID (in UUID canonical string format). [example: 0a4fa51c-c040-46a0-a3d0-63ca0e9ae699] |
name | string The name used to identify the method to external systems. Between 1 and 64 characters. |
effectiveStart | string The date and time when this method first becomes available for evaluation. Before this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the value defaults to the local date and time on the server receiving the request at the time the request is processed. |
effectiveEnd | string The last date and time at which this method is available for evaluation. After this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the method remains effective indefinitely until it is superseded by a new version that becomes effective at a later time. |
Array of objects (ElementDTO) List of one or more elements and their formulas in the order that will be evaluated by this method. An element whose value is used by other elements must be listed before all of those elements that depend upon it. It is an error if all elements are defined with internal equal to true. | |
description | string The description used to describe the method to external systems. Between 1 and 4000 characters. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "effectiveStart": "string",
- "effectiveEnd": "string",
- "elements": [
- {
- "name": "string",
- "description": "string",
- "type": "string",
- "formula": "string",
- "internal": true
}
], - "description": "string"
}
id | string <uuid> The system-defined internal object ID (in UUID canonical string format). [example: 0a4fa51c-c040-46a0-a3d0-63ca0e9ae699] |
name | string The name used to identify the method to external systems. Between 1 and 64 characters. |
Array of objects (MethodVersionDTO) List of one or more versions of the method along with the version's effective start and end date. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "history": [
- {
- "version": "string",
- "effectiveStart": "string",
- "effectiveEnd": "string"
}
]
}
Represents a single 'page' containing a list of method's id and name pair.
object (PageMetadataDTO) | |
required | Array of objects (IdMethodDetailsDTO) |
{- "meta": {
- "next": {
- "token": "string",
- "pageSize": 0
}
}, - "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "effectiveStartDate": "string",
- "effectiveEndDate": "string"
}
]
}
List of one or more versions of the method along with the version's effective start and end date.
version | string The system-defined identifier for an instance of a particular method. |
effectiveStart | string The date and time when this method first becomes available for evaluation. Before this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the value defaults to the local date and time on the server receiving the request at the time the request is processed. |
effectiveEnd | string The last date and time at which this method is available for evaluation. After this time, and unless a different version of the method is available with an effective time range covering the time specified in that request, no evaluation results will be computed. The value must be a valid ISO 8601 string consisting of a fully specified date and an optional time component. If the time component is given, it must include values for hours, minutes, and seconds. A missing time component will be interpreted as midnight (00:00:00) on the given date. Time zones, sub-second precision, and durations in the ISO standard fields are not supported. When omitted, the method remains effective indefinitely until it is superseded by a new version that becomes effective at a later time. |
{- "version": "string",
- "effectiveStart": "string",
- "effectiveEnd": "string"
}
object (PageNavigationMetadataDTO) Represents meta data for navigating to next or previous page. |
{- "next": {
- "token": "string",
- "pageSize": 0
}
}
The scale breaks contained in this scale structure as a list of ProjectedScaleBreak structures. Contains 0-100 elements.
offset | number |
threshold | number |
projected | number |
{- "offset": 0,
- "threshold": 0,
- "projected": 0
}
type | string Enum: "QUANTITY" "VOLUME" "REVENUE" "UNKNOWN" The type of scale threshold contained in the scale breaks in this structure. There are three valid scale threshold types available, QUANTITY (default), VOLUME, and REVENUE. The QUANTITY scale threshold type specifies that the threshold value in the associated scale breaks is a scalar value that will be compared against the supplied threshold value to determine the offsets to apply to the base value in order to obtain the scaled value. The threshold value to be compared should also be a scalar value. The VOLUME scale threshold type specifies that the threshold value in the associated scale breaks is a value with units that will be compared against the supplied threshold value to determine the offsets to apply to the base value in order to obtain the scaled value. The REVENUE scale threshold type specifies that the threshold value in the associated scale breaks is a value with a currency that will be compared against the supplied threshold value to determine the offsets to apply to the base value in order to obtain the scaled value. valid values:
|
offsetType | string Enum: "NUMERIC" "PERCENT" "UNKNOWN" The type of scale offset contained in the scale breaks in this structure. There are two valid scale offset types available, NUMERIC (default) and PERCENT. The NUMERIC offset type specifies that the offset in the associated scale breaks is a numeric value that will be added directly to the base value in order to obtain the scaled value. The PERCENT offset type specifies that the offset in the associated scale breaks is a numeric percentage with scale base 100, that will be multiplied by the base value in order to obtain the scaled value. The offset will be treated as a scalar value. valid values:
|
calcType | string Enum: "CUMULATIVE" "GRADUATED" "UNKNOWN" The type of calculation used to compute scaled values with this structure. There are two valid calculation types available, CUMULATIVE (default) and GRADUATED. The CUMULATIVE calculation type specifies that the scale break that has a threshold value less than or equal to the specified threshold value is the only one used in the calculation of the scaled value. The GRADUATED calculation type specifies that all scale breaks that have a threshold value less than or equal to the specified threshold value are used to compute the scaled value. valid values:
|
currency | string The currency used for any values in this structure, depending on the metadata of the scale and the presence of the base value. |
unit | string The units used for any values in this structure, depending on the metadata of the scale and the presence of the threshold value. |
Array of objects (ProjectedScaleBreakDTO) The scale breaks contained in this scale structure as a list of ProjectedScaleBreak structures. Contains 0-100 elements. | |
baseValue | number The base value used to calculate any projections in the ProjectedScaleBreak instances in this scale. The currency of the baseValue is stored in the ProjectedScaleStructure.currency field of this structure. |
threshold | number The threshold used to compute the scaled price with this structure. This field is currently only populated when this structure is returned from the result of an evaluation. |
{- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "currency": "string",
- "unit": "string",
- "scale": [
- {
- "offset": 0,
- "threshold": 0,
- "projected": 0
}
], - "baseValue": 0,
- "threshold": 0
}
type | string Enum: "QUANTITY" "VOLUME" "REVENUE" "UNKNOWN" |
offsetType | string Enum: "NUMERIC" "PERCENT" "UNKNOWN" |
calcType | string Enum: "CUMULATIVE" "GRADUATED" "UNKNOWN" |
{- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE"
}
Scale specifications included in this list will override and replace, for this item only, the normally computed value for those scales.
elementName | string |
baseValue | number |
currency | string |
object (ScaleStructureDTO) An optional override of the scale used to compute projections. If not provided, the scale in the record will be used, if it exists. |
{- "elementName": "string",
- "baseValue": 0,
- "currency": "string",
- "structure": {
- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "units": "string",
- "currency": "string",
- "offsetCurrency": "string",
- "scale": [
- {
- "threshold": 0,
- "offset": 0
}
]
}
}
Array of objects (DimensionNodeReferenceDTO) The list of dimension nodes to use to look up the price record with a scale. | |
currency | string Currency code associated with the value, if applicable. [examples: USD, EUR] |
unit | string Unit code associated with the value, if applicable. [examples: LB, kg] |
on | string <date-time> The optional date/time to use to search for the scale structure information. This defaults to the time of the request if not specified. |
baseValue | number An optional override of the base value to use when projecting the scale. If not provided, the base value in the record will be used for projections, if it exists. |
object (ScaleStructureDTO) An optional override of the scale used to compute projections. If not provided, the scale in the record will be used, if it exists. |
{- "key": [
- {
- "nodeId": "959356e3-6168-4a92-b4a5-b9d462be6177",
- "nodeName": "string",
- "aspectId": "72fb6181-08ae-49b1-9ed3-9ccf5b4a403c",
- "aspectName": "string",
- "dimId": "fedd024d-7d19-4dac-8fb1-e8618c7ce568",
- "dimName": "string"
}
], - "currency": "string",
- "unit": "string",
- "on": "2019-08-24T14:15:22Z",
- "baseValue": 0,
- "scale": {
- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "units": "string",
- "currency": "string",
- "offsetCurrency": "string",
- "scale": [
- {
- "threshold": 0,
- "offset": 0
}
]
}
}
An optional override of the scale used to compute projections. If not provided, the scale in the record will be used, if it exists.
type | string Enum: "QUANTITY" "VOLUME" "REVENUE" "UNKNOWN" |
offsetType | string Enum: "NUMERIC" "PERCENT" "UNKNOWN" |
calcType | string Enum: "CUMULATIVE" "GRADUATED" "UNKNOWN" |
units | string |
currency | string |
offsetCurrency | string |
Array of objects (ScaleBreakDTO) |
{- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "units": "string",
- "currency": "string",
- "offsetCurrency": "string",
- "scale": [
- {
- "threshold": 0,
- "offset": 0
}
]
}
object (ProjectedScaleStructureDTO) | |
object (ProsErrorData) Class to hold the error data to be sent back to the caller as an error response. |
{- "scale": {
- "type": "QUANTITY",
- "offsetType": "NUMERIC",
- "calcType": "CUMULATIVE",
- "currency": "string",
- "unit": "string",
- "scale": [
- {
- "offset": 0,
- "threshold": 0,
- "projected": 0
}
], - "baseValue": 0,
- "threshold": 0
}, - "error": {
- "errorID": "string",
- "errorMessage": "string",
- "resourceType": "string",
- "resourceID": "string",
- "requestID": "string",
- "details": [
- {
- "fieldID": "string",
- "fieldValue": "string",
- "errorID": "string",
- "errorMessage": "string",
- "fieldKey": "string"
}
]
}
}
Class containing credential information.
name | string The name of the credential. Required unless implied by context (e.g., updating a credential where the name is present in the URI). Between 1-128 characters. |
value | string The value of the credential, i.e., the secret. This value will be obfuscated in credential instances that are returned from calls to the service. |
updatedBy | string Recorded user who last updated the credential value stored in the system. |
updatedAt | string The time when this credential was last updated in the system, represented as a string in ISO-8601 format. |
{- "name": "string",
- "value": "string",
- "updatedBy": "string",
- "updatedAt": "string"
}
Represents evaluation iteration limits stored for a given tenant.
requestLimit | integer <int64> The value of the request iteration limit configured for a given tenant when evaluating a price method. |
functionLimit | integer <int64> The value of the function iteration limit configured for a given tenant when evaluating a price method. |
{- "requestLimit": 0,
- "functionLimit": 0
}
Class containing information for the post-evaluation conversion configuration.
onError | string Determines the behavior when an error is encountered during conversion. Valid values are 'warn' and 'fail'. |
object (PostConversionEnabledConfigDTO) Class containing information on which conversions are applied. |
{- "onError": "string",
- "enabled": {
- "curQuery": true,
- "unitQuery": true,
- "matrix": true,
- "bodyItem": true
}
}
Class containing information on which conversions are applied.
curQuery | boolean Determines whether conversions are applied when queries are made with the |
unitQuery | boolean Determines whether conversions are applied when queries are made with the |
matrix | boolean Determines whether conversions are applied when queries are made with |
bodyItem | boolean Determines whether conversions are applied when batch queries are made. |
{- "curQuery": true,
- "unitQuery": true,
- "matrix": true,
- "bodyItem": true
}
Class containing preprocessor configuration information.
methodName | string Name of the method to which this preprocessor is associated. |
Array of objects (PreprocessorStageDTO) List of preprocessor stages that are to be applied to requests, in order. |
{- "methodName": "string",
- "stages": [
- {
- "type": "string",
- "request": "string",
- "element": "string",
- "service": "string"
}
]
}
A single stage in a preprocessor pipeline. Stages can consist of multiple stage types, each of which have different effects and different requirements. Stages of type transform apply a script to transform an input BatchRequest into a modified, but still valid, output BatchRequest. The output BatchRequest is used as input to the next pipeline stage (or as the final output of the pipeline). Stage type external-service is deprecated as of version 0.30 and will be removed in the future. Stages of type external-service apply a script to produce an external-service request body from the input BatchRequest. The resulting external-service request body is then used to automatically make an external-service call, and the result of that call is automatically injected into the named method element as an override. Note that the external-service call is a side-effect of this pipeline stage; the original BatchRequest that is the input to this stage is passed through and returned as the output of this stage, unmodified, to be used as input to the next stage of the pipeline (or as the final output of the pipeline).
type | string Identifies type of preprocessor, either 'transform' or 'external'. |
request | string A valid JSLT script defining the transformation to be applied at the given stage of the pipeline. |
element | string The method element whose value should be overridden by the result of an external-service call. Valid only for external stage type. |
service | string Reference to the name of an external-service configuration for the external-service call. Valid only for external stage type. |
{- "type": "string",
- "request": "string",
- "element": "string",
- "service": "string"
}