Policy hold rules
Policy hold rules identify the types of policies that are being placed on hold. Policy
hold rules specify the Line of Business (policyLineType
), the Policy
Transaction Type (jobType
), the Transaction Date Type
(jobDateType
), and Coverage (coveragePattern
).
The following endpoints are available for policy hold rules:
- GET
/admin/v1/policy-holds/{policyHoldId}/rules
- GET
/admin/v1/policy-holds/{policyHoldId}/rules/{policyHoldRuleId}
- POST
/admin/v1/policy-holds/{policyHoldId}/rules
- PATCH
/admin/v1/policy-holds/{policyHoldId}/rules/{policyHoldRuleId}
- DELETE
/admin/v1/policy-holds/{policyHoldId}/rules/{policyHoldRuleId}
Querying for policy hold rules
To retrieve all the rules for a policy hold, use the following endpoint:
GET /admin/v1/policy-holds/{policyHoldId}/rules
For example:
GET /admin/v1/policy-holds/pc:101/rules
{
"count": 2,
"data": [
{
"attributes": {
"id": "pc:10001",
"jobDateType": {
"code": "Effective",
"name": "Effective Date"
},
"jobType": {
"code": "Renewal",
"name": "Renewal"
},
"policyLineType": {
"code": "PersonalAutoLine",
"name": "Personal Auto"
}
},
...
},
{
"attributes": {
"coveragePattern": {
"displayName": "Underinsured Motorist - Bodily Injury",
"id": "PAUIMBICov"
},
"id": "pc:10002",
"jobDateType": {
"code": "Effective",
"name": "Effective Date"
},
"jobType": {
"code": "Issuance",
"name": "Issuance"
},
"policyLineType": {
"code": "PersonalAutoLine",
"name": "Personal Auto"
}
},
...
}
To retrieve a single policy hold rule, include the policy hold rule ID.
GET /admin/v1/policy-holds/{policyHoldId}/rules/{policyHoldRuleId}
For example:
GET /admin/v1/policy-holds/pc:101/rules/pc:10002
{
"count": 1,
"data": [
{
"attributes": {
"coveragePattern": {
"displayName": "Underinsured Motorist - Bodily Injury",
"id": "PAUIMBICov"
},
"id": "pc:10002",
"jobDateType": {
"code": "Effective",
"name": "Effective Date"
},
"jobType": {
"code": "Issuance",
"name": "Issuance"
},
"policyLineType": {
"code": "PersonalAutoLine",
"name": "Personal Auto"
}
},
...
}
Adding policy hold rules
You can add a new policy hold rule with the following endpoint:
POST /admin/v1/policy-holds/{policyHoldId}/rules
The following fields are available when creating a policy hold rule:
Field | Description | Required? |
---|---|---|
jobDateType |
A typekey containing the transaction date type. You can retrieve the available values with the following command:
The following fields are available in the base configuration:
|
Yes |
jobType |
A typekey containing the policy transaction type. Possible values in the base configuration:
|
Yes |
policyLineType |
A typekey containing the line of business. Use the following command to retrieve the available values:
Possible values in the base configuration:
|
Yes |
coveragePattern |
The type of coverage the rule applies to. See Adding policy hold rule coverages for more information. | No |
The following is an example of creating a new policy hold rule.
Command
POST /admin/v1/policy-holds/pc:101/rules
Request body
{
"data": {
"attributes": {
"jobDateType": {
"code": "Reference"
},
"jobType": {
"code": "Rewrite"
},
"policyLineType": {
"code": "PersonalAutoLine"
}
}
}
}
Adding policy hold rule coverages
In addition to the attributes included in the preceding example, you can add a type of coverage to a rule. To add a coverage, you need to include the coverage ID when you create or modify the rule. Retrieving the coverage ID requires you to make a series of queries to typelists.
For example, if your policyLineType
is
PersonalAutoLine
, you can retrieve available coverages by
running the following:
GET productdefinition/v1/lines/PersonalAutoLine/coverages?fields=id,name,clauseType
{
"data": [
{
"attributes": {
"clauseType": "exclusion",
"id": "PAExcludeFedEmployeeUse",
"name": "Exclude Federal Employee Use"
}
},
{
"attributes": {
"clauseType": "coverage",
"id": "PALiabilityCov",
"name": "Liability - Bodily Injury and Property Damage"
}
},
{
"attributes": {
"clauseType": "coverage",
"id": "PAMedPayCov",
"name": "Medical Payments"
}
},
...
The coverages you can use in your rule have a clauseType
of
coverage
.
You can then retrieve all coverables for that line type, and then retrieve the coverages for each coverable.
Retrieve the coverables for PersonalAutoLine:
GET productdefinition/v1/lines/PersonalAutoLine/coverables?fields=id
{
"data": [
{
"attributes": {
"id": "PersonalVehicle"
}
}
...
Retrieve the coverages for the PersonalVehicle coverable:
GET productdefinition/v1/lines/PersonalAutoLine/coverables/PersonalVehicle/coverages?fields=id,name,clauseType
{
"count": 7,
"data": [
{
"attributes": {
"clauseType": "coverage",
"id": "PAComprehensiveCov",
"name": "Comprehensive"
}
},
{
"attributes": {
"clauseType": "coverage",
"id": "PACollisionCov",
"name": "Collision"
}
},
...
After finding the coverage you want to add to your policy rule, you can include the coverage ID when you add or update your rule. In this example, collision coverage is included with the rule.
Command
POST /admin/v1/policy-holds/pc:101/rules
Request body with coveragePattern
{
"data": {
"attributes": {
"jobDateType": {
"code": "Effective"
},
"jobType": {
"code": "Issuance"
},
"policyLineType": {
"code": "PersonalAutoLine"
},
"coveragePattern": {
"code": "PACollisionCov"
}
}
}
}
Modifying policy hold rules
Use the following endpoint to modify policy hold rules:
PATCH /admin/v1/policy-holds/{policyHoldId}/rules/{policyHoldRuleId}
All fields in the preceding table available for adding policy hold rules are also available for updating.
Command
PATCH /admin/v1/policy-holds/pc:101/rules/pc:10001
Request body
{
"data": {
"attributes": {
"jobType": {
"code": "Renewal"
}
}
}
}
Deleting policy hold rules
Use the DELETE endpoint to delete a rule from a policy hold.
DELETE
/admin/v1/policy-holds/{policyHoldId}/rules/{policyHoldRuleId}
For example:
DELETE /admin/v1/policy-holds/pc:101/rules/pc:10001