openapi: 3.2.0
info:
title: Reference Coverages API
version: 1.0.0
servers:
- url: https://pre-api.joincandidhealth.com
description: Production
- url: https://pre-api-staging.joincandidhealth.com
description: Staging
- url: https://sandbox-pre-api.joincandidhealth.com
description: CandidSandbox
- url: https://staging-pre-api.joincandidhealth.com
description: CandidStaging
- url: http://localhost:4000
description: Local
- url: https://api.joincandidhealth.com
description: Production
- url: https://api-staging.joincandidhealth.com
description: Staging
- url: https://sandbox-api.joincandidhealth.com
description: CandidSandbox
- url: https://staging-api.joincandidhealth.com
description: CandidStaging
- url: http://localhost:5050
description: Local
tags:
- name: Coverages
paths:
/coverages/v1/:
post:
operationId: create
summary: Create
description: Creates a new Coverage. A Coverage provides the high-level identifiers and descriptors of a specific insurance plan for a specific individual - typically the information you can find on an insurance card. Additionally a coverage will include detailed benefits information covered by the specific plan for the individual.
tags:
- Coverages
parameters:
- name: Authorization
in: header
description: OAuth authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_Coverage'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_MutableCoverage'
get:
operationId: get_multi
summary: Get Multi
description: Returns a list of Coverages based on the search criteria.
tags:
- Coverages
parameters:
- name: patient_id
in: query
required: false
schema:
type: string
- name: Authorization
in: header
description: OAuth authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_Coverage'
/coverages/v1//{id}/{version}:
put:
operationId: update
summary: Update
description: Updates a Coverage. The path must contain the next version number to prevent race conditions. For example, if the current version of the coverage is n, you will need to send a request to this endpoint with `/{id}/n+1` to update the coverage. Updating historic versions is not supported.
tags:
- Coverages
parameters:
- name: id
in: path
required: true
schema:
$ref: '#/components/schemas/type_pre-encounter_common_CoverageId'
- name: version
in: path
required: true
schema:
type: string
- name: Authorization
in: header
description: OAuth authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_Coverage'
'404':
description: Error response with status 404
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- NotFoundError
content:
$ref: '#/components/schemas/type_pre-encounter_common_ErrorBase4xx'
required:
- errorName
- content
'409':
description: Error response with status 409
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- VersionConflictError
content:
$ref: '#/components/schemas/type_pre-encounter_common_VersionConflictErrorBody'
required:
- errorName
- content
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_MutableCoverage'
/coverages/v1//get-multi-paginated:
get:
operationId: get_multi_paginated
summary: Get Multi Paginated
description: Returns a page of Coverages based on the search criteria.
tags:
- Coverages
parameters:
- name: patient_id
in: query
required: false
schema:
type: string
- name: payer_plan_group_id
in: query
required: false
schema:
type: string
- name: page_token
in: query
required: false
schema:
$ref: '#/components/schemas/type_pre-encounter_common_PageToken'
- name: limit
in: query
description: Must be between 0 and 1000. Defaults to 100
required: false
schema:
type: integer
- name: Authorization
in: header
description: OAuth authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoveragesPage'
'400':
description: Error response with status 400
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- BadRequestError
content:
$ref: '#/components/schemas/type_pre-encounter_common_ErrorBase4xx'
required:
- errorName
- content
/coverages/v1//{id}:
get:
operationId: get
summary: Get
description: gets a specific Coverage
tags:
- Coverages
parameters:
- name: id
in: path
required: true
schema:
$ref: '#/components/schemas/type_pre-encounter_common_CoverageId'
- name: Authorization
in: header
description: OAuth authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_Coverage'
/coverages/v1//{id}/history:
get:
operationId: get_history
summary: Get History
description: 'Gets a coverage''s history. Full history is returned if no filters are
defined. The return list is ordered by version, defaulting to ascending.'
tags:
- Coverages
parameters:
- name: id
in: path
required: true
schema:
$ref: '#/components/schemas/type_pre-encounter_common_CoverageId'
- name: start
in: query
required: false
schema:
type: string
format: date
- name: end
in: query
required: false
schema:
type: string
format: date
- name: non_auto_updated_coverages_only
in: query
description: If true, only returns coverages that have NOT been auto-updated by the system.
required: false
schema:
type: boolean
- name: sort_direction
in: query
description: Defaults to ascending. Sorts by version.
required: false
schema:
$ref: '#/components/schemas/type_pre-encounter_common_SortDirection'
- name: limit
in: query
description: Must be between 0 and 1000. No default.
required: false
schema:
type: integer
- name: Authorization
in: header
description: OAuth authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_Coverage'
'400':
description: Error response with status 400
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- BadRequestError
content:
$ref: '#/components/schemas/type_pre-encounter_common_ErrorBase4xx'
required:
- errorName
- content
'404':
description: Error response with status 404
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- NotFoundError
content:
$ref: '#/components/schemas/type_pre-encounter_common_ErrorBase4xx'
required:
- errorName
- content
/coverages/v1//updates/scan:
get:
operationId: scan
summary: Scan
description: 'Scans up to 100 coverage updates. The since query parameter is inclusive, and the result list is ordered by updatedAt ascending.
**Polling Pattern:**
To continuously poll for updates without gaps:
1. Make your initial request with a `since` timestamp (e.g., `since=2020-01-01T13:00:00.000Z`)
2. The API returns up to 100 coverage records, sorted by `updated_at` ascending
3. Find the `updated_at` value from the last record in the response
4. Use that `updated_at` value as the `since` parameter in your next request
5. Repeat steps 2-4 to ingest updates until you receive an empty list
**Important Notes:**
- The `since` parameter is inclusive, so you may receive the last record from the previous batch again (you can deduplicate by ID and version)
- All coverage records include `updated_at`, `id`, `version`, `deactivated`, and `updating_user` fields for tracking changes
- Timestamps have millisecond resolution for precise ordering'
tags:
- Coverages
parameters:
- name: since
in: query
required: true
schema:
type: string
format: date-time
- name: Authorization
in: header
description: OAuth authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_Coverage'
/coverages/v1//batch-update-ppg/{ppg_id}:
post:
operationId: batch_update_ppg
summary: Batch Update Ppg
description: Finds all coverages associated with the given ppg_id and updates the ppg_fields for each coverage.
tags:
- Coverages
parameters:
- name: ppg_id
in: path
required: true
schema:
$ref: '#/components/schemas/type_pre-encounter_common_PayerPlanGroupId'
- name: Authorization
in: header
description: OAuth authentication
required: true
schema:
type: string
responses:
'200':
description: Successful response
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_PayerPlanGroupFields'
/coverages/v1//{id}/eligibility:
post:
operationId: check_eligibility
summary: Check Eligibility
description: Initiates an eligibility check. Returns the metadata of the check if successfully initiated.
tags:
- Coverages
parameters:
- name: id
in: path
required: true
schema:
$ref: '#/components/schemas/type_pre-encounter_common_CoverageId'
- name: Authorization
in: header
description: OAuth authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityCheckMetadata'
requestBody:
content:
application/json:
schema:
type: object
properties:
service_code:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_ServiceTypeCode'
date_of_service:
type: string
format: date
npi:
type: string
required:
- service_code
- date_of_service
- npi
/coverages/v1//{id}/eligibility/{check_id}:
get:
operationId: get_eligibility
summary: Get Eligibility
description: Gets the eligibility of a patient for a specific coverage if successful.
tags:
- Coverages
parameters:
- name: id
in: path
required: true
schema:
$ref: '#/components/schemas/type_pre-encounter_common_CoverageId'
- name: check_id
in: path
required: true
schema:
type: string
- name: Authorization
in: header
description: OAuth authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageEligibilityCheckResponse'
components:
schemas:
type_pre-encounter_coverages_v1_LatestEligibilityCheck:
type: object
properties:
check_id:
type: string
status:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityStatus'
initiated_at:
type: string
format: date-time
errors:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityCheckErrorDetails'
required:
- check_id
- status
- initiated_at
description: A type to represent the latest eligibility check status of a coverage.
title: LatestEligibilityCheck
type_pre-encounter_coverages_v1_BenefitsRelatedEntity:
type: object
properties:
entityIdentifier:
type: string
entityType:
type: string
entityName:
type: string
contactInformation:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_RelatedEntityContact'
serviceTypeCodes:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_ServiceTypeCode'
title: BenefitsRelatedEntity
type_pre-encounter_coverages_v1_PlanMetadata:
type: object
properties:
payer_name:
type: string
insurance_type:
type: string
insurance_type_code:
type: string
plan_name:
type: string
member_id:
type: string
group_number:
type: string
start_date:
type: string
format: date
end_date:
type: string
format: date
plan_dates:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_PlanDate'
subscriber:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_ExpandedMemberInfo'
dependent:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_ExpandedMemberInfo'
title: PlanMetadata
type_pre-encounter_coverages_v1_CoverageDetails:
type: object
properties:
type:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_BenefitType'
coverageLevel:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageLevel'
unit:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValueUnit'
value:
type: number
format: double
additional_notes:
type: string
required:
- type
- coverageLevel
- unit
- value
title: CoverageDetails
type_pre-encounter_eligibilityChecks_v1_EligibilityRequest:
type: object
properties:
submitter_transaction_identifier:
type: string
description: 'A unique identifier for the eligibility check within the batch. Candid returns this identifier in the response for the
/batch/{batch_id} polling endpoint so you can correlate benefit responses with the original eligibility check.'
payer_id:
type: string
description: Supported payer ID values can be found [here](https://www.stedi.com/healthcare/network).
provider:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_Provider'
subscriber:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_MemberInfo'
description: The primary policyholder for the insurance plan or a dependent with a unique member ID. If a dependent has a unique member ID, include their information here and leave dependent undefined.
dependent:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_MemberInfo'
description: If a dependent has a unique member ID, include their information as subscriber and leave this field undefined.
encounter:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_Encounter'
get_existing_check_initiated_after:
type: string
format: date-time
description: If not provided, this endpoint will run a fresh eligibility check. If provided, it will return an existing successful eligibility check if one exists that was initiated after provided date with the same parameters (Date of Service, Payer ID, Provider, Subscriber, Dependent, and Encounter).
source:
type: string
portal_password:
type: string
description: The password that the provider uses to log in to the payer's portal. This is not commonly used.
portal_username:
type: string
description: The username that the provider uses to log in to the payer's portal. This is not commonly used.
required:
- payer_id
- provider
- subscriber
description: An object representing the data for an eligibility request.
title: EligibilityRequest
type_pre-encounter_coverages_v1_Subscriber:
type: object
properties:
name:
$ref: '#/components/schemas/type_pre-encounter_common_HumanName'
date_of_birth:
type: string
format: date
biological_sex:
$ref: '#/components/schemas/type_pre-encounter_common_Sex'
address:
$ref: '#/components/schemas/type_pre-encounter_common_Address'
employer_name:
type: string
required:
- name
- biological_sex
title: Subscriber
type_pre-encounter_eligibilityChecks_v1_ParsedResponse:
type: object
properties:
eligibility_status:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityStatus'
plan_metadata:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_PlanMetadata'
benefits:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageBenefits'
required:
- eligibility_status
title: ParsedResponse
type_pre-encounter_eligibilityChecks_v1_EligibilityCheckError:
type: object
properties:
source:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityCheckErrorSource'
errorDetails:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityCheckErrorDetails'
required:
- source
- errorDetails
title: EligibilityCheckError
type_pre-encounter_coverages_v1_CoverageBenefits:
type: object
properties:
plan_coverage:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_PlanCoverage'
service_specific_coverage:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_ServiceCoverage'
benefits_related_entities:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_BenefitsRelatedEntity'
non_covered_details:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_NonCoveredDetail'
notes:
type: string
autoUpdatedEligibilityCheckId:
type: string
title: CoverageBenefits
type_pre-encounter_coverages_v1_PlanDate:
type: object
properties:
start_date:
type: string
format: date
end_date:
type: string
format: date
field_name:
type: string
required:
- start_date
- field_name
title: PlanDate
type_pre-encounter_common_PageToken:
type: string
description: A token that can be used to retrieve the next or previous page of results
title: PageToken
type_pre-encounter_coverages_v1_CarveOutType:
type: string
enum:
- BEHAVIORAL
- MEDICAL
- THERAPY
title: CarveOutType
type_pre-encounter_coverages_v1_MutableCoverage:
type: object
properties:
status:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageStatus'
description: The status indiciating if the coverage is active or not.
subscriber:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_Subscriber'
description: The party who has signed-up for or 'owns' the contractual relationship to the policy or to whom the benefit of the policy for services rendered to them or their family is due.
relationship:
$ref: '#/components/schemas/type_pre-encounter_common_Relationship'
description: The relationship of beneficiary (patient) to the subscriber. https://hl7.org/fhir/valueset-relationship.html
patient:
$ref: '#/components/schemas/type_pre-encounter_common_PatientId'
description: The canonical Candid patient UUID corresponding with the patient who benefits from the insurance coverage
insurance_plan:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_InsurancePlan'
verified:
type: boolean
description: A boolean indicating if the coverage has been verified by a user.
eligibility_checks:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityCheckMetadata'
description: A list of eligibility check metadata that have been initiated on this coverage.
latest_eligibility_check:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_LatestEligibilityCheck'
description: The latest eligibility check metadata that has been initiated on this coverage.
benefits:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageBenefits'
description: The eligibility of the patient for the coverage, manually verified by users.
orcon:
type: boolean
description: ORCON (Originator Controlled) - When set to true, the Candid system will hide this coverage from downstream integrations. Updates made in the Candid UI will unset this flag. Defaults to false.
auto_update_enabled:
type: boolean
description: Default to true. When set to true, the Candid system will automatically update this coverage with the latest eligibility check benefits information. Auto update behavior is also set at the eligibilityConfig org level configuration.
previous_appointment_copays:
type: object
additionalProperties:
type: integer
description: A map of UniversalServiceIdentifier (MD_Visit, Treatment, Tests, Activity) to copay values in cents. This is used to track copay values for each service type to handle OOP max resets correctly.
required:
- status
- subscriber
- relationship
- patient
- insurance_plan
- verified
title: MutableCoverage
type_pre-encounter_coverages_v1_CoverageStatus:
type: string
enum:
- ACTIVE
- CANCELLED
- DRAFT
- ENTERED_IN_ERROR
description: enum to represent the statuses defined at https://build.fhir.org/valueset-fm-status.html
title: CoverageStatus
type_pre-encounter_coverages_v1_PlanCoverageDetails:
type: object
properties:
deductible:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
deductible_contract:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
deductible_remaining:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
deductible_year_to_date:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
oop_max:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
oop_max_contract:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
oop_max_remaining:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
oop_max_year_to_date:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
additional_notes:
type: string
title: PlanCoverageDetails
type_pre-encounter_eligibilityChecks_v1_IndividualProvider:
type: object
properties:
first_name:
type: string
last_name:
type: string
npi:
type: string
required:
- npi
title: IndividualProvider
type_pre-encounter_eligibilityChecks_v1_EligibilityCheckMetadata:
type: object
properties:
check_id:
type: string
service_code:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_ServiceTypeCode'
status:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityCheckStatus'
initiated_by:
$ref: '#/components/schemas/type_pre-encounter_common_UserId'
initiated_at:
type: string
format: date-time
required:
- check_id
- service_code
- status
- initiated_by
- initiated_at
title: EligibilityCheckMetadata
type_pre-encounter_common_UserId:
type: string
description: The unique identifier for a User in the database
title: UserId
type_pre-encounter_coverages_v1_ServiceCoverageDetails:
type: object
properties:
copay:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
coinsurance:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
visits:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
visits_remaining:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValue'
additional_notes:
type: string
title: ServiceCoverageDetails
type_pre-encounter_coverages_v1_InsurancePlan:
type: object
properties:
member_id:
type: string
payer_id:
$ref: '#/components/schemas/type_pre-encounter_common_PayerId'
payer_name:
type: string
additional_payer_information:
$ref: '#/components/schemas/type_pre-encounter_common_AdditionalPayerInformation'
group_number:
type: string
name:
type: string
plan_type:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_NetworkType'
type:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_InsuranceTypeCode'
period:
$ref: '#/components/schemas/type_pre-encounter_common_Period'
insurance_card_image_locator:
type: string
address:
$ref: '#/components/schemas/type_pre-encounter_common_Address'
payer_plan_group_id:
$ref: '#/components/schemas/type_pre-encounter_common_PayerPlanGroupId'
description: The ID of the Candid configured payer plan group associated with this coverage
carve_outs:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageCarveOut'
required:
- member_id
- payer_id
- payer_name
title: InsurancePlan
type_pre-encounter_coverages_v1_Coverage:
type: object
properties:
organization_id:
$ref: '#/components/schemas/type_pre-encounter_common_OrganizationId'
description: The organization that owns this object.
deactivated:
type: boolean
description: True if the object is deactivated. Deactivated objects are not returned in search results but are returned in all other endpoints including scan.
version:
type: integer
description: The version of the object. Any update to any property of an object object will create a new version.
updated_at:
type: string
format: date-time
updating_user_id:
$ref: '#/components/schemas/type_pre-encounter_common_UserId'
description: The user ID of the user who last updated the object.
status:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageStatus'
description: The status indiciating if the coverage is active or not.
subscriber:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_Subscriber'
description: The party who has signed-up for or 'owns' the contractual relationship to the policy or to whom the benefit of the policy for services rendered to them or their family is due.
relationship:
$ref: '#/components/schemas/type_pre-encounter_common_Relationship'
description: The relationship of beneficiary (patient) to the subscriber. https://hl7.org/fhir/valueset-relationship.html
patient:
$ref: '#/components/schemas/type_pre-encounter_common_PatientId'
description: The canonical Candid patient UUID corresponding with the patient who benefits from the insurance coverage
insurance_plan:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_InsurancePlan'
verified:
type: boolean
description: A boolean indicating if the coverage has been verified by a user.
eligibility_checks:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityCheckMetadata'
description: A list of eligibility check metadata that have been initiated on this coverage.
latest_eligibility_check:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_LatestEligibilityCheck'
description: The latest eligibility check metadata that has been initiated on this coverage.
benefits:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageBenefits'
description: The eligibility of the patient for the coverage, manually verified by users.
orcon:
type: boolean
description: ORCON (Originator Controlled) - When set to true, the Candid system will hide this coverage from downstream integrations. Updates made in the Candid UI will unset this flag. Defaults to false.
auto_update_enabled:
type: boolean
description: Default to true. When set to true, the Candid system will automatically update this coverage with the latest eligibility check benefits information. Auto update behavior is also set at the eligibilityConfig org level configuration.
previous_appointment_copays:
type: object
additionalProperties:
type: integer
description: A map of UniversalServiceIdentifier (MD_Visit, Treatment, Tests, Activity) to copay values in cents. This is used to track copay values for each service type to handle OOP max resets correctly.
id:
$ref: '#/components/schemas/type_pre-encounter_common_CoverageId'
required:
- organization_id
- deactivated
- version
- updated_at
- updating_user_id
- status
- subscriber
- relationship
- patient
- insurance_plan
- verified
- id
description: A coverage object with immutable server-owned properties.
title: Coverage
type_pre-encounter_eligibilityChecks_v1_EligibilityCheckErrorSource:
type: string
enum:
- CANDID
- STEDI
description: enum to represent the source of an error in an eligibility check
title: EligibilityCheckErrorSource
type_pre-encounter_common_Period:
type: object
properties:
start:
type: string
format: date
end:
type: string
format: date
title: Period
type_pre-encounter_common_Address:
type: object
properties:
use:
$ref: '#/components/schemas/type_pre-encounter_common_AddressUse'
line:
type: array
items:
type: string
city:
type: string
state:
type: string
postal_code:
type: string
country:
type: string
county:
type: string
period:
$ref: '#/components/schemas/type_pre-encounter_common_Period'
required:
- use
- line
- city
- state
- postal_code
- country
title: Address
type_pre-encounter_coverages_v1_NetworkType:
type: string
enum:
- 09
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- AM
- BL
- CH
- CI
- DS
- FI
- HM
- LM
- MA
- MB
- MC
- OF
- TV
- VA
- WC
- ZZ
title: NetworkType
type_pre-encounter_coverages_v1_CoverageLevel:
type: string
enum:
- EMPLOYEE_AND_CHILDREN
- EMPLOYEE_ONLY
- EMPLOYEE_AND_SPOUSE
- FAMILY
- INDIVIDUAL
title: CoverageLevel
type_pre-encounter_common_CoverageId:
type: string
format: uuid
description: The unique identifier for a Coverage in the database
title: CoverageId
type_pre-encounter_eligibilityChecks_v1_EligibilityCheckStatus:
type: string
enum:
- COMPLETED
- FAILED
- PENDING
description: enum to represent the status of an eligibility checks
title: EligibilityCheckStatus
type_pre-encounter_eligibilityChecks_v1_EligibilityStatus:
type: string
enum:
- ACTIVE
- INACTIVE
- UNKNOWN
description: enum to represent the status of a patient's coverage
title: EligibilityStatus
type_pre-encounter_common_ErrorBase4xx:
type: object
properties:
message:
type: string
data:
description: Any type
required:
- message
title: ErrorBase4xx
type_pre-encounter_common_PayerId:
type: string
description: The unique identifier for a Payer in the database
title: PayerId
type_pre-encounter_coverages_v1_Address:
type: object
properties:
address1:
type: string
address2:
type: string
city:
type: string
state:
type: string
postal_code:
type: string
country_code:
type: string
country_sub_division_code:
type: string
title: Address
type_pre-encounter_common_PayerPlanGroupId:
type: string
format: uuid
description: The unique identifier for a PayerPlanGroup in the database
title: PayerPlanGroupId
type_pre-encounter_coverages_v1_CoverageEligibilityCheckResponse:
type: object
properties:
metadata:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityCheckMetadata'
check:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityCheck'
required:
- metadata
title: CoverageEligibilityCheckResponse
type_pre-encounter_coverages_v1_ServiceTypeCode:
type: string
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '20'
- '21'
- '22'
- '23'
- '24'
- '25'
- '26'
- '27'
- '28'
- '30'
- '32'
- '33'
- '34'
- '35'
- '36'
- '37'
- '38'
- '39'
- '40'
- '41'
- '42'
- '43'
- '44'
- '45'
- '46'
- '47'
- '48'
- '49'
- '50'
- '51'
- '52'
- '53'
- '54'
- '55'
- '56'
- '57'
- '58'
- '59'
- '60'
- '61'
- '62'
- '63'
- '64'
- '65'
- '66'
- '67'
- '68'
- '69'
- '70'
- '71'
- '72'
- '73'
- '74'
- '75'
- '76'
- '77'
- '78'
- '79'
- '80'
- '81'
- '82'
- '83'
- '84'
- '85'
- '86'
- '87'
- '88'
- '89'
- '90'
- '91'
- '92'
- '93'
- '94'
- '95'
- '96'
- '97'
- '98'
- '99'
- A0
- A1
- A2
- A3
- A4
- A5
- A6
- A7
- A8
- A9
- AA
- AB
- AC
- AD
- AE
- AF
- AG
- AH
- AI
- AJ
- AK
- AL
- AM
- AN
- AO
- AQ
- AR
- B1
- B2
- B3
- BA
- BB
- BC
- BD
- BE
- BF
- BG
- BH
- BI
- BJ
- BK
- BL
- BM
- BN
- BP
- BQ
- BR
- BS
- BT
- BU
- BV
- BW
- BX
- BY
- BZ
- C1
- CA
- CB
- CC
- CD
- CE
- CF
- CG
- CH
- CI
- CJ
- CK
- CL
- CM
- CN
- CO
- CP
- CQ
- DG
- DM
- DS
- GF
- GN
- GY
- IC
- MH
- NI
- 'ON'
- PT
- PU
- RN
- RT
- TC
- TN
- UC
description: Code identifying the type of service or benefit within a specific insurance policy (X12 008010 Element 1365)
title: ServiceTypeCode
type_pre-encounter_eligibilityChecks_v1_Provider:
oneOf:
- $ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_IndividualProvider'
- $ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_OrganizationProvider'
title: Provider
type_pre-encounter_coverages_v1_InsuranceTypeCode:
type: string
enum:
- '01'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '41'
- '42'
- '43'
- '47'
- AP
- C1
- CO
- CP
- D
- DB
- E
- EP
- FF
- GP
- HA
- HB
- HD
- HG
- HM
- HN
- HP
- HS
- IN
- IP
- LC
- LD
- LI
- LT
- M
- MA
- MB
- MC
- MD
- ME
- MF
- MH
- MI
- MJ
- MK
- ML
- MM
- MN
- MO
- MP
- MR
- MT
- MV
- OA
- OT
- PE
- PL
- PP
- PR
- PS
- QM
- RP
- SP
- TF
- U
- WC
- WU
description: Code identifying the type of insurance policy within a specific insurance program (X12 008020 Element 1336)
title: InsuranceTypeCode
type_pre-encounter_coverages_v1_CoverageCarveOut:
type: object
properties:
carve_out:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CarveOutType'
member_id:
type: string
payer_id:
$ref: '#/components/schemas/type_pre-encounter_common_PayerId'
payer_name:
type: string
group_number:
type: string
plan_type:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_NetworkType'
type:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_InsuranceTypeCode'
payer_plan_group_id:
$ref: '#/components/schemas/type_pre-encounter_common_PayerPlanGroupId'
description: The ID of the Candid configured payer plan group associated with this coverage
required:
- carve_out
- member_id
- payer_id
- payer_name
title: CoverageCarveOut
type_pre-encounter_coverages_v1_RelatedEntityContact:
type: object
properties:
mode:
type: string
value:
type: string
title: RelatedEntityContact
type_pre-encounter_coverages_v1_PayerPlanGroupFields:
type: object
properties:
payer_plan_group_id:
$ref: '#/components/schemas/type_pre-encounter_common_PayerPlanGroupId'
payer_id:
$ref: '#/components/schemas/type_pre-encounter_common_PayerId'
payer_name:
type: string
plan_type:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_NetworkType'
required:
- payer_plan_group_id
- payer_id
- payer_name
- plan_type
title: PayerPlanGroupFields
type_pre-encounter_coverages_v1_BenefitType:
type: string
enum:
- DEDUCTIBLE
- DEDUCTIBLE_CONTRACT
- DEDUCTIBLE_REMAINING
- DEDUCTIBLE_YEAR_TO_DATE
- OOP_MAX
- OOP_MAX_CONTRACT
- OOP_MAX_REMAINING
- OOP_MAX_YEAR_TO_DATE
- COPAY
- COINSURANCE
- NON_COVERED
- LIMITATION
title: BenefitType
type_pre-encounter_coverages_v1_ServiceCoverage:
type: object
properties:
service_code:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_ServiceTypeCode'
in_network:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_ServiceCoverageDetails'
in_network_flat:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageDetails'
out_of_network:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_ServiceCoverageDetails'
out_of_network_flat:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageDetails'
required:
- service_code
title: ServiceCoverage
type_pre-encounter_common_Sex:
type: string
enum:
- FEMALE
- MALE
- UNKNOWN
- REFUSED
title: Sex
type_pre-encounter_eligibilityChecks_v1_EligibilityCheck:
type: object
properties:
batch_id:
type: string
errors:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityCheckError'
request:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_EligibilityRequest'
response:
description: Any type
parsed_response:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_ParsedResponse'
request_corrections:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_eligibilityChecks_v1_RequestCorrection'
required:
- response
title: EligibilityCheck
type_pre-encounter_common_HumanName:
type: object
properties:
family:
type: string
given:
type: array
items:
type: string
use:
$ref: '#/components/schemas/type_pre-encounter_common_NameUse'
period:
$ref: '#/components/schemas/type_pre-encounter_common_Period'
suffix:
type: string
required:
- family
- given
- use
title: HumanName
type_pre-encounter_common_NameUse:
type: string
enum:
- USUAL
- OFFICIAL
- TEMP
- NICKNAME
- ANONYMOUS
- OLD
- MAIDEN
title: NameUse
type_pre-encounter_common_AdditionalPayerInformation:
type: object
properties:
availity_eligibility_id:
type: string
availity_payer_id:
type: string
availity_payer_name:
type: string
availity_remittance_payer_id:
type: string
title: AdditionalPayerInformation
type_pre-encounter_common_VersionConflictErrorBody:
type: object
properties:
message:
type: string
data:
description: Any type
latest_version:
type: integer
required:
- message
title: VersionConflictErrorBody
type_pre-encounter_eligibilityChecks_v1_RequestCorrection:
type: object
properties:
property:
type: string
request_value:
type: string
corrected_value:
type: string
required:
- property
- request_value
- corrected_value
title: RequestCorrection
type_pre-encounter_eligibilityChecks_v1_OrganizationProvider:
type: object
properties:
organization_name:
type: string
npi:
type: string
required:
- npi
title: OrganizationProvider
type_pre-encounter_coverages_v1_PlanCoverage:
type: object
properties:
in_network:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_PlanCoverageDetails'
in_network_flat:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageDetails'
out_of_network:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_PlanCoverageDetails'
out_of_network_flat:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageDetails'
title: PlanCoverage
type_pre-encounter_coverages_v1_CoverageValueUnit:
type: string
enum:
- PERCENT
- CURRENCY
- COUNT
title: CoverageValueUnit
type_pre-encounter_common_PatientId:
type: string
description: The unique identifier for a Patient
title: PatientId
type_pre-encounter_common_Relationship:
type: string
enum:
- SELF
- SPOUSE
- CHILD
- COMMON_LAW_SPOUSE
- OTHER
title: Relationship
type_pre-encounter_coverages_v1_CoverageValue:
type: object
properties:
family:
type: number
format: double
individual:
type: number
format: double
employeeAndSpouse:
type: number
format: double
employeeAndChildren:
type: number
format: double
title: CoverageValue
type_pre-encounter_coverages_v1_ExpandedMemberInfo:
type: object
properties:
member_id:
type: string
group_number:
type: string
first_name:
type: string
middle_name:
type: string
last_name:
type: string
date_of_birth:
type: string
gender:
type: string
address:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_Address'
title: ExpandedMemberInfo
type_pre-encounter_common_SortDirection:
type: string
enum:
- asc
- desc
title: SortDirection
type_pre-encounter_common_AddressUse:
type: string
enum:
- HOME
- WORK
- TEMP
- OLD
- BILLING
title: AddressUse
type_pre-encounter_coverages_v1_CoveragesPage:
type: object
properties:
next_page_token:
$ref: '#/components/schemas/type_pre-encounter_common_PageToken'
prev_page_token:
$ref: '#/components/schemas/type_pre-encounter_common_PageToken'
total:
type: integer
items:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_Coverage'
required:
- total
- items
title: CoveragesPage
type_pre-encounter_eligibilityChecks_v1_Encounter:
type: object
properties:
date_of_service:
type: string
format: date
description: Defaults to the current date if not provided.
service_type_codes:
type: array
items:
type: string
description: 'Defaults to HealthBenefitPlanCoverage (30) if not provided.
Not all payers support multiple service type codes, so it is recommended to only include a single code per request.'
title: Encounter
type_pre-encounter_coverages_v1_NonCoveredDetail:
type: object
properties:
type:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_BenefitType'
coverageLevel:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageLevel'
unit:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_CoverageValueUnit'
value:
type: number
format: double
additional_notes:
type: string
service_type_codes:
type: array
items:
$ref: '#/components/schemas/type_pre-encounter_coverages_v1_ServiceTypeCode'
required:
- type
- coverageLevel
- unit
- value
title: NonCoveredDetail
type_pre-encounter_common_OrganizationId:
type: string
description: The unique identifier for an Organization in the database
title: OrganizationId
type_pre-encounter_eligibilityChecks_v1_EligibilityCheckErrorDetails:
type: object
properties:
field?:
type: string
description?:
type: string
location?:
type: string
possibleResolutions?:
type: string
code?:
type: string
followupAction?:
type: string
description: This object is our fern representation of Stedi's EligbilityCheckError object from their API.
title: EligibilityCheckErrorDetails
type_pre-encounter_coverages_v1_MemberInfo:
type: object
properties:
member_id:
type: string
description: "Stedi requires that you supply at least one of these fields in the request: memberId, dateOfBirth, or lastName. \nHowever, each payer has different requirements, so you should supply as many of the fields necessary for each payer \nto identify the subscriber/dependent in their system."
first_name:
type: string
last_name:
type: string
date_of_birth:
type: string
format: date
description: "Stedi requires that you supply at least one of these fields in the request: memberId, dateOfBirth, or lastName. \nHowever, each payer has different requirements, so you should supply as many of the fields necessary for each payer \nto identify the subscriber/dependent in their system."
required:
- first_name
- last_name
title: MemberInfo
securitySchemes:
OAuthScheme:
type: http
scheme: bearer
description: OAuth 2.0 authentication