Kota policyAmendmentIntents API
The policyAmendmentIntents API from Kota — 5 operation(s) for policyamendmentintents.
The policyAmendmentIntents API from Kota — 5 operation(s) for policyamendmentintents.
openapi: 3.1.0
info:
title: API Reference Associated Persons policyAmendmentIntents API
version: 1.0.0
servers:
- url: https://test.api.kota.io
description: test
- url: https://api.kota.io
description: production
tags:
- name: policyAmendmentIntents
paths:
/policies/{policy_id}/policy_amendment_intents:
get:
operationId: list-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.
tags:
- policyAmendmentIntents
parameters:
- name: policy_id
in: path
required: true
schema:
type: string
- 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`.'
required: false
schema:
type: string
- name: page
in: query
description: The page of results to return. Defaults to 1 if not provided.
required: false
schema:
type: integer
- name: page_size
in: query
description: The number of results to return per page. Defaults to 10 if not provided. Maximum value is 100.
required: false
schema:
type: integer
- name: Authorization
in: header
description: Authorization header using the Bearer scheme
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyAmendmentIntentResponsePagedList'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
operationId: create-policy-amendment-intent
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.
tags:
- policyAmendmentIntents
parameters:
- name: policy_id
in: path
required: true
schema:
type: string
- name: Authorization
in: header
description: Authorization header using the Bearer scheme
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyAmendmentIntentResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePolicyAmendmentIntentRequest'
/policies/{policy_id}/policy_amendment_intents/{policy_amendment_intent_id}:
get:
operationId: retrieve-policy-amendment-intent
summary: Retrieve a policy amendment intent
description: Retrieves a `policy_amendment_intent` object.
tags:
- policyAmendmentIntents
parameters:
- name: policy_id
in: path
required: true
schema:
type: string
- name: policy_amendment_intent_id
in: path
required: true
schema:
type: string
- name: Authorization
in: header
description: Authorization header using the Bearer scheme
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyAmendmentIntentResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/policies/{policy_id}/policy_amendment_intents/{policy_amendment_intent_id}/confirm:
post:
operationId: confirm-policy-amendment-intent
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.
tags:
- policyAmendmentIntents
parameters:
- name: policy_id
in: path
required: true
schema:
type: string
- name: policy_amendment_intent_id
in: path
required: true
schema:
type: string
- name: Authorization
in: header
description: Authorization header using the Bearer scheme
required: true
schema:
type: string
responses:
'204':
description: No Content
content:
application/json:
schema:
$ref: '#/components/schemas/Policy Amendment Intents_ConfirmPolicyAmendmentIntent_Response_204'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/policies/{policy_id}/policy_amendment_intents/{id}/cancel:
post:
operationId: cancel-policy-amendment-intent
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.
tags:
- policyAmendmentIntents
parameters:
- name: policy_id
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
- name: Authorization
in: header
description: Authorization header using the Bearer scheme
required: true
schema:
type: string
responses:
'204':
description: No Content
content:
application/json:
schema:
$ref: '#/components/schemas/Policy Amendment Intents_CancelPolicyAmendmentIntent_Response_204'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/policies/{policy_id}/policy_amendment_intents/{id}/create_dependents_management_intent:
post:
operationId: create-dependents-management-intent-for-policy-amendment
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.
tags:
- policyAmendmentIntents
parameters:
- name: policy_id
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
- name: Authorization
in: header
description: Authorization header using the Bearer scheme
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DependentsManagementIntentResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
components:
schemas:
PlanWithPricingResponse:
type: object
properties:
id:
type: string
description: Unique identifier for the plan. Prefixed with `pl_`.
name:
type: string
description: The name of the plan.
description:
type: string
description: Description of the plan.
pricing:
$ref: '#/components/schemas/PlanPricingResponse'
description: Pricing information for the plan.
required:
- id
- name
- description
- pricing
title: PlanWithPricingResponse
PlanCoverageOptionInputType:
type: string
enum:
- single_select
- multi_select
title: PlanCoverageOptionInputType
PolicyAmendmentDependentsResponse:
type: object
properties:
dependents_management_intent_id:
type:
- string
- 'null'
description: Unique identifier for the dependents management intent. Prefixed with `dmi_`. Null if not yet created.
status:
$ref: '#/components/schemas/DependentsManagementIntentStatus'
description: The status of the dependents management process. Null if not yet started.
title: PolicyAmendmentDependentsResponse
PlanCoverageOptionScope:
type: string
enum:
- group_policy
- policy
- member
title: PlanCoverageOptionScope
CreatePolicyAmendmentIntentRequest:
type: object
properties:
amendment_reason:
$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.
required:
- amendment_reason
- requested_changes
title: CreatePolicyAmendmentIntentRequest
PlanCoverageResponse:
type: object
properties:
id:
type: string
description: Unique identifier for the coverage selection. Prefixed with `pc_`.
name:
type: string
description: Title for this coverage selection. Typically used as the display heading.
description:
type:
- string
- 'null'
description: Full description of this coverage selection.
scope:
$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:
$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.
min_selections:
type:
- integer
- 'null'
description: Minimum required selections (multi-select only).
max_selections:
type:
- integer
- 'null'
description: Maximum allowed selections (multi-select only).
sort_order:
type:
- integer
- 'null'
description: Display ordering hint.
group_label:
type:
- string
- 'null'
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.
required:
- id
- name
- scope
- input_type
- required
- options
title: PlanCoverageResponse
DependentsManagementIntentStatus:
type: string
enum:
- action_required
- processing
- completed
- not_undertaken
title: DependentsManagementIntentStatus
TierBasedPricingResponse:
type: object
properties:
currency:
$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.
required:
- currency
- tiers
title: TierBasedPricingResponse
PolicyAmendmentRequestedChangeRequest:
type: object
properties:
change_type:
$ref: '#/components/schemas/RequestedChangeType'
description: The type of change requested.
required:
- change_type
title: PolicyAmendmentRequestedChangeRequest
QualifyingLifeEventSupplementalInfo:
type: object
properties:
event:
$ref: '#/components/schemas/QualifyingLifeEventType'
description: The type of qualifying life event requested.
event_date:
type: string
format: date
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.'
reason:
type:
- string
- 'null'
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`.'
required:
- event
- event_date
title: QualifyingLifeEventSupplementalInfo
PlanPricingResponse:
type: object
properties:
type:
$ref: '#/components/schemas/PlanPricingType'
description: Type of pricing structure
per_member:
$ref: '#/components/schemas/PerMemberPricingResponse'
description: Per-member pricing details (populated when type is 'per_member').
tier_based:
$ref: '#/components/schemas/TierBasedPricingResponse'
description: Tier-based pricing details (populated when type is 'tier_based').
required:
- type
title: PlanPricingResponse
PlanCoverageOptionResponse:
type: object
properties:
id:
type: string
description: Unique identifier for this coverage option. Prefixed with `pco_`.
name:
type: string
description: Display name for this coverage option.
description:
type:
- string
- 'null'
description: Longer explanation of this coverage option.
learn_more_url:
type:
- string
- 'null'
description: Link to learn more about this coverage option.
from_price:
type:
- number
- 'null'
format: double
description: Lowest applicable monthly price for this coverage option.
benefits:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PlanCoverageOptionBenefitResponse'
description: Benefit items included with this coverage option.
sub_options:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PlanCoverageOptionResponse'
description: Nested sub-options available when this option is selected.
eligibility_criteria:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/EmployerEligibilityCriterionResponse'
description: Eligibility criteria that must be met to select this coverage option.
required:
- id
- name
title: PlanCoverageOptionResponse
PlanPricingType:
type: string
enum:
- per_member
- tier_based
title: PlanPricingType
PolicyAmendmentQuoteResponse:
type: object
properties:
currency:
type: string
description: Three-letter currency code (e.g., "EUR", "USD", "GBP") for all monetary amounts in this quote.
monthly:
$ref: '#/components/schemas/PolicyAmendmentQuoteContributionsResponse'
description: Monthly contribution breakdown for the policy amendment.
term:
$ref: '#/components/schemas/PolicyAmendmentQuoteContributionsResponse'
description: Total term contribution breakdown for the policy amendment.
required:
- currency
- monthly
- term
title: PolicyAmendmentQuoteResponse
PolicyAmendmentQuoteAmountResponse:
type: object
properties:
net:
type: number
format: double
description: Net amount before tax.
tax:
type: number
format: double
description: Tax amount.
gross:
type: number
format: double
description: Gross amount (net + tax).
required:
- net
- tax
- gross
title: PolicyAmendmentQuoteAmountResponse
PolicyAmendmentRequestedChangeResponse:
type: object
properties:
change_type:
$ref: '#/components/schemas/RequestedChangeType'
description: The type of change requested.
required:
- change_type
title: PolicyAmendmentRequestedChangeResponse
PolicyAmendmentProcessingErrorResponse:
type: object
properties:
code:
$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.
required:
- code
- reason
- reason_description
title: PolicyAmendmentProcessingErrorResponse
PolicyAmendmentReasonResponse:
type: object
properties:
type:
$ref: '#/components/schemas/AmendmentReasonType'
description: Unique identifier of the amendment reason type.
qualifying_life_event:
$ref: '#/components/schemas/PolicyAmendmentQualifyingLifeEventResponse'
description: Details when `type` is `qualifying_life_event`.
required:
- type
title: PolicyAmendmentReasonResponse
DependentsManagementIntentDependentStatus:
type: string
enum:
- pending_confirmation
- action_required
- ineligible
- processing
- restricted
- ready
title: DependentsManagementIntentDependentStatus
MemberTypeCode:
type: string
enum:
- adult
- young_adult
- child
title: MemberTypeCode
PolicyAmendmentRequiredActionResponse:
type: object
properties:
code:
$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
format: date
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).
associated_persons:
$ref: '#/components/schemas/PolicyAmendmentAssociatedPersonsResponse'
description: Information about associated persons related to this action.
required:
- code
- reason
- reason_description
- due_by
- associated_persons
title: PolicyAmendmentRequiredActionResponse
PolicyAmendmentIntentResponsePagedList:
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
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
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.
has_next_page:
type: boolean
description: Whether there are more pages available after this page
has_previous_page:
type: boolean
description: Whether there are more pages available before this page
required:
- items
- page
- page_size
- total_count
title: PolicyAmendmentIntentResponsePagedList
DisclosureType:
type: string
enum:
- intermediary_role
- intermediary_commission
- underwriter_disclaimer
- anti_selection_notice
- statement_of_needs
- product_information
- pre_existing_conditions
- statutory_warning
title: DisclosureType
Policy Amendment Intents_CancelPolicyAmendmentIntent_Response_204:
type: object
properties: {}
description: Empty response body
title: Policy Amendment Intents_CancelPolicyAmendmentIntent_Response_204
EmployerEligibilityCriterionType:
type: string
enum:
- employees_count
- members_count
- industry_exclusions
title: EmployerEligibilityCriterionType
MembersCountDetails:
type: object
properties:
min:
type:
- integer
- 'null'
description: Minimum number of members required.
max:
type:
- integer
- 'null'
description: Maximum number of members allowed.
title: MembersCountDetails
CurrencyCode:
type: string
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
title: CurrencyCode
PricingTierResponse:
type: object
properties:
code:
$ref: '#/components/schemas/FamilyTierCode'
description: Tier code.
display_name:
type: string
description: Display name for the tier.
monthly_premium:
type: number
format: double
description: Monthly premium amount for this tier.
annual_premium:
type: number
format: double
description: Annual premium amount for this tier.
display_dependent_requirements:
type: string
description: Description of dependent requirements for this tier.
required:
- code
- display_name
- monthly_premium
- annual_premium
- display_dependent_requirements
title: PricingTierResponse
AmendmentReasonType:
type: string
enum:
- initial_adjustment_period
- qualifying_life_event
title: AmendmentReasonType
MemberTypePricingResponse:
type: object
properties:
code:
$ref: '#/components/schemas/MemberTypeCode'
description: Member type code.
display_name:
type: string
description: Display name for the member type.
monthly_premium:
type: number
format: double
description: Monthly premium amount.
required:
- code
- display_name
- monthly_premium
title: MemberTypePricingResponse
IndustryExclusionsDetails:
type: object
properties:
excluded_industries:
type: array
items:
type: string
description: List of excluded industries.
required:
- excluded_industries
title: IndustryExclusionsDetails
FamilyTierCode:
type: string
enum:
- single
- couple
- single_parent
- family
title: FamilyTierCode
DependentsManagementIntentActionRequiredResponse:
type: object
properties:
code:
$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
format: date-time
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).
required:
- code
- reason
- reason_description
- due_by
title: DependentsManagementIntentActionRequiredResponse
PolicyAmendmentIntentStatus:
type: string
enum:
- action_required
- awaiting_quote
- pending_confirmation
- processing
- amended
- processing_error
- not_undertaken
title: PolicyAmendmentIntentStatus
Policy Amendment Intents_ConfirmPolicyAmendmentIntent_Response_204:
type: object
properties: {}
description: Empty response body
title: Policy Amendment Intents_ConfirmPolicyAmendmentIntent_Response_204
DependentsManagementIntentActionCode:
type: string
enum:
- remove_restricted_or_ineligible_dependents
title: DependentsManagementIntentActionCode
QualifyingLifeEventType:
type: string
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
title: QualifyingLifeEventType
PolicyAmendmentIntentResponse:
type: object
properties:
id:
type: string
description: Unique identifier for the policy amendment intent. Prefixed with `pai_`.
object:
type: string
description: Object type identifier.
policy_id:
type: string
description: The policy ID for which the amendment is requested. Prefixed with `p_`.
status:
$ref: '#/components/schemas/PolicyAmendmentIntentStatus'
description: Current status of the policy amendment intent.
amendment_reason:
$ref: '#/components/schemas/PolicyAmendmentReasonResponse'
description: The reason for the policy amendment.
requested_changes:
type: array
items:
$ref: '#/components/schemas/PolicyAmendmentRequestedChangeResponse'
description: List of requested changes to the policy.
required_action:
$ref: '#/components/schemas/PolicyAmendmentRequiredActionResponse'
description: Information about the required action if the intent status is `action_required`.
pending_confirmation:
$ref: '#/components/schemas/PolicyAmendmentPendingConfirmationResponse'
description: Information about the pending confirmation if the intent status is `pending_confirmation`.
processing_error:
$ref: '#/components/schemas/PolicyAmendmentProcessingErrorResponse'
description: Information about the processing error if the intent status is `processing_error`.
disclosures:
type: array
items:
$ref: '#/components/schemas/DisclosureResponse'
description: Disclosures associated with this intent.
required:
- id
- policy_id
- status
- amendment_reason
- requested_changes
- disclosures
title: PolicyAmendmentIntentResponse
PolicyAmendmentReasonRequest:
type: object
properties:
type:
$ref: '#/components/schemas/AmendmentReasonType'
description: The type of amendment reason.
qualifying_life_event:
$ref: '#/components/schemas/QualifyingLifeEventSupplementalInfo'
description: Supplemental information required for qualifying life event amendments.
required:
- type
title: PolicyAmendmentReasonRequest
DependentInfoResponse:
type: object
properties:
associated_person_id:
type: string
description: The associated person ID. Prefixed with `ap_`.
status:
$ref: '#/components/schemas/DependentsManagementIntentDependentStatus'
# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kota/refs/heads/main/openapi/kota-policyamendmentintents-api-openapi.yml