OpenAPI Specification
openapi: 3.1.0
info:
title: Element5 Authorization Eligibility API
description: 'Element5 APIs enables the clients to invoke and monitor Element5 Workflows. The E5 APIs are protected by API keys and the keys would be shared during the onboarding process. Due to the long running nature of workflows the current state of the workflows can be tracked either by polling E5 APIs for status or exposing a webhook which will be notified about progress. The below sections highlight the APIs and events which would be relevant for the current engagement.
# Authentication
<!-- ReDoc-Inject: <security-definitions> -->'
contact:
email: apisupport@e5.ai
version: 2.2.0
x-logo:
url: https://cdn.prod.website-files.com/658c60c4ff902effa2174f77/668c43e2bfb9956a2995b419_e5-logo-gradient.png
altText: Element5
href: https://e5.ai
servers:
- url: https://api-qa.e5.ai
description: Non-Production Server
- url: https://api.e5.ai
description: Production Server
security:
- ApiKeyAuth: []
tags:
- name: Eligibility
description: Eligibility related APIs
paths:
/wf/v2/workflows/submit-eligibility:
post:
tags:
- Eligibility
summary: Eligibility Submission Request
operationId: submitEligibilityRequest
description: All the necessary information required to submit an eligibility request. On receipt, the API performs a quick validation (not verification) of the request for correctness. On successful validation returns a `taskId` which can be used for tracking this request. Also, the `task#queued` event is triggered.
requestBody:
description: Submit Eligibility Request Body
content:
application/json:
schema:
$ref: '#/components/schemas/SubmitEligibilityRequest'
responses:
'200':
description: Submit Eligibility Request Created
content:
application/json:
schema:
$ref: '#/components/schemas/TaskRequestSuccessResponse_Eligibility'
'400':
description: Submit Eligibility Request Failed
content:
application/json:
schema:
$ref: '#/components/schemas/TaskRequestFailedResponse'
'401':
description: API key is missing or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/AuthError'
'403':
description: Access forbidden. The API key is valid but does not have permission to access this resource.
content:
application/json:
schema:
$ref: '#/components/schemas/AuthorizationError'
security:
- ApiKeyAuth: []
/wf/v2/workflows/submit-eligibility/{task-id}:
get:
tags:
- Eligibility
summary: Eligibility Submission Request Status
description: Fetch the current status of an Eligibility Submission Request. It takes the `taskId`, provided by the Eligibility Submission Request, as input.
operationId: getSubmitEligibilityRequestStatus
parameters:
- name: task-id
in: path
description: Provide a task id to retreive the Eligibility Submission Request status
required: true
style: simple
explode: false
schema:
type: string
format: uuid
responses:
'200':
description: Status of an Eligibility Submission Request
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_eligibility'
'401':
description: API key is missing or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/AuthError'
'403':
description: Access forbidden. The API key is valid but does not have permission to access this resource.
content:
application/json:
schema:
$ref: '#/components/schemas/AuthorizationError'
security:
- ApiKeyAuth: []
/wf/v2/workflows/process-x12-eligibility-transaction:
post:
tags:
- Eligibility
summary: Process X12 Eligibility Transaction (Draft)
operationId: processX12EligibilityTransactionRequest
description: All the necessary information required to process a X12 Eligibility Transaction. On receipt, the API performs a quick validation (not verification) of the request for correctness. On successful validation returns a `taskId` which can be used for tracking this request. Also, the `task#queued` event is triggered.
requestBody:
description: Process X12 Eligibility Transaction Request Body
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessX12EligibilityTransactionRequest'
responses:
'200':
description: Status of a Process X12 Eligibility Transaction Request
content:
application/json:
schema:
$ref: '#/components/schemas/TaskRequestSuccessResponse_ProcessX12EligibilityTransaction'
'401':
description: API key is missing or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/AuthError'
'403':
description: Access forbidden. The API key is valid but does not have permission to access this resource.
content:
application/json:
schema:
$ref: '#/components/schemas/AuthorizationError'
security:
- ApiKeyAuth: []
/wf/v2/workflows/process-x12-eligibility-transaction/{task-id}:
get:
tags:
- Eligibility
summary: Process X12 Eligibility Transaction Status (Draft)
operationId: getProcessX12EligibilityTransactionRequestStatus
description: Fetch the current status of an Process X12 Eligibility Transaction. It takes the `taskId`, provided by the Process X12 Eligibility Transaction, as input.
parameters:
- name: task-id
in: path
description: Provide a task id to retreive the Process X12 Eligibility Transaction status
required: true
style: simple
explode: false
schema:
type: string
format: uuid
responses:
'200':
description: Status of a Process X12 Eligibility Transaction
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_process_x12_eligibility_transaction'
'401':
description: API key is missing or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/AuthError'
'403':
description: Access forbidden. The API key is valid but does not have permission to access this resource.
content:
application/json:
schema:
$ref: '#/components/schemas/AuthorizationError'
security:
- ApiKeyAuth: []
components:
schemas:
TaskRestarted_EdiExchange:
type: object
title: TaskRestarted
properties:
taskId:
$ref: '#/components/schemas/TaskID'
taskName:
$ref: '#/components/schemas/TaskName_ProcessX12EligibilityTransaction'
createdAt:
$ref: '#/components/schemas/DateString'
status:
$ref: '#/components/schemas/TaskStatus_Processing'
startedAt:
$ref: '#/components/schemas/DateString'
attempt:
minimum: 1
type: integer
AuthorizationError:
type: object
properties:
code:
type: string
example: '403'
message:
type: string
example: Access forbidden. The API key is valid but does not have permission to access this resource.
TaskStatus_Failed:
type: string
enum:
- failed
TaskRequestSuccessResponse_Eligibility:
type: object
title: TaskRequestSuccessResponse
properties:
taskId:
$ref: '#/components/schemas/TaskID'
taskName:
$ref: '#/components/schemas/TaskName_Eligibility'
createdAt:
$ref: '#/components/schemas/DateString'
status:
$ref: '#/components/schemas/TaskStatus_Queued'
description: Task Request has succeeded
ProcessX12EligibilityTransactionAttachment270:
type: object
description: X12 270 file.
required:
- uri
properties:
uri:
type: string
description: HTTPS object store URI or data URI for the eligibility request (270) file.
oneOf:
- pattern: ^https://(blob|blob-[a-zA-z]*)\.e5\.ai/file-object/[a-zA-Z0-9-].*$
description: Must be an HTTPS link from blob.e5.ai or blob-qa.e5.ai
- pattern: ^data:application/edi-x12;base64,[a-zA-Z0-9+/]*={0,2}$
description: Base64 encoded EDI Data URI X12
- pattern: ^data:(application/gzip|application/x-gzip|application/edi-x12\+gzip);base64,[a-zA-Z0-9+/]*={0,2}$
description: Base64 encoded Gzipped EDI Data URI
interchangeDate:
type: string
format: date
description: Date of submission. ISO 8601 date.
interchangeTime:
type: string
description: Time of submission. ISO 8601 time.
interchangeTimezone:
type: string
description: Timezone of submission time. Mandatory when interchangeDate is provided.
EligibilityTaskFailures:
oneOf:
- $ref: '#/components/schemas/SubmitEligibilityFailure'
ProcessX12EligibilityTransactionRequest:
required:
- taskPayload
type: object
properties:
taskPayload:
$ref: '#/components/schemas/ProcessX12EligibilityTransactionRequestPayload'
SubmitEligibilityFailure_submitEligibility:
type: object
properties:
failureReason:
type: string
TaskSucceeded_EdiExchange:
type: object
title: TaskSucceeded
properties:
taskId:
$ref: '#/components/schemas/TaskID'
taskName:
$ref: '#/components/schemas/TaskName_ProcessX12EligibilityTransaction'
createdAt:
$ref: '#/components/schemas/DateString'
status:
$ref: '#/components/schemas/TaskStatus_Success'
startedAt:
$ref: '#/components/schemas/DateString'
endedAt:
$ref: '#/components/schemas/DateString'
attempt:
minimum: 1
type: integer
taskPayload:
type: object
properties:
response:
type: object
AuthError:
type: object
properties:
code:
type: string
example: '401'
message:
type: string
example: API key is missing or invalid
TaskProgressed_Eligibility:
title: TaskProgressed
type: object
properties:
taskId:
$ref: '#/components/schemas/TaskID'
taskName:
$ref: '#/components/schemas/TaskName_Eligibility'
createdAt:
$ref: '#/components/schemas/DateString'
status:
$ref: '#/components/schemas/TaskStatus_Processing'
startedAt:
$ref: '#/components/schemas/DateString'
attempt:
minimum: 1
type: integer
taskPayload:
$ref: '#/components/schemas/EligibilityTaskProgresses'
EligibilityTaskSuccesses:
oneOf:
- $ref: '#/components/schemas/SubmitEligibilitySuccessResponse'
TaskQueued_Eligibility:
type: object
title: TaskQueued
properties:
taskId:
$ref: '#/components/schemas/TaskID'
taskName:
$ref: '#/components/schemas/TaskName_Eligibility'
createdAt:
$ref: '#/components/schemas/DateString'
status:
$ref: '#/components/schemas/TaskStatus_Queued'
TaskName_Eligibility:
type: string
title: TaskName
enum:
- submit-eligibility
TaskFailed_Eligibility:
type: object
title: TaskFailed
properties:
taskId:
$ref: '#/components/schemas/TaskID'
taskName:
$ref: '#/components/schemas/TaskName_Eligibility'
createdAt:
$ref: '#/components/schemas/DateString'
status:
$ref: '#/components/schemas/TaskStatus_Failed'
startedAt:
$ref: '#/components/schemas/DateString'
endedAt:
$ref: '#/components/schemas/DateString'
attempt:
minimum: 1
type: integer
taskPayload:
$ref: '#/components/schemas/EligibilityTaskFailures'
TaskRequestSuccessResponse_ProcessX12EligibilityTransaction:
type: object
title: TaskRequestSuccessResponse
properties:
taskId:
$ref: '#/components/schemas/TaskID'
taskName:
$ref: '#/components/schemas/TaskName_ProcessX12EligibilityTransaction'
createdAt:
$ref: '#/components/schemas/DateString'
status:
$ref: '#/components/schemas/TaskStatus_Queued'
description: Task Request has succeeded
ProcessX12EligibilityTransactionRequestPayload:
type: object
required:
- transactionFiles
- meta
properties:
transactionFiles:
type: object
description: X12 270 (request) and X12 271 (response) files.
properties:
requestFile:
$ref: '#/components/schemas/ProcessX12EligibilityTransactionAttachment270'
responseFile:
$ref: '#/components/schemas/ProcessX12EligibilityTransactionAttachment271'
required:
- requestFile
- responseFile
meta:
type: object
properties:
eligibilityRequestInitiationDate:
type: string
format: date
description: The date, eligibility request was initiated by the source system
example: '1981-12-25'
gatewayName:
type: string
description: Clearinghouse or payer used to check eligibility (for example Availity, Waystar, UHC).
example: Inovalon
senderDetails:
type: object
description: Sender details.
required:
- partnerName
- organizationName
- agencyName
- branchName
properties:
partnerName:
type: string
description: Partner entity name.
example: Wellsky
organizationName:
type: string
description: Organization or corporation name of the entity requesting the service.
example: 11111-Affinity
agencyName:
type: string
description: Agency or clinic name associated with the service.
example: Polk
branchName:
type: string
description: Branch name associated with the service.
example: Branch1
patientDetails:
type: object
description: Patient details.
required:
- firstName
- lastName
- patientID
- dateOfBirth
- startOfCareDate
properties:
firstName:
type: string
description: Patient first name.
minLength: 1
maxLength: 50
example: John
lastName:
type: string
description: Patient last name.
minLength: 1
maxLength: 50
example: Smith
middleName:
type: string
description: Patient middle name.
example: Edward
patientID:
type: string
description: Patient unique identifier (for example medical record number).
example: BOX00003977
dateOfBirth:
type: string
format: date
description: Patient date of birth. ISO 8601 date.
example: '1981-12-25'
startOfCareDate:
type: string
format: date
description: Patient care episode or service start date. ISO 8601 date.
example: '1981-12-25'
payerDetails:
type: object
description: Payer details. Exactly one of memberId, MBI, or medicaidID must be provided.
required:
- payerName
- payerPlanName
- payerType
- payerHierarchy
properties:
payerName:
type: string
description: Payer name.
example: UHC
payerPlanName:
type: string
description: Payer plan name of the patient as in the EHR.
example: AARP Medicare Advantage from UnitedHealthcare
payerType:
type: string
description: Payer type of the patient as in the EHR.
example: MA
payerHierarchy:
type: string
description: Whether the insurance is primary, secondary, or tertiary (P, S, or T).
enum:
- P
- S
- T
example: P
oneOf:
- properties:
memberId:
type: string
description: Member identification number or payer policy number.
example: W9837639
required:
- memberId
- properties:
MBI:
type: string
description: Medicare beneficiary identifier, for Medicare patients.
example: 3FH9AA4K221
required:
- MBI
- properties:
medicaidID:
type: string
description: Medicaid identifier, if applicable.
example: '500123456789'
required:
- medicaidID
required:
- senderDetails
- patientDetails
- payerDetails
- gatewayName
- eligibilityRequestInitiationDate
inline_response_200_process_x12_eligibility_transaction:
oneOf:
- $ref: '#/components/schemas/TaskStarted_EdiExchange'
- $ref: '#/components/schemas/TaskQueued_EdiExchange'
- $ref: '#/components/schemas/TaskRestarted_EdiExchange'
- $ref: '#/components/schemas/TaskProgressed_EdiExchange'
- $ref: '#/components/schemas/TaskSucceeded_EdiExchange'
- $ref: '#/components/schemas/TaskFailed_EdiExchange'
EligibilityResponse:
type: object
properties:
patientDetails:
type: object
description: Patient details from the payer's eligibility record
properties:
patientId:
type: string
description: 'Patient Unique ID - Eg: Medical Record number'
firstName:
type: string
description: Patient's first name
lastName:
type: string
description: Patient's last name
middleName:
type: string
description: Patient's middle name
dateOfBirth:
type: string
format: date
description: Patient's date of birth. Date in ISO8601 format
gender:
type: string
description: Gender of the patient from the payer's eligibility record
patientAddress:
type: object
description: Patient's address
properties:
addressLine1:
type: string
description: Patient's address line 1
addressLine2:
type: string
description: Patient's address line 2
city:
type: string
description: Patient's city
state:
type: string
description: Patient's state
zip:
type: string
description: Patient's zip
relationshipToSubscriber:
type: string
description: Patient Relationship to Subscriber
required:
- patientId
- firstName
- lastName
subscriberDetails:
type: object
description: Subscriber details from the payer's eligibility record
properties:
firstName:
type: string
description: Subscriber's first name
lastName:
type: string
description: Subscriber's last name
middleName:
type: string
description: Subscriber's middle name
dateOfBirth:
type: string
format: date
description: Subscriber's date of birth. Date in ISO8601 format
gender:
type: string
description: Gender of the Subscriber from the payer's eligibility record
subscriberAddress:
type: object
description: Subscriber's address
properties:
addressLine1:
type: string
description: Subscriber's address line 1
addressLine2:
type: string
description: Subscriber's address line 2
city:
type: string
description: Subscriber's city
state:
type: string
description: Subscriber's state
zip:
type: string
description: Subscriber's zip
required: []
payerDetails:
type: object
description: Payer details from the payer's eligibility record
properties:
payerName:
type: string
description: Name of the Payer
planName:
type: string
description: Name of the insurance plan
payerType:
type: string
description: Type of payer (e.g., Medicare, Medicaid, Medicare Advantage)
payerId:
type: string
description: Electronic 5-digit ID used for payer transactions
memberId:
type: string
description: Member identification number returned from the payer
MBI:
type: string
description: Medicare Beneficiary Identifier assigned by CMS
medicaidID:
type: string
description: Medicaid ID, if applicable
gateway:
type: string
description: Clearinghouse/Payor where eligibility was checked (e.g., Availity, Waystar. UHC).
required:
- gateway
planDetails:
type: object
description: Plan details from the payer's eligibility record
properties:
planNumber:
type: string
description: Unique identifier assigned to the member's insurance plan
planSponsor:
type: string
description: Organization or employer that offers or funds the health insurance plan.
groupName:
type: string
description: Name of the employer or group associated with the insurance coverage.
groupNumber:
type: string
description: Identifier used to group members under the same employer or plan contract.
planType:
type: string
description: Type of health plan (e.g., HMO, PPO)
example: HMO
planAuthorizationRequired:
type: string
description: Indicates whether prior authorization is required for services under the plan.
utilizationManagementOrganization:
type: string
description: Utilization Management Organization info
CMSContractNumber:
type: string
description: CMS-issued contract number for the Medicare plan
required: []
planCoverage:
type: object
description: Plan coverage details from the payer's eligibility record
properties:
eligibilityCheckDate:
type: string
format: date
description: Eligibility check date
example: '1945-01-15'
EligibilityInquiryId:
type: string
description: Reference number for the eligibility inquiry from CH/Payer
coverageStatus:
type: string
description: Indicates whether the policy is active or inactive
coverageDescription:
type: string
description: Coverage description from the payer
policyStartDate:
type: string
description: Policy Start Date. Date in ISO8601 format
format: date
example: '1945-01-15'
policyEndDate:
type: string
description: Policy End Date. Date in ISO8601 format
format: date
example: '1945-01-15'
referralStatus:
type: string
description: Indicates if referrals are required under the plan
serviceCareProviderNetworkStatus:
type: string
description: Service Care Provider Network Status
example:
- In-Network
- Out-of-Network
required:
- eligibilityCheckDate
planBenefits:
type: array
description: Plan benefits and plan level accumulator info
items:
type: object
properties:
network:
type: string
enum:
- In-Network
- Out-of-Network
- General
coverageLevel:
type: string
description: 'Coverage level of the benefits. Eg: ''Individual'', ''Family'', ''Employee Only'''
example:
- Individual
- Family
- Employee Only
benefitStartDate:
type: string
description: Benefit Start Date. Date in ISO8601 format
format: date
example: '1945-01-15'
benefitEndDate:
type: string
description: Benefit End Date. Date in ISO8601 format
format: date
example: '1945-01-15'
deductible:
type: array
description: Deductible details
items:
type: object
properties:
deductibleAmount:
type: string
description: Total deductible amount
deductibleUsed:
type: string
description: Used deductible amount
deductibleRemaining:
type: string
description: Remaining deductible amount
deductiblePayerNotes:
type: string
description: Deductible payer notes
outOfPocket:
type: array
description: Out Of Pocket Maximum Details
items:
type: object
properties:
outOfPocketMaximum:
type: string
description: Out of pocket maxiumum amount
outOfPocketUsed:
type: string
description: Out of pocket amount used
outOfPocketRemaining:
type: string
description: Out of pocket amount remaining
outOfPocketPayerNotes:
type: string
description: Out of pocket Payer notes
required: []
serviceLevelDetails:
type: array
description: Service level details from the payer's eligibility record
items:
type: object
properties:
serviceTypeCode:
type: string
description: Code representing the type of service (e.g., 42 for Home Health)
serviceTypeDescription:
type: string
description: Description of the service associated with the code
coverageStatus:
type: string
description: Coverage status for the service type
coverageDescription:
type: string
description: Coverage description from the payer
benefitStartDate:
type: string
description: Benefit Start Date. Date in ISO8601 format
format: date
example: '1945-01-15'
benefitEndDate:
type: string
description: Benefit End Date. Date in ISO8601 format
format: date
example: '1945-01-15'
serviceLevelBenefits:
type: array
description: Plan benefits and plan level accumulator info
items:
type: object
properties:
network:
type: string
enum:
- In-Network
- Out-of-Network
- General
coverageLevel:
type: string
description: 'Coverage level of the benefits. Eg: ''Individual'', ''Family'', ''Employee Only'''
example:
- Individual
- Family
- Employee Only
coPayment:
type: array
description: Co-payment details for the service type.
items:
type: object
properties:
coPayAmount:
type: string
description: Co-Pay amount
coPayPayerNotes:
type: string
description: Co-Pay Payer Notes
authRequired:
type: string
description: Indicates if authorization is needed for the specified benefit.
coInsurance:
type: array
description: Co-Insurance details for the service type.
items:
type: object
properties:
coInsurancepercent:
type: string
description: Co-Insurance % for service type.
coInsurancePayerNotes:
type: string
description: Co-Insurance Payer Notes
authRequired:
type: string
description: Indicates if authorization is needed for the specified benefit.
deductible:
type: array
description: Deductible requirements for service type.
items:
type: object
properties:
deduc
# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/element5/refs/heads/main/openapi/element5-eligibility-api-openapi.yml