Element5 Eligibility API

Eligibility related APIs

OpenAPI Specification

element5-eligibility-api-openapi.yml Raw ↑
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