Kota Enrolment Intents API
The Enrolment Intents API from Kota — 7 operation(s) for enrolment intents.
The Enrolment Intents API from Kota — 7 operation(s) for enrolment intents.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/kota-enrolment-intents-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Kota Enrolment Intents API
version: '1.0'
servers:
- url: https://test.api.kota.io
description: Test Kota API
x-fern-server-name: test
- url: https://api.kota.io
description: Production Kota API
x-fern-server-name: production
security:
- bearerAuth: []
tags:
- name: Enrolment Intents
paths:
/enrolment_intents:
post:
tags:
- Enrolment Intents
summary: Create a new enrolment intent
description: Creates a new `enrolment_intent` to manage the enrolment of an employee into a group. An enrolment intent represents the intention to enrol an employee into a specific group, and tracks the status and progress of that enrolment process.
operationId: CreateEnrolmentIntent
parameters:
- name: Idempotency-Key
in: header
description: Unique key to ensure idempotent requests. If the same key is used for multiple _identical & successful_ requests, the same response will be returned. [Read more here](/api#idempotent-requests)
schema:
type: string
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/CreateEnrolmentIntentRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EnrolmentIntentResponse'
'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'
get:
tags:
- Enrolment Intents
summary: List all enrolment intents
description: Returns a list of `enrolment_intents`. The `enrolment_intents` are returned sorted by creation date, with the most recent `enrolment_intent` appearing first.
operationId: ListEnrolmentIntents
parameters:
- name: employee_id
in: query
description: Filters enrolment intents by employee.
schema:
pattern: ee_.+
type: string
description: Filters enrolment intents by employee.
example: ee_3b1333d87d9d4fd6ad83ba7f6b0e951a
- name: group_id
in: query
description: Filters enrolment intents by group.
schema:
pattern: gr_.+
type: string
description: Filters enrolment intents by group.
example: gr_3b1333d87d9d4fd6ad83ba7f6b0e951a
- name: status
in: query
description: 'Multiple values can be provided by separating them with a comma. Allowed values are: `processing`, `scheduled`, `action_required`, `addon_selection_required`, `pending_confirmation`, `enrolling`, `enrolled`, `not_undertaken`, `ineligible`.'
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/EnrolmentIntentResponsePagedList'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/enrolment_intents/{enrolment_intent_id}:
put:
tags:
- Enrolment Intents
summary: Update policy configuration enrolment intent
description: Updates the policy configuration for an existing `enrolment_intent`. This will reset the enrolment intent back to `processing` status and re-evaluate the enrolment intent based on the new configuration provided.Unavailable for enrolment intents that are already `enrolling` or `enrolled`.
operationId: UpdateEnrolmentIntentConfiguration
parameters:
- name: enrolment_intent_id
in: path
required: true
schema:
pattern: ei_.+
type: string
example: ei_3b1333d87d9d4fd6ad83ba7f6b0e951a
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PolicyConfigurationRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EnrolmentIntentResponse'
'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'
get:
tags:
- Enrolment Intents
summary: Retrieve an enrolment intent
description: Retrieves an `enrolment_intent` object.
operationId: RetrieveEnrolmentIntent
parameters:
- name: enrolment_intent_id
in: path
required: true
schema:
pattern: ei_.+
type: string
example: ei_3b1333d87d9d4fd6ad83ba7f6b0e951a
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EnrolmentIntentResponse'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/enrolment_intents/{enrolment_intent_id}/requirements:
get:
tags:
- Enrolment Intents
summary: List requirements for an enrolment intent
description: Returns a paginated list of adaptive requirements for an `enrolment_intent`. Requirements must be fulfilled before enrolment can proceed.
operationId: ListEnrolmentIntentRequirements
parameters:
- name: enrolment_intent_id
in: path
required: true
schema:
pattern: ei_.+
type: string
example: ei_3b1333d87d9d4fd6ad83ba7f6b0e951a
- name: object_type
in: query
description: Filter by object type (employee or employer)
schema:
allOf:
- $ref: '#/components/schemas/RequirementObjectTypeEnumParameter'
description: Filter by object type (employee or employer)
- name: object_id
in: query
description: Filter by object ID (employee ID or employer ID)
schema:
type: string
description: Filter by object ID (employee ID or employer ID)
- 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/EnrolmentIntentRequirementResponsePagedList'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/enrolment_intents/{enrolment_intent_id}/confirm:
post:
tags:
- Enrolment Intents
summary: Confirm an enrolment intent
description: Confirms an `enrolment_intent` that is in `PendingConfirmation` status. This transitions the enrolment intent to `Enrolling` status and initiates the enrolment process with the insurance provider.
operationId: ConfirmEnrolmentIntent
parameters:
- name: enrolment_intent_id
in: path
required: true
schema:
pattern: ei_.+
type: string
example: ei_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'
/enrolment_intents/{enrolment_intent_id}/reject:
post:
tags:
- Enrolment Intents
summary: Reject an enrolment intent
description: Rejects an `enrolment_intent` that is in `PendingConfirmation`, `ActionRequired`, or `AddonSelectionRequired` status. This transitions the enrolment intent to `NotUndertaken` status.
operationId: RejectEnrolmentIntent
parameters:
- name: enrolment_intent_id
in: path
required: true
schema:
pattern: ei_.+
type: string
example: ei_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'
/enrolment_intents/{enrolment_intent_id}/coverage-selections:
post:
tags:
- Enrolment Intents
summary: Submit coverage selections for an enrolment intent
description: Submits plan coverage option selections for an enrolment intent in the `addon_selection_required` status.
operationId: SubmitEnrolmentIntentCoverageSelections
parameters:
- name: enrolment_intent_id
in: path
required: true
schema:
pattern: ei_.+
type: string
example: ei_3b1333d87d9d4fd6ad83ba7f6b0e951a
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SubmitCoverageSelectionsRequest'
required: true
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'
/enrolment_intents/{enrolment_intent_id}/create_dependents_management_intent:
post:
tags:
- Enrolment Intents
summary: Create a dependents management intent for an enrolment intent
description: Creates a dependents management intent as a sub-intent of an enrolment intent. The enrolment intent must be in `pending_confirmation` status.
operationId: CreateDependentsManagementIntentForEnrolmentIntent
parameters:
- name: enrolment_intent_id
in: path
required: true
schema:
pattern: ei_.+
type: string
example: ei_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:
DependentsManagementIntentParentType:
enum:
- policy_amendment_intent
- enrolment_intent
type: string
EnrolmentIntentRequirementResponse:
required:
- id
- is_fulfilled
- object_id
- object_type
- requirement_type
type: object
properties:
id:
pattern: ar_.+
type: string
description: Unique identifier for the requirement
example: ar_3b1333d87d9d4fd6ad83ba7f6b0e951a
object_type:
allOf:
- $ref: '#/components/schemas/RequirementObjectType'
description: Type of object this requirement is for (employee or employer)
object_id:
type: string
description: Identifier of the object (employee ID or employer ID)
is_fulfilled:
type: boolean
description: Whether the requirement has been fulfilled
example: true
requirement_type:
allOf:
- $ref: '#/components/schemas/RequirementType'
description: Type of requirement
object:
type: string
description: Object type identifier
readOnly: true
additionalProperties: false
PerMemberPricingResponse:
required:
- currency
- member_type_pricing
type: object
properties:
currency:
allOf:
- $ref: '#/components/schemas/CurrencyCode'
description: Currency code (e.g., 'eur', 'usd').
member_type_pricing:
type: array
items:
$ref: '#/components/schemas/MemberTypePricingResponse'
description: Pricing for each member type.
additionalProperties: false
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
FamilyTierCode:
enum:
- single
- couple
- single_parent
- family
type: string
MemberTypeCode:
enum:
- adult
- young_adult
- child
type: string
EnrolmentIntentAssociatedPersonResponse:
required:
- dependent
- optional
- type
type: object
properties:
optional:
type: boolean
description: Indicates whether providing information for the related type is optional.
example: true
type:
allOf:
- $ref: '#/components/schemas/AssociatedPersonType'
description: The type of associated person.
dependent:
type: 'null'
allOf:
- $ref: '#/components/schemas/EnrolmentIntentDependentResponse'
description: Dependents-specific information if type is 'dependents'.
additionalProperties: false
PlanCoverageOptionBenefitResponse:
required:
- name
type: object
properties:
name:
type: string
description: Benefit name.
description:
type:
- 'null'
- string
description: Benefit description.
additionalProperties: false
AssociatedPersonType:
enum:
- dependents
type: string
x-fern-enum:
dependents:
description: Dependents (e.g., spouse, children).
HealthInsuranceFamilyCostSharingType:
enum:
- single
- couple
- single_with_children
- family
type: string
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
EnrolmentIntentRequirementResponsePagedList:
required:
- items
- page
- page_size
- total_count
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/EnrolmentIntentRequirementResponse'
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
PolicyType:
enum:
- health_insurance
- life_assurance
type: string
EmployerEligibilityCriterionType:
enum:
- employees_count
- members_count
- industry_exclusions
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
EnrolmentIntentActionRequiredResponse:
required:
- code
- due_by
- reason
- reason_description
type: object
properties:
code:
allOf:
- $ref: '#/components/schemas/IntentActionType'
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-time
example: '2024-12-01T00:00:00Z'
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
DisclosureCategory:
enum:
- regulatory
- provider
- intermediary
type: string
RequirementObjectType:
enum:
- employee
- employer
- associated_person
type: string
HealthInsuranceCostSharingConfigurationResponse:
required:
- type
type: object
properties:
type:
allOf:
- $ref: '#/components/schemas/HealthInsuranceCostSharingType'
description: Cost sharing type. Determines which sub-object is populated.
member_count:
type: 'null'
allOf:
- $ref: '#/components/schemas/HealthInsuranceMemberCountCostSharingConfigurationResponse'
description: Numbers of additional members covered by the employer.
member_selection:
type: 'null'
allOf:
- $ref: '#/components/schemas/HealthInsuranceMemberSelectionCostSharingConfigurationResponse'
description: Whether specific member types are covered by the employer.
percentage:
type: 'null'
allOf:
- $ref: '#/components/schemas/HealthInsurancePercentageCostSharingConfigurationResponse'
description: Percentage of the premium the employer covers.
family_type:
type: 'null'
allOf:
- $ref: '#/components/schemas/HealthInsuranceFamilyTypeCostSharingConfigurationResponse'
description: Type of the family covered by the employer.
additionalProperties: false
HealthInsurancePercentageCostSharingConfigurationResponse:
required:
- percentage
type: object
properties:
percentage:
type: integer
description: "Employer coverage percentage:\n For 40% send 40.\n For 100% send 100."
format: int32
example: 123
additionalProperties: false
PlanDocumentResponse:
required:
- link
- title
type: object
properties:
type:
allOf:
- $ref: '#/components/schemas/PlanDocumentType'
description: Machine-readable document kind used for display and i18n. Possible values are listed below; as this enum can expand with new benefits, unknown values MUST be handled gracefully by clients (fallback to a generic `document` label).
title:
type: string
description: Title of the document.
link:
type: string
description: Public URL to the document. This could be any format (PDF, HTML, etc.).
additionalProperties: false
PlanDocumentType:
enum:
- ipid
- table_of_cover
- waiting_periods
- hospital_list
- plan_summary
- terms_and_conditions
- other
type: string
EnrolmentIntentPendingConfirmationResponse:
required:
- code
- due_by
- reason
- reason_description
type: object
properties:
due_by:
type: string
description: The deadline by which the confirmation must be completed.
format: date-time
example: '2024-12-01T00:00:00Z'
code:
allOf:
- $ref: '#/components/schemas/EnrolmentIntentConfirmationType'
description: The code for the confirmation that needs to be taken.
reason:
type: string
description: 'A reason for the confirmation action that needs to be taken. '
reason_description:
type: string
description: 'A reason description explaining the confirmation action that needs to be taken. '
associated_persons:
type: 'null'
allOf:
- $ref: '#/components/schemas/EnrolmentIntentAssociatedPersonResponse'
description: Information about associated persons related to this enrolment. Used to manage dependents.
additionalProperties: false
HealthInsuranceMemberCountCostSharingConfigurationResponse:
required:
- adults
- children
type: object
properties:
adults:
type: integer
description: Number of additional adults covered, including partner/spouse.
format: int32
example: 123
children:
type: integer
description: Number of additional children covered.
format: int32
example: 123
additionalProperties: false
EnrolmentIntentPolicyEnrolmentResponse:
required:
- estimated_effective_from
- plan
- provider
- type
type: object
properties:
type:
allOf:
- $ref: '#/components/schemas/PolicyType'
description: Type of policy to be created as part of this enrolment intent.
estimated_effective_from:
type: string
description: Estimated date when the policy of this type is expected to become effective in ISO 8601 (YYYY-MM-DD).
format: date
example: '2024-12-01'
provider:
allOf:
- $ref: '#/components/schemas/PolicyProviderResponse'
description: Provider information for this policy (from group policy).
plan:
allOf:
- $ref: '#/components/schemas/PolicyPlanResponse'
description: Plan information for this policy (from group policy).
health_insurance:
type: 'null'
allOf:
- $ref: '#/components/schemas/HealthInsuranceEnrolmentIntentResponse'
description: Health insurance intent information (always present when type=health_insurance).
id:
pattern: p_.+
type:
- 'null'
- string
description: Unique identifier for the policy created as part of this enrolment intent. Prefixed with `p_`. Only populated once the policy has been created.
example: p_3b1333d87d9d4fd6ad83ba7f6b0e951a
additionalProperties: false
HealthInsuranceEnrolmentIntentResponse:
required:
- configuration
type: object
properties:
configuration:
allOf:
- $ref: '#/components/schemas/HealthInsurancePolicyConfigurationResponse'
description: How benefit costs will be shared between employer and employee.
coverage_options:
type:
- 'null'
- array
items:
$ref: '#/components/schemas/PlanCoverageResponse'
description: Available plan coverage options at the policy scope. Only present when the plan has policy-scoped coverage configurations.
coverage_selections:
type:
- 'null'
- array
items:
$ref: '#/components/schemas/PlanCoverageOptionSelectionResponse'
description: Current coverage option selections. Populated when selections have been submitted.
additionalProperties: false
EnrolmentIntentResponsePagedList:
required:
- items
- page
- page_size
- total_count
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/EnrolmentIntentResponse'
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
EnrolmentIntentResponse:
required:
- disclosures
- employee_id
- force_confirmation
- group_id
- id
- policy_enrolments
- status
type: object
properties:
id:
pattern: ei_.+
type: string
description: Unique identifier for the enrolment intent. Prefixed with `ei_`.
example: ei_3b1333d87d9d4fd6ad83ba7f6b0e951a
employee_id:
pattern: ee_.+
type: string
description: Identifier for the employee associated with this enrolment intent. Prefixed with `ee_`.
example: ee_3b1333d87d9d4fd6ad83ba7f6b0e951a
group_id:
pattern: gr_.+
type: string
description: Identifier for the group associated with this enrolment intent. Prefixed with `gr_`.
example: gr_3b1333d87d9d4fd6ad83ba7f6b0e951a
status:
allOf:
- $ref: '#/components/schemas/EnrolmentIntentStatus'
description: Current status of the enrolment intent.
force_confirmation:
type: boolean
description: If set to true, the system will always force the `PendingConfirmation` state be
# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kota/refs/heads/main/openapi/kota-enrolment-intents-api-openapi.yml