Kota Policy Amendment Intents API
The Policy Amendment Intents API from Kota — 5 operation(s) for policy amendment intents.
The Policy Amendment Intents API from Kota — 5 operation(s) for policy amendment intents.
openapi: 3.1.0
info:
title: API Reference Associated Persons Policy Amendment Intents API
version: 1.0.0
servers:
- url: https://test.api.kota.io
description: test
- url: https://api.kota.io
description: production
tags:
- name: Policy Amendment Intents
paths:
/policies/{policy_id}/policy_amendment_intents:
get:
tags:
- Policy Amendment Intents
summary: List all policy amendment intents for a policy
description: Returns a paginated list of policy amendment intents for the specified policy. The intents are returned sorted by creation date, with the oldest intent appearing first.
operationId: ListPolicyAmendmentIntents
parameters:
- name: policy_id
in: path
required: true
schema:
pattern: p_.+
type: string
example: p_3b1333d87d9d4fd6ad83ba7f6b0e951a
- name: status
in: query
description: 'Multiple values can be provided by separating them with a comma. Allowed values are: `action_required`, `awaiting_quote`, `pending_confirmation`, `processing`, `amended`, `processing_error`, `not_undertaken`.'
schema:
type: string
- name: page
in: query
description: The page of results to return. Defaults to 1 if not provided.
schema:
type: integer
description: The page of results to return. Defaults to 1 if not provided.
format: int32
- name: page_size
in: query
description: The number of results to return per page. Defaults to 10 if not provided. Maximum value is 100.
schema:
type: integer
description: The number of results to return per page. Defaults to 10 if not provided. Maximum value is 100.
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyAmendmentIntentResponsePagedList'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Policy Amendment Intents
summary: Create a new policy amendment intent
description: Initiates a policy amendment (e.g. adding/removing dependents). The intent coordinates the amendment workflow including dependents sub-intent management, quote generation, employee confirmation, and provider processing.
operationId: CreatePolicyAmendmentIntent
parameters:
- name: policy_id
in: path
required: true
schema:
pattern: p_.+
type: string
example: p_3b1333d87d9d4fd6ad83ba7f6b0e951a
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/CreatePolicyAmendmentIntentRequest'
required: true
responses:
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyAmendmentIntentResponse'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/policies/{policy_id}/policy_amendment_intents/{policy_amendment_intent_id}:
get:
tags:
- Policy Amendment Intents
summary: Retrieve a policy amendment intent
description: Retrieves a `policy_amendment_intent` object.
operationId: RetrievePolicyAmendmentIntent
parameters:
- name: policy_id
in: path
required: true
schema:
pattern: p_.+
type: string
example: p_3b1333d87d9d4fd6ad83ba7f6b0e951a
- name: policy_amendment_intent_id
in: path
required: true
schema:
pattern: pai_.+
type: string
example: pai_3b1333d87d9d4fd6ad83ba7f6b0e951a
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyAmendmentIntentResponse'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/policies/{policy_id}/policy_amendment_intents/{policy_amendment_intent_id}/confirm:
post:
tags:
- Policy Amendment Intents
summary: Confirm policy amendment intent
description: Confirms a policy amendment intent after the employee has reviewed and accepted the quote. The intent must be in `pending_confirmation` status with a valid quote. The confirmation deadline must not have passed.
operationId: ConfirmPolicyAmendmentIntent
parameters:
- name: policy_id
in: path
required: true
schema:
pattern: p_.+
type: string
example: p_3b1333d87d9d4fd6ad83ba7f6b0e951a
- name: policy_amendment_intent_id
in: path
required: true
schema:
pattern: pai_.+
type: string
example: pai_3b1333d87d9d4fd6ad83ba7f6b0e951a
responses:
'204':
description: No Content
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/policies/{policy_id}/policy_amendment_intents/{id}/cancel:
post:
tags:
- Policy Amendment Intents
summary: Cancel a policy amendment intent
description: Cancels a policy amendment intent when the employee decides not to proceed. Can only cancel intents in `action_required` or `pending_confirmation` status.
operationId: CancelPolicyAmendmentIntent
parameters:
- name: policy_id
in: path
required: true
schema:
pattern: p_.+
type: string
example: p_3b1333d87d9d4fd6ad83ba7f6b0e951a
- name: id
in: path
required: true
schema:
pattern: pai_.+
type: string
example: pai_3b1333d87d9d4fd6ad83ba7f6b0e951a
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/policies/{policy_id}/policy_amendment_intents/{id}/create_dependents_management_intent:
post:
tags:
- Policy Amendment Intents
summary: Create a dependents management intent for a policy amendment
description: Creates a dependents management intent as a sub-intent of a policy amendment intent. The sub-intent allows the platform to add or remove dependents from the policy. The policy amendment intent must be in `action_required` status with a `dependents` requested change.
operationId: CreateDependentsManagementIntentForPolicyAmendment
parameters:
- name: policy_id
in: path
required: true
schema:
pattern: p_.+
type: string
example: p_3b1333d87d9d4fd6ad83ba7f6b0e951a
- name: id
in: path
required: true
schema:
pattern: pai_.+
type: string
example: pai_3b1333d87d9d4fd6ad83ba7f6b0e951a
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DependentsManagementIntentResponse'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
components:
schemas:
PlanWithPricingResponse:
required:
- description
- id
- name
- pricing
type: object
properties:
id:
pattern: pl_.+
type: string
description: Unique identifier for the plan. Prefixed with `pl_`.
example: pl_3b1333d87d9d4fd6ad83ba7f6b0e951a
name:
type: string
description: The name of the plan.
description:
type: string
description: Description of the plan.
pricing:
allOf:
- $ref: '#/components/schemas/PlanPricingResponse'
description: Pricing information for the plan.
additionalProperties: false
PlanCoverageOptionInputType:
enum:
- single_select
- multi_select
type: string
PolicyAmendmentDependentsResponse:
type: object
properties:
dependents_management_intent_id:
pattern: dmi_.+
type:
- 'null'
- string
description: Unique identifier for the dependents management intent. Prefixed with `dmi_`. Null if not yet created.
example: dmi_3b1333d87d9d4fd6ad83ba7f6b0e951a
status:
type: 'null'
allOf:
- $ref: '#/components/schemas/DependentsManagementIntentStatus'
description: The status of the dependents management process. Null if not yet started.
additionalProperties: false
PlanCoverageOptionScope:
enum:
- group_policy
- policy
- member
type: string
CreatePolicyAmendmentIntentRequest:
required:
- amendment_reason
- requested_changes
type: object
properties:
amendment_reason:
allOf:
- $ref: '#/components/schemas/PolicyAmendmentReasonRequest'
description: The reason for the policy amendment.
requested_changes:
type: array
items:
$ref: '#/components/schemas/PolicyAmendmentRequestedChangeRequest'
description: List of requested changes to the policy.
additionalProperties: false
PlanCoverageResponse:
required:
- id
- input_type
- name
- options
- required
- scope
type: object
properties:
id:
pattern: pc_.+
type: string
description: Unique identifier for the coverage selection. Prefixed with `pc_`.
example: pc_3b1333d87d9d4fd6ad83ba7f6b0e951a
name:
type: string
description: Title for this coverage selection. Typically used as the display heading.
description:
type:
- 'null'
- string
description: Full description of this coverage selection.
scope:
allOf:
- $ref: '#/components/schemas/PlanCoverageOptionScope'
description: 'Scope of selection for this coverage selection: `group_policy` (employer selects for the group), `policy` (per-policy selection), or `member` (individual member selects).'
input_type:
allOf:
- $ref: '#/components/schemas/PlanCoverageOptionInputType'
description: Describes whether this input allows selecting a single option or multiple options.
required:
type: boolean
description: Whether a selection is mandatory.
example: true
min_selections:
type:
- 'null'
- integer
description: Minimum required selections (multi-select only).
format: int32
max_selections:
type:
- 'null'
- integer
description: Maximum allowed selections (multi-select only).
format: int32
sort_order:
type:
- 'null'
- integer
description: Display ordering hint.
format: int32
group_label:
type:
- 'null'
- string
description: Optional grouping label for UI rendering. Indicates which coverage selections are best presented together from a UX standpoint.
options:
type: array
items:
$ref: '#/components/schemas/PlanCoverageOptionResponse'
description: Available options within this coverage selection.
additionalProperties: false
DependentsManagementIntentStatus:
enum:
- action_required
- processing
- completed
- not_undertaken
type: string
x-fern-enum:
action_required:
description: Dependents information needs to be provided.
processing:
description: Dependents are being validated and processed.
completed:
description: Dependents have been successfully processed and validated.
not_undertaken:
description: Dependents management intent has been aborted.
TierBasedPricingResponse:
required:
- currency
- tiers
type: object
properties:
currency:
allOf:
- $ref: '#/components/schemas/CurrencyCode'
description: Currency code (e.g., 'eur', 'usd').
tiers:
type: array
items:
$ref: '#/components/schemas/PricingTierResponse'
description: Pricing tiers for different family compositions.
additionalProperties: false
PolicyAmendmentRequestedChangeRequest:
required:
- change_type
type: object
properties:
change_type:
allOf:
- $ref: '#/components/schemas/RequestedChangeType'
description: The type of change requested.
additionalProperties: false
QualifyingLifeEventSupplementalInfo:
required:
- event
- event_date
type: object
properties:
event:
allOf:
- $ref: '#/components/schemas/QualifyingLifeEventType'
description: The type of qualifying life event requested.
event_date:
type: string
description: 'The date at which the event occured. Note: This date must be within provider guidelines, where the date is outside of those guidelines the amendment may be rejected or the effective date of the change could be amended by the provider.'
format: date
example: '2024-12-01'
reason:
type:
- 'null'
- string
description: 'A free text reason of the qualifying life event. Note: This will be shared with the insurance provider in lieu of `event` when its set to `other_change`.'
additionalProperties: false
PlanPricingResponse:
required:
- type
type: object
properties:
type:
allOf:
- $ref: '#/components/schemas/PlanPricingType'
description: Type of pricing structure
per_member:
type: 'null'
allOf:
- $ref: '#/components/schemas/PerMemberPricingResponse'
description: Per-member pricing details (populated when type is 'per_member').
tier_based:
type: 'null'
allOf:
- $ref: '#/components/schemas/TierBasedPricingResponse'
description: Tier-based pricing details (populated when type is 'tier_based').
additionalProperties: false
PlanCoverageOptionResponse:
required:
- id
- name
type: object
properties:
id:
pattern: pco_.+
type: string
description: Unique identifier for this coverage option. Prefixed with `pco_`.
example: pco_3b1333d87d9d4fd6ad83ba7f6b0e951a
name:
type: string
description: Display name for this coverage option.
description:
type:
- 'null'
- string
description: Longer explanation of this coverage option.
learn_more_url:
type:
- 'null'
- string
description: Link to learn more about this coverage option.
from_price:
type:
- 'null'
- number
description: Lowest applicable monthly price for this coverage option.
format: double
benefits:
type:
- 'null'
- array
items:
$ref: '#/components/schemas/PlanCoverageOptionBenefitResponse'
description: Benefit items included with this coverage option.
sub_options:
type:
- 'null'
- array
items:
$ref: '#/components/schemas/PlanCoverageOptionResponse'
description: Nested sub-options available when this option is selected.
eligibility_criteria:
type:
- 'null'
- array
items:
$ref: '#/components/schemas/EmployerEligibilityCriterionResponse'
description: Eligibility criteria that must be met to select this coverage option.
additionalProperties: false
PlanPricingType:
enum:
- per_member
- tier_based
type: string
PolicyAmendmentQuoteResponse:
required:
- currency
- monthly
- term
type: object
properties:
currency:
type: string
description: Three-letter currency code (e.g., "EUR", "USD", "GBP") for all monetary amounts in this quote.
monthly:
allOf:
- $ref: '#/components/schemas/PolicyAmendmentQuoteContributionsResponse'
description: Monthly contribution breakdown for the policy amendment.
term:
allOf:
- $ref: '#/components/schemas/PolicyAmendmentQuoteContributionsResponse'
description: Total term contribution breakdown for the policy amendment.
additionalProperties: false
PolicyAmendmentQuoteAmountResponse:
required:
- gross
- net
- tax
type: object
properties:
net:
type: number
description: Net amount before tax.
format: double
example: 123.45
tax:
type: number
description: Tax amount.
format: double
example: 123.45
gross:
type: number
description: Gross amount (net + tax).
format: double
example: 123.45
additionalProperties: false
PolicyAmendmentRequestedChangeResponse:
required:
- change_type
type: object
properties:
change_type:
allOf:
- $ref: '#/components/schemas/RequestedChangeType'
description: The type of change requested.
additionalProperties: false
PolicyAmendmentProcessingErrorResponse:
required:
- code
- reason
- reason_description
type: object
properties:
code:
allOf:
- $ref: '#/components/schemas/PolicyAmendmentIntentFailureCode'
description: The error code indicating why processing failed.
reason:
type: string
description: Brief reason for the processing error.
reason_description:
type: string
description: Detailed description of the processing error.
additionalProperties: false
PolicyAmendmentReasonResponse:
required:
- type
type: object
properties:
type:
allOf:
- $ref: '#/components/schemas/AmendmentReasonType'
description: Unique identifier of the amendment reason type.
qualifying_life_event:
type: 'null'
allOf:
- $ref: '#/components/schemas/PolicyAmendmentQualifyingLifeEventResponse'
description: Details when `type` is `qualifying_life_event`.
additionalProperties: false
DependentsManagementIntentDependentStatus:
enum:
- pending_confirmation
- action_required
- ineligible
- processing
- restricted
- ready
type: string
MemberTypeCode:
enum:
- adult
- young_adult
- child
type: string
PolicyAmendmentRequiredActionResponse:
required:
- associated_persons
- code
- due_by
- reason
- reason_description
type: object
properties:
code:
allOf:
- $ref: '#/components/schemas/PolicyAmendmentActionCode'
description: The action code indicating what action is required.
reason:
type: string
description: Brief reason for the required action.
reason_description:
type: string
description: Detailed description of the required action.
due_by:
type: string
description: The deadline by which the action must be completed. The day is included (i.e. the action can be completed any time during this day in the user's local time).
format: date
example: '2024-12-01'
associated_persons:
allOf:
- $ref: '#/components/schemas/PolicyAmendmentAssociatedPersonsResponse'
description: Information about associated persons related to this action.
additionalProperties: false
PolicyAmendmentIntentResponsePagedList:
required:
- items
- page
- page_size
- total_count
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PolicyAmendmentIntentResponse'
description: A paginated array containing the response elements
page:
type: integer
description: The current page of the results
format: int32
example: 123
page_size:
type: integer
description: The number of results on this page. This can be different from the requested page size if the total number of results is less than the requested page size
format: int32
example: 123
total_count:
type: integer
description: The total number of elements available in the response. This is the total number of elements available across all pages, not just the current page.
format: int32
example: 123
has_next_page:
type: boolean
description: Whether there are more pages available after this page
readOnly: true
example: true
has_previous_page:
type: boolean
description: Whether there are more pages available before this page
readOnly: true
example: true
additionalProperties: false
DisclosureType:
enum:
- intermediary_role
- intermediary_commission
- underwriter_disclaimer
- anti_selection_notice
- statement_of_needs
- product_information
- pre_existing_conditions
- statutory_warning
type: string
EmployerEligibilityCriterionType:
enum:
- employees_count
- members_count
- industry_exclusions
type: string
MembersCountDetails:
type: object
properties:
min:
type:
- 'null'
- integer
description: Minimum number of members required.
format: int32
max:
type:
- 'null'
- integer
description: Maximum number of members allowed.
format: int32
additionalProperties: false
CurrencyCode:
enum:
- eur
- aed
- afn
- xcd
- all
- amd
- aoa
- ars
- usd
- aud
- awg
- azn
- bam
- bbd
- bdt
- xof
- bgn
- bhd
- bif
- bmd
- bnd
- bob
- bov
- brl
- bsd
- inr
- btn
- nok
- bwp
- byn
- bzd
- cad
- xaf
- cdf
- chf
- che
- chw
- nzd
- clp
- clf
- cny
- cop
- cou
- crc
- cup
- cuc
- cve
- ang
- czk
- djf
- dkk
- dop
- dzd
- egp
- mad
- ern
- etb
- fjd
- fkp
- mdl
- gbp
- gel
- ghs
- gip
- gmd
- gnf
- gtq
- gyd
- hkd
- hnl
- hrk
- htg
- huf
- idr
- xdr
- ils
- iqd
- irr
- isk
- jmd
- jod
- jpy
- kes
- kgs
- khr
- kmf
- kpw
- krw
- kwd
- kyd
- kzt
- lak
- lbp
- lkr
- lrd
- lsl
- zar
- lyd
- mga
- mkd
- mmk
- mnt
- mop
- mru
- mur
- mvr
- mwk
- mxn
- mxv
- myr
- mzn
- nad
- xpf
- ngn
- nio
- npr
- omr
- pab
- pen
- pgk
- php
- pkr
- pln
- pyg
- qar
- ron
- rsd
- rub
- rwf
- sar
- sbd
- scr
- sdg
- sek
- sgd
- shp
- sll
- sos
- srd
- ssp
- stn
- svc
- xsu
- syp
- twd
- szl
- thb
- tjs
- tmt
- tnd
- top
- try
- ttd
- tzs
- uah
- ugx
- usn
- uyu
- uyi
- uyw
- uzs
- ves
- vnd
- vuv
- wst
- yer
- xua
- zmw
- zwl
type: string
PricingTierResponse:
required:
- annual_premium
- code
- display_dependent_requirements
- display_name
- monthly_premium
type: object
properties:
code:
allOf:
- $ref: '#/components/schemas/FamilyTierCode'
description: Tier code.
display_name:
type: string
description: Display name for the tier.
monthly_premium:
type: number
description: Monthly premium amount for this tier.
format: double
example: 123.45
annual_premium:
type: number
description: Annual premium amount for this tier.
format: double
example: 123.45
display_dependent_requirements:
type: string
description: Description of dependent requirements for this tier.
additionalProperties: false
AmendmentReasonType:
enum:
- initial_adjustment_period
- qualifying_life_event
type: string
x-fern-enum:
initial_adjustment_period:
description: Amendment during the initial adjustment period after policy activation.
qualifying_life_event:
description: Amendment due to a qualifying life event (e.g., marriage, birth of a child).
MemberTypePricingResponse:
required:
- code
- display_name
- monthly_premium
type: object
properties:
code:
allOf:
- $ref: '#/components/schemas/MemberTypeCode'
description: Member type code.
display_name:
type: string
description: Display name for the member type.
monthly_premium:
type: number
description: Monthly premium amount.
format: double
example: 123.45
additionalProperties: false
IndustryExclusionsDetails:
required:
- excluded_industries
type: object
properties:
excluded_industries:
type: array
items:
type: string
description: List of excluded industries.
additionalProperties: false
FamilyTierCode:
enum:
- single
- couple
- single_parent
- family
type: string
DependentsManagementIntentActionRequiredResponse:
required:
- code
- due_by
- reason
- reason_description
type: object
properties:
code:
allOf:
- $ref: '#/components/schemas/DependentsManagementIntentActionCode'
description: The action code indicating what action is required.
reason:
type: string
description: Brief reason for the required action.
reason_description:
type: string
description: Detailed description of the required action. This is intended to be understandable by the end user.
due_by:
type: string
description: The deadline by which the action must be completed. The day is included (i.e. the action can be completed any time during this day in the user's local time).
format: date-time
example: '2024-12-01T00:00:00Z'
additionalProperties: false
PolicyAmendmentIntentStatus:
enum:
- action_required
- awaiting_quote
- pending_confirmation
- processing
- amended
- processing_error
- not_undertaken
type: string
x-fern-enum:
action_required:
description: Amendment requires user action to proceed.
awaiting_quote:
description: Waiting for the provider to generate a quote for the requested amendment.
pending_confirmation:
description: Quote has been generated and is awaiting employee confirmation.
processing:
description: Changes are being applied to the policy by the provider.
amended:
description: Amendment successfully applied to the policy.
processing_error:
description: Amendment failed and cannot be retried (e.g. provider rejection).
not_undertaken:
description: Amendment explicitly aborted or deadline expired.
DependentsManagementIntentActionCode:
enum:
- remove_restricted_or_ineligible_dependents
type: string
x-fern-enum:
remove_restricted_or_ineligible_dependents:
description: One or more dependents are restricted or ineligible and must be removed before proceeding.
QualifyingLifeEventType:
enum:
- gained_other_insurance_coverage
- divorce_or_legal_separation
- death_of_spouse_or_dependent
- moved_out_of_coverage_area
- employment_status_change_affecting_eligibility
- eligible_for_government_program
- marriage_or_civil_partnership
- birth_of_child
- adoption_of_child
- gained_legal_guardianship
- dependent_lost_other_coverage
- lost_legal_guardianship
- dependent_gained_other_coverage
- dependent_eligible_for_government_program
- dependent_aged_out
- dependent_student_status_change_affecting_eligibility
- dependent_moved_in_or_out_of_coverage_area
- other_change
type: string
x-fern-enum:
gained_other_insurance_coverage:
description: Employee gains alternative qualifying coverage (e.g. added to spouse's plan).
divorce_or_legal_separation:
description: Marriage or civil partnership ends.
death_of_spouse_or_dependent:
description: A covered spouse or dependent dies.
moved_out_of_coverage_area:
description: Employee relocates to a country or region where this policy or insurer cannot provide coverage.
employment_status_change_affecting_eligibility:
description: Employee remains employed but moves to a role or status that is no longer eligible for this benefit.
eligible_for_government_program:
description: Employee becomes eligible for a statutory or national health program.
marriage_or_civil_partnership:
description: Employee gets married or enters a civil partnership. In some countries or providers, this is also valid if cohabiting.
birth_of_child:
description: A child is born.
adoption_of_child:
description: A child
# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kota/refs/heads/main/openapi/kota-policy-amendment-intents-api-openapi.yml