Product and product line modifiers
Modifiers can exist at the product and product line level, and can also apply to line coverables. They are created as part of product installation and configuration, so there are no endpoints to create or update product-level or line-level modifiers.
Note that product-level modifiers are not copied over when the product is attached to a multi-line product.
For more information, see Modifiers.
Product modifier endpoints
Use the following endpoints to retrieve product and product line modifiers:
- GET
/productdefinition/v1/products/{productId}/modifiers
- GET
/productdefinition/v1/lines/{lineId}/modifiers
- GET
/productdefinition/v1/lines/{lineId}/coverables/{coverableId}/modifiers
Not all the modifier functionality available through these endpoints is currently supported in Advanced Product Designer (APD). For example, APD does not support creation of modifiers under coverables, or split modifiers. However, products built through other means might have these modifiers, and they can be retrieved with these endpoints. For more information see APD Rate modifiers.
Responses
Endpoint responses include a variety of information about the modifiers, including the modifier type:
"modifierDataType": {
"code": "boolean",
"name": "boolean"
},
Modifiers can be of type Boolean, date, rate, or typekey. If the modifier
is a typekey
, the response will also include the name of the
typelist:
"modifierDataType": {
"code": "typekey",
"name": "typekey"
},
…
"typeList": "ProfessionalDiscount"
For modifiers of type rate
, rate factors are included in the
response:
"modifierDataType": {
"code": "rate",
"name": "#notnull"
},
…
"rateFactors": [
{
"defaultMaximum": "0.05",
"defaultMinimum": "-0.05",
"id": "z0hi6ldfeujdpddo0f1hjou9r49",
"name": "#notnull",
"priority": 1,
"rateFactorType": {
"code": "Building",
"name": "#notnull"
}
},
The type is used to specify a value when the modifier is added to a job. See Line-level and object-level modifiers for more information.
If a modifier is a scheduled modifier, a value of true
will be returned in the scheduledRate
property:
"scheduleRate": true
See Rate modifiers for more information on scheduled and unscheduled rate modifiers.
Examples
This first example retrieves modifiers that apply to all lines for the CommercialPackage product.
Command
GET /productdefinition/v1/products/CommercialPackage/modifiers
Response
{
"data": [
{
"attributes": {
"defaultMaximum": "0.25",
"defaultMinimum": "-0.25",
"description": "#notnull",
"descriptionKey": "Product_CommercialPackage.Modifier_CPPIRPM.Description",
"displayJustification": true,
"displayRange": true,
"displayValueFinal": true,
"id": "CPPIRPM",
"modifierDataType": {
"code": "rate",
"name": "#notnull"
},
"name": "#notnull",
"nameKey": "Product_CommercialPackage.Modifier_CPPIRPM.Name",
"priority": -1,
"rateFactors": [
{
"defaultMaximum": "0.05",
"defaultMinimum": "-0.05",
"id": "z0hi6ldfeujdpddo0f1hjou9r49",
"name": "#notnull",
"priority": 1,
"rateFactorType": {
"code": "Building",
"name": "#notnull"
}
},
{
"defaultMaximum": "0.03",
"defaultMinimum": "-0.03",
"id": "zo8h89djdetef2d1nfvvjst1r3a",
"name": "#notnull",
"priority": 2,
"rateFactorType": {
"code": "Employees",
"name": "#notnull"
}
},
{
"defaultMaximum": "0.07",
"defaultMinimum": "-0.07",
"id": "zsrha43mufo20ahpqut8gs8mk4a",
"name": "#notnull",
"priority": 3,
"rateFactorType": {
"code": "Location",
"name": "#notnull"
}
},
{
"defaultMaximum": "0.08",
"defaultMinimum": "-0.08",
"id": "zuch6p28k1rjbf4n29m29fqbg69",
"name": "#notnull",
"priority": 4,
"rateFactorType": {
"code": "Management",
"name": "#notnull"
}
},
{
"defaultMaximum": "0.05",
"defaultMinimum": "-0.05",
"id": "zo0i2mgj33jnberjeomo2fcdd3a",
"name": "#notnull",
"priority": 5,
"rateFactorType": {
"code": "Premises",
"name": "#notnull"
}
},
{
"defaultMaximum": "0.02",
"defaultMinimum": "-0.02",
"id": "z91j6pugcp57188kedd1ko0e7d8",
"name": "#notnull",
"priority": 6,
"rateFactorType": {
"code": "Protection",
"name": "#notnull"
}
}
],
"scheduleRate": true
}
},
…
To retrieve the modifiers that apply to the HOPLine (which is a line under the HOPHomeowners product in the base configuration), use the following command:
Command
GET /productdefinition/v1/lines/HOPLine/modifiers
Response
{
"data": [
{
"attributes": {
"description": "",
"descriptionKey": "PolicyLine_HOPLine.Modifier_HOPMultiPolicy.Description",
"id": "HOPMultiPolicy",
"modifierDataType": {
"code": "boolean",
"name": "boolean"
},
"name": "Multi Policy",
"nameKey": "PolicyLine_HOPLine.Modifier_HOPMultiPolicy.Name",
"priority": 100,
"referenceDateByType": {
"code": "PolicyTerm",
"name": "Policy Term"
}
}
},
…
],
You can also retrieve the modifiers for the coverables on a line. The following example retrieves the modifiers for the HOPDwelling coverable on the HOPLine LOB.
Command
GET /productdefinition/v1/lines/HOPLine/coverables/HOPDwelling/modifiers
Response
{
"data": [
{
"attributes": {
"description": "",
"descriptionKey": "PolicyLine_HOPLine.Modifier_HOPMannedSecurity.Description",
"id": "HOPMannedSecurity",
"modifierDataType": {
"code": "boolean",
"name": "boolean"
},
"name": "Manned Security",
"nameKey": "PolicyLine_HOPLine.Modifier_HOPMannedSecurity.Name",
"priority": 200,
"referenceDateByType": {
"code": "PolicyTerm",
"name": "Policy Term"
}
}
},
…