Root Insurance · Schema
policy
Policies are issued from applications, and represent binding insurance agreements. Parameters stored on the policy can be referenced in custom notifications, policy documents, data exports and external integrations.
See the [issuing policies](https://docs.rootplatform.com/docs/policy-issuing) guide and the [policy issue hook](https://docs.rootplatform.com/docs/policy-issue-hook) guide for more details.
InsuranceAuto InsuranceTelematicsEmbedded InsurancePolicy AdministrationClaimsUsage-Based InsuranceInsurTech
Properties
| Name | Type | Description |
|---|---|---|
| policy_id | string | Must be a UUID. Object ID of the policy. |
| policy_number | string | A shorter, human-readable policy identifier. This typically used in policy documents and customer notifications for ease of reference. |
| status | object | |
| policyholder_id | string | Must be a UUID. The system identifier of the policy's policyholder. |
| package_name | string | The insurance package name. |
| sum_assured | integer | The amount, in cents, of the maximum value insured. |
| monthly_premium | integer | The total monthly premium, in cents, that will be billed to the policyholder. |
| billing_amount | integer | The amount, in cents, that will be billed on the next billing run. |
| balance | integer | The amount, in cents, that is owed on the policy. If the policyholder makes an adhoc payment to the policy, the amount is credited to this balance. If the policyholder defaults on a payment, it is sub |
| billing_day | integernull | `null` is allowed. The day of month on which the policy is billed. Should be between 1 and 31, or `null`. If it falls on a day that does not exist in the month (for example, 31 in February) the policy |
| billing_frequency | string | The frequency at which the policy is billed. One of [`monthly`, `yearly`, `once_off`]. See the [billing settings](https://docs.rootplatform.com/docs/billing-settings#billing-frequency) guide for more |
| next_billing_date | string | The next date the policy is due to be billed. |
| currency | string | The currency code of the policy. |
| beneficiaries | object | An array of beneficiaries, or "null". |
| covered_people | arraynull | `null` is allowed. An array of covered people added to the policy. |
| base_premium | integer | The amount, in cents, of the minimum allowed monthly premium fee. This includes risk pricing and platform fees. |
| claim_ids | array | An array of claim ids of the claims linked to the policy. |
| complaint_ids | array | An array of complaint ids of the complaints linked to the policy. |
| start_date | string | Once the policy reaches its start date, cover commences and regular collection attempts can run against the policy (provided it has an `active` status). See the [Managing policies](https://docs.rootpl |
| end_date | string | When the policy reaches its end date, its status will change to `expired`. Cover and collections will cease. Policies with no end date do not expire. |
| current_version | integernull | `null` is allowed. The current policy schedule version. |
| schedule_file_id | stringnull | `null` is allowed. Object ID of the policy document. |
| policy_schedule_uri | stringnull | URI to the policy document in PDF format. |
| terms_file_id | stringnull | `null` is allowed. Attachment ID of the policy terms document. |
| terms_uri | stringnull | URI to the terms document in PDF format. |
| supplementary_terms_files | array | Supplementary terms files associated with the policy. |
| policy_welcome_letter_file_id | stringnull | `null` is allowed. Object ID of the welcome letter. |
| policy_welcome_letter_uri | stringnull | `null` is allowed. URI to the welcome letter in PDF format. |
| policy_certificate_file_id | stringnull | `null` is allowed. Object ID of the policy certificate. |
| policy_certificate_uri | stringnull | `null` is allowed. URI to the certificate in PDF format. |
| policy_anniversary_file_id | stringnull | `null` is allowed. Object ID of the policy anniversary document. |
| schedule_versions | array | The policy schedule versions for the policy. A new policy schedule version is typically created when the policy is updated. |
| created_at | string | The time at which the policy was created. |
| module | object | Custom, product-specific fields stored against the policy. These parameters are set in the [policy issue hook](https://docs.rootplatform.com/docs/policy-issue-hook) in the product module code. They ca |
| restricted_data | object | Optional restricted product-specific information saved to the policy. This field is only returned when the requestee has access to restricted policy module data. |
| app_data | objectnull | `null` is allowed. An object containing additional custom data for the policy. |
| created_by | objectnull | `null` is allowed. An object indicating the user or API key that created the policy. |
| scheme_type | string | Indicates the policy scheme type, being either `individual` or `group`. |
| payment_method_id | string | Must be a UUID. The ID of the policy's payment method, if set. |
| status_updated_at | string | Date indicating when the policy status was last updated. |
| charges | array | Whenever a premium payment is created (including reversals), a breakdown of the payment amount is calculated according to the charges stored on the policy. This allows the premium breakdown to be refe |
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "policy",
"type": "object",
"description": "Policies are issued from applications, and represent binding insurance agreements. Parameters stored on the policy can be referenced in custom notifications, policy documents, data exports and external integrations. <br/><br/> See the [issuing policies](https://docs.rootplatform.com/docs/policy-issuing) guide and the [policy issue hook](https://docs.rootplatform.com/docs/policy-issue-hook) guide for more details.",
"required": [
"policy_id",
"policy_number",
"status",
"policyholder_id",
"package_name",
"monthly_premium",
"billing_amount",
"balance",
"currency",
"billing_day",
"billing_frequency",
"next_billing_date",
"covered_people",
"base_premium",
"claim_ids",
"complaint_ids",
"start_date",
"end_date",
"policy_schedule_uri",
"terms_uri",
"schedule_versions",
"created_at",
"module",
"app_data",
"created_by",
"scheme_type",
"charges",
"supplementary_terms_files"
],
"properties": {
"policy_id": {
"type": "string",
"description": "Must be a UUID. Object ID of the policy."
},
"policy_number": {
"type": "string",
"description": "A shorter, human-readable policy identifier. This typically used in policy documents and customer notifications for ease of reference."
},
"status": {
"$ref": "#/components/schemas/policy-status"
},
"policyholder_id": {
"type": "string",
"description": "Must be a UUID. The system identifier of the policy's policyholder."
},
"package_name": {
"type": "string",
"description": "The insurance package name."
},
"sum_assured": {
"type": "integer",
"description": "The amount, in cents, of the maximum value insured."
},
"monthly_premium": {
"type": "integer",
"description": "The total monthly premium, in cents, that will be billed to the policyholder."
},
"billing_amount": {
"type": "integer",
"description": "The amount, in cents, that will be billed on the next billing run."
},
"balance": {
"type": "integer",
"description": "The amount, in cents, that is owed on the policy. If the policyholder makes an adhoc payment to the policy, the amount is credited to this balance. If the policyholder defaults on a payment, it is subtracted from the balance. If the balance is found negative during the next billing run, the amount is added to the monthly premium, else the monthly premium is subtracted from the balance and the remainder is charged."
},
"billing_day": {
"type": [
"integer",
"null"
],
"description": "`null` is allowed. The day of month on which the policy is billed. Should be between 1 and 31, or `null`. If it falls on a day that does not exist in the month (for example, 31 in February) the policy will be billed on the last day of the month. Setting this value to 31 will ensure that the policy is billed on the last day of every month."
},
"billing_frequency": {
"type": "string",
"description": "The frequency at which the policy is billed. One of [`monthly`, `yearly`, `once_off`]. See the [billing settings](https://docs.rootplatform.com/docs/billing-settings#billing-frequency) guide for more details on the billing frequency."
},
"next_billing_date": {
"type": "string",
"format": "date-time",
"description": "The next date the policy is due to be billed."
},
"currency": {
"type": "string",
"description": "The currency code of the policy."
},
"beneficiaries": {
"description": "An array of beneficiaries, or \"null\".",
"oneOf": [
{
"$ref": "#/components/schemas/beneficiaries"
},
{
"type": "null"
}
]
},
"covered_people": {
"type": [
"array",
"null"
],
"items": {
"type": "object"
},
"description": "`null` is allowed. An array of covered people added to the policy."
},
"base_premium": {
"type": "integer",
"description": "The amount, in cents, of the minimum allowed monthly premium fee. This includes risk pricing and platform fees."
},
"claim_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of claim ids of the claims linked to the policy."
},
"complaint_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of complaint ids of the complaints linked to the policy."
},
"start_date": {
"type": "string",
"format": "date-time",
"description": "Once the policy reaches its start date, cover commences and regular collection attempts can run against the policy (provided it has an `active` status). See the [Managing policies](https://docs.rootplatform.com/docs/policy-administration#policy-lifecycle) guide for more details on the policy lifecycle."
},
"end_date": {
"type": "string",
"format": "date-time",
"description": "When the policy reaches its end date, its status will change to `expired`. Cover and collections will cease. Policies with no end date do not expire."
},
"current_version": {
"type": [
"integer",
"null"
],
"description": "`null` is allowed. The current policy schedule version."
},
"schedule_file_id": {
"type": [
"string",
"null"
],
"description": "`null` is allowed. Object ID of the policy document."
},
"policy_schedule_uri": {
"type": [
"string",
"null"
],
"description": "URI to the policy document in PDF format."
},
"terms_file_id": {
"type": [
"string",
"null"
],
"description": "`null` is allowed. Attachment ID of the policy terms document."
},
"terms_uri": {
"type": [
"string",
"null"
],
"description": "URI to the terms document in PDF format."
},
"supplementary_terms_files": {
"type": "array",
"description": "Supplementary terms files associated with the policy.",
"items": {
"type": "object",
"properties": {
"supplementary_terms_file_id": {
"type": "string",
"description": "Attachment ID of the supplementary terms document."
},
"type": {
"type": "string",
"description": "The supplementary terms file type, as specified in the product module settings."
},
"uri": {
"type": "string",
"description": "URI to the supplementary terms document in PDF format."
}
}
}
},
"policy_welcome_letter_file_id": {
"type": [
"string",
"null"
],
"description": "`null` is allowed. Object ID of the welcome letter."
},
"policy_welcome_letter_uri": {
"type": [
"string",
"null"
],
"description": "`null` is allowed. URI to the welcome letter in PDF format."
},
"policy_certificate_file_id": {
"type": [
"string",
"null"
],
"description": "`null` is allowed. Object ID of the policy certificate."
},
"policy_certificate_uri": {
"type": [
"string",
"null"
],
"description": "`null` is allowed. URI to the certificate in PDF format."
},
"policy_anniversary_file_id": {
"type": [
"string",
"null"
],
"description": "`null` is allowed. Object ID of the policy anniversary document."
},
"schedule_versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"version": {
"type": "integer",
"description": "The policy schedule version number."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "The date the policy schedule version was created."
}
}
},
"description": "The policy schedule versions for the policy. A new policy schedule version is typically created when the policy is updated."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "The time at which the policy was created."
},
"module": {
"type": "object",
"description": "Custom, product-specific fields stored against the policy. These parameters are set in the [policy issue hook](https://docs.rootplatform.com/docs/policy-issue-hook) in the product module code. They can be referenced in policy documents, data exports and external integrations.",
"additionalProperties": true
},
"restricted_data": {
"type": "object",
"description": "Optional restricted product-specific information saved to the policy. This field is only returned when the requestee has access to restricted policy module data.",
"additionalProperties": true
},
"app_data": {
"type": [
"object",
"null"
],
"description": "`null` is allowed. An object containing additional custom data for the policy.",
"additionalProperties": true
},
"created_by": {
"type": [
"object",
"null"
],
"description": "`null` is allowed. An object indicating the user or API key that created the policy."
},
"scheme_type": {
"type": "string",
"description": "Indicates the policy scheme type, being either `individual` or `group`."
},
"payment_method_id": {
"type": "string",
"description": "Must be a UUID. The ID of the policy's payment method, if set."
},
"status_updated_at": {
"type": "string",
"format": "date-time",
"description": "Date indicating when the policy status was last updated."
},
"charges": {
"type": "array",
"description": "Whenever a premium payment is created (including reversals), a breakdown of the payment amount is calculated according to the charges stored on the policy. This allows the premium breakdown to be referenced in policy documents and disclosures, and in the policy's payment data. See the [policy issue hook](https://docs.rootplatform.com/docs/policy-issue-hook#charges-and-commissions) guide for more details on charges and commissions.",
"items": {
"type": "object",
"required": [
"type",
"name"
],
"properties": {
"type": {
"$ref": "#/components/schemas/payment-charge-type"
},
"name": {
"type": "string",
"description": "The name of the charge."
},
"description": {
"type": "string",
"description": "The description of the charge."
},
"amount": {
"type": "integer",
"description": "The charged amount. Required when type is `fixed` or `variable`. Either a proportion of the total premium (if `type` is `variable`), or a currency amount in cents (if `type` is `fixed`)."
}
}
}
}
},
"example": {
"policy_id": "128ba0c0-3f6a-4f8b-9b40-e2066b02b59e",
"policy_number": "1HFCT1CDBJ",
"policyholder_id": "bf3ab7ce-064d-43b7-811d-0ecd9aca3daf",
"status": "active",
"package_name": "Theft + comprehensive",
"sum_assured": 1199900,
"base_premium": 14999,
"monthly_premium": 50000,
"balance": 0,
"currency": "ZAR",
"billing_amount": 50000,
"billing_day": 1,
"billing_frequency": "monthly",
"covered_people": [],
"start_date": "2017-10-05T00:00:00.000Z",
"end_date": "2018-10-05T00:00:00.000Z",
"current_version": 1,
"schedule_file_id": "c85f1d4e-f09b-11ed-a05b-0242ac120003",
"policy_schedule_uri": "https://sandbox.root.co.za/v1/insurance/policies/128ba0c0-3f6a-4f8b-9b40-e2066b02b59e/schedule/schedule_latest.pdf",
"terms_file_id": "68c8b6e6-f484-11ed-a05b-0242ac120003",
"terms_uri": "https://sandbox.root.co.za/v1/insurance/policies/128ba0c0-3f6a-4f8b-9b40-e2066b02b59e/terms/terms.pdf",
"supplementary_terms_files": [
{
"supplementary_terms_file_id": "c414342a-7ea4-4a16-be68-d152aa5fce68",
"type": "client-conduct",
"uri": "https://sandbox.root.co.za/v1/files/download/a7bc326f-640e-4b43-9909-7a6c8be17e37"
}
],
"policy_welcome_letter_file_id": "d0864e70-f09b-11ed-a05b-0242ac120003",
"policy_welcome_letter_uri": "https://sandbox.root.co.za/v1/insurance/policies/128ba0c0-3f6a-4f8b-9b40-e2066b02b59e/welcome-letter/welcome_letter.pdf",
"policy_certificate_file_id": "1e527606-f09c-11ed-a05b-0242ac120003",
"policy_certificate_uri": "https://sandbox.root.co.za/v1/insurance/policies/128ba0c0-3f6a-4f8b-9b40-e2066b02b59e/certificate/certificate.pdf",
"policy_anniversary_file_id": "7e6d32c4-f484-11ed-a05b-0242ac120003",
"schedule_versions": [
{
"version": 1,
"created_at": "2017-10-05T18:40:47.281Z"
}
],
"created_at": "2017-10-05T18:40:47.281Z",
"module": {
"type": "root_gadgets",
"make": "Apple",
"model": "iPhone 6S 64GB LTE",
"serial_number": "1234567890"
},
"restricted_data": {
"internal_commission_bps": 1500
},
"app_data": {
"gadget_colour": "Space Grey"
},
"created_by": {
"id": "00000000-0000-0000-0000-000000000001",
"type": "user"
},
"scheme_type": "individual",
"payment_method_id": "e0b7b222-772f-47ac-b08d-c7ba38aa1b25",
"charges": [],
"beneficiaries": [
{
"first_name": "Jared",
"last_name": "Dunn",
"id": {
"type": "id",
"number": "8704094800082",
"country": "ZA"
},
"percentage": 100,
"relationship": "cousin_or_relative"
}
]
}
}