> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shasta.health/llms.txt
> Use this file to discover all available pages before exploring further.

# Get eligibility check status

> Returns the current processing status of an eligibility check. Poll this endpoint after submitting a check via `POST /api/eligibility` until the status is no longer `open`.



## OpenAPI

````yaml /openapi/eligibility.json get /api/eligibility/{id}/status
openapi: 3.1.0
info:
  title: Shasta Health Eligibility API
  description: >-
    API for submitting insurance eligibility check requests and polling their
    status. Requests are authenticated using an API key issued from the Shasta
    provider portal.
  version: 1.0.0
servers:
  - url: https://app.shasta.health
    description: Production
security: []
tags:
  - name: Eligibility
    description: Submit insurance eligibility check requests and retrieve their status.
  - name: Webhooks
    description: Webhook events fired by Shasta when async operations complete.
paths:
  /api/eligibility/{id}/status:
    get:
      tags:
        - Eligibility
      summary: Get eligibility check status
      description: >-
        Returns the current processing status of an eligibility check. Poll this
        endpoint after submitting a check via `POST /api/eligibility` until the
        status is no longer `open`.
      parameters:
        - schema:
            type: string
            example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
          required: true
          name: id
          in: path
      responses:
        '200':
          description: Current status of the eligibility check.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EligibilityCheckResponse'
              examples:
                Completed:
                  summary: COMPLETED – full eligibility result
                  value:
                    id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    status: COMPLETED
                    payer:
                      payerName: Aetna
                      payerId: '60054'
                      entityIdentifier: Payer
                      entityType: Non-Person Entity
                    subscriber:
                      memberId: XYZ123456
                      firstName: Jane
                      lastName: Doe
                      dateOfBirth: '19800101'
                      groupNumber: GRP001
                      gender: F
                      address:
                        address1: 123 Main St
                        city: Springfield
                        state: IL
                        postalCode: '62701'
                    tradingPartnerServiceId: '60054'
                    planInformation:
                      planName: PPO Gold Plan
                      insuranceType: Preferred Provider Organization
                      insuranceTypeCode: PR
                    planDateInformation:
                      eligibility: '20240101'
                      plan: 20240101-20241231
                    planActive: true
                    providerNetwork:
                      status: In Network
                      tier: Tier 1
                      specialty: General Practice
                    benefits:
                      - serviceType: Medical Nutrition
                        inNetwork: true
                        copay: 30
                        deductible: 500
                        deductibleRemaining: 200
                        deductibleApplies: true
                        outOfPocketMax: 5000
                        outOfPocketRemaining: 3000
                        visitLimit: 20
                        visitsUsed: 5
                        authorizationRequired: false
                        confidence:
                          score: 0.9
                          criteria:
                            - Copay confirmed on payer portal benefits page
                            - Visit limit matched across two portal sections
                In Progress:
                  summary: IN_PROGRESS – check still processing
                  value:
                    id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    status: IN_PROGRESS
                Failed:
                  summary: >-
                    FAILED – error codes and follow-up action (see
                    EligibilityCheckError for code mapping)
                  value:
                    id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    status: FAILED
                    payer:
                      payerName: Aetna
                      payerId: '60054'
                    subscriber:
                      memberId: XYZ123456
                      firstName: Jane
                      lastName: Doe
                      dateOfBirth: '19800101'
                    tradingPartnerServiceId: '60054'
                    errors:
                      - code: '67'
                        description: Patient not found
                        field: AAA
                        followupAction: Please Correct and Resubmit
                Failed (DOB mismatch, code 71):
                  summary: FAILED – code 71 with location and possibleResolutions
                  value:
                    id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    status: FAILED
                    payer:
                      payerName: Aetna
                      payerId: '60054'
                    subscriber:
                      memberId: XYZ123456
                      firstName: Jane
                      lastName: Doe
                      dateOfBirth: '19800101'
                    tradingPartnerServiceId: '60054'
                    errors:
                      - code: '71'
                        description: >-
                          Patient Birth Date Does Not Match That for the Patient
                          on the Database
                        field: AAA
                        followupAction: Please Correct and Resubmit
                        location: Loop 2100C
                        possibleResolutions: >-
                          The subscriber's birth date doesn't match what's in
                          the payer's database.

                          • Check that the `subscriber.dateOfBirth` is correct.

                          • If so, contact the payer to resolve this issue.
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                code: UnauthorizedException
                message: Unauthorized
        '403':
          description: The API key does not have permission to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                code: AccessDeniedException
                message: API key lacks access
        '404':
          description: The requested resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                code: ResourceNotFoundException
                message: Eligibility check not found
        '500':
          description: Unexpected server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                code: InternalFailureException
                message: Internal server error
      security:
        - ApiKeyAuth: []
components:
  schemas:
    EligibilityCheckResponse:
      type: object
      properties:
        id:
          type: string
          description: >-
            Unique identifier for the eligibility check. Use this to poll
            status.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        status:
          type: string
          enum:
            - IN_PROGRESS
            - COMPLETED
            - FAILED
          description: Processing status, e.g. `IN_PROGRESS`, `COMPLETED`, `FAILED`.
          example: IN_PROGRESS
        provider:
          allOf:
            - $ref: '#/components/schemas/Provider'
            - description: The rendering or billing provider on the eligibility check.
        payer:
          $ref: '#/components/schemas/Payer'
        subscriber:
          $ref: '#/components/schemas/ResponseSubscriber'
        dependents:
          type: array
          items:
            $ref: '#/components/schemas/ResponseDependent'
        tradingPartnerServiceId:
          type: string
        planInformation:
          $ref: '#/components/schemas/PlanInformation'
        planDateInformation:
          $ref: '#/components/schemas/PlanDateInformation'
        planActive:
          type: boolean
        planCoverage:
          type: string
        providerNetwork:
          $ref: '#/components/schemas/ProviderNetwork'
        benefits:
          type: array
          items:
            $ref: '#/components/schemas/BenefitEntry'
        additionalNotes:
          type:
            - string
            - 'null'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/EligibilityCheckError'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/Warning'
        benefitsInformation:
          type: array
          items:
            $ref: '#/components/schemas/BenefitsInformation'
        confidence:
          type: object
          properties:
            score:
              type:
                - number
                - 'null'
            criteria:
              type: object
              additionalProperties:
                type: boolean
        meta:
          $ref: '#/components/schemas/EligibilityMeta'
        subscriberTraceNumbers:
          type: array
          items:
            $ref: '#/components/schemas/SubscriberTraceNumber'
        x12:
          type: string
          description: Raw X12 EDI transaction string.
      required:
        - id
        - status
      description: >-
        Response returned immediately after submitting an eligibility check. The
        check is processed asynchronously — poll `/api/eligibility/{id}/status`
        to track completion.
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error classification.
          enum:
            - ValidationException
            - UnauthorizedException
            - AccessDeniedException
            - ResourceNotFoundException
            - ThrottlingException
            - InternalFailureException
        message:
          type: string
      required:
        - message
    Provider:
      type: object
      properties:
        organizationName:
          type: string
          example: Shasta Medical Group
        firstName:
          type: string
        lastName:
          type: string
        npi:
          type: string
          description: 10-digit National Provider Identifier.
          example: '1234567890'
        address:
          $ref: '#/components/schemas/RequestAddress'
        providerType:
          type: string
          enum:
            - provider
            - facility
          description: >-
            Type of provider. `provider` for individual provider, `facility` for
            organization or facility.
          example: provider
      description: The rendering or billing provider.
    Payer:
      type: object
      properties:
        payerName:
          type: string
        payerId:
          type: string
        entityIdentifier:
          type: string
        entityType:
          type: string
    ResponseSubscriber:
      type: object
      properties:
        memberId:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        middleName:
          type: string
        dateOfBirth:
          type: string
        groupNumber:
          type: string
        gender:
          type: string
          enum:
            - M
            - F
            - U
        entityIdentifier:
          type: string
        entityType:
          type: string
        address:
          $ref: '#/components/schemas/RequestAddress'
    ResponseDependent:
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        middleName:
          type: string
        dateOfBirth:
          type: string
        gender:
          type: string
        entityIdentifier:
          type: string
        entityType:
          type: string
        address:
          $ref: '#/components/schemas/RequestAddress'
        aaaErrors:
          type: array
          items:
            $ref: '#/components/schemas/EligibilityCheckError'
    PlanInformation:
      type: object
      properties:
        planName:
          type: string
        insuranceType:
          type: string
        insuranceTypeCode:
          type: string
    PlanDateInformation:
      type: object
      properties:
        eligibility:
          type: string
        plan:
          type: string
        service:
          type: string
        status:
          type: string
    ProviderNetwork:
      type: object
      properties:
        status:
          type: string
          enum:
            - In Network
            - Out of Network
          description: The status of the provider network.
        tier:
          type: string
          description: The tier of the provider network.
        specialty:
          type: string
          description: The specialty of the provider network.
    BenefitEntry:
      type: object
      properties:
        coverageStatus:
          type: string
          enum:
            - Active Coverage
            - Not Covered
            - Not Found
          description: 'Coverage status: Active Coverage, Not Covered, or Not Found.'
        serviceType:
          type: string
          enum:
            - Preventive Nutrition
            - Medical Nutrition
            - Outpatient Physical Therapy
            - Mental Health
            - Occupational Therapy
            - Speech Therapy
            - Chiropractic
          description: The service type this benefit applies to.
          example: Preventive Nutrition
        inNetwork:
          type:
            - boolean
            - 'null'
          description: Whether this benefit applies to in-network services.
        copay:
          type:
            - number
            - 'null'
          description: Copay amount in dollars.
          example: 30
        coinsurance:
          type:
            - number
            - 'null'
          description: Coinsurance percentage (0-1).
          example: 0.2
        deductible:
          type:
            - number
            - 'null'
          description: Individual deductible amount.
        deductibleRemaining:
          type:
            - number
            - 'null'
          description: Individual deductible remaining.
        familyDeductible:
          type:
            - number
            - 'null'
          description: Family deductible amount.
        familyDeductibleRemaining:
          type:
            - number
            - 'null'
          description: Family deductible remaining.
        deductibleApplies:
          type:
            - boolean
            - 'null'
          description: Whether the deductible applies to this service type.
        outOfPocketMax:
          type:
            - number
            - 'null'
          description: Individual out-of-pocket maximum.
        outOfPocketRemaining:
          type:
            - number
            - 'null'
          description: Individual out-of-pocket remaining.
        familyOutOfPocketMax:
          type:
            - number
            - 'null'
          description: Family out-of-pocket maximum.
        familyOutOfPocketRemaining:
          type:
            - number
            - 'null'
          description: Family out-of-pocket remaining.
        visitLimit:
          type:
            - number
            - 'null'
          description: Maximum visits allowed per benefit period.
        visitsUsed:
          type:
            - number
            - 'null'
          description: Visits already used in the current period.
        authorizationRequired:
          type:
            - boolean
            - 'null'
          description: Whether prior authorization is required.
        confidence:
          $ref: '#/components/schemas/BenefitConfidence'
      required:
        - serviceType
    EligibilityCheckError:
      type: object
      properties:
        code:
          anyOf:
            - type: string
              enum:
                - '67'
                - '71'
                - '72'
                - '73'
                - '75'
                - '77'
                - SH01
                - SH02
              description: >-
                AAA error code. See EligibilityCheckError schema for code →
                description and follow-up action table.
              example: '67'
            - type: string
          description: >-
            AAA error code. See schema description for code → description and
            follow-up action mapping.
          example: '67'
        description:
          anyOf:
            - type: string
              enum:
                - Patient not found
                - >-
                  Patient Birth Date Does Not Match That for the Patient on the
                  Database
                - Invalid/Missing subscriber/insured ID
                - Invalid/Missing subscriber/insured name
                - Subscriber/Insured not found
                - Subscriber found, patient not found
                - Payer not supported
                - Payer portal check did not complete
              description: >-
                Human-readable error description; should match the code (see
                schema table).
              example: Patient not found
            - type: string
          description: Human-readable error description; should match the code.
          example: Patient not found
          enum:
            - Patient not found
            - >-
              Patient Birth Date Does Not Match That for the Patient on the
              Database
            - Invalid/Missing subscriber/insured ID
            - Invalid/Missing subscriber/insured name
            - Subscriber/Insured not found
            - Subscriber found, patient not found
            - Payer not supported
            - Payer portal check did not complete
        field:
          type: string
          example: AAA
        followupAction:
          type: string
          description: Recommended follow-up; set by the API from the error code.
          example: Please Correct and Resubmit
        location:
          type: string
        possibleResolutions:
          type: string
      description: >-
        A single error returned when an eligibility check fails (`status` is
        `FAILED`). Present in `GET /api/eligibility/{id}/status` responses and
        in the eligibility-check-completed webhook payload.


        **Error code → description and follow-up action:**


        | Code | Description | Follow-up action |

        |------|-------------|------------------|

        | `67` | Patient not found | Please Correct and Resubmit |

        | `71` | Patient Birth Date Does Not Match That for the Patient on the
        Database | Please Correct and Resubmit |

        | `72` | Invalid/Missing subscriber/insured ID | Please Correct and
        Resubmit |

        | `73` | Invalid/Missing subscriber/insured name | Please Correct and
        Resubmit |

        | `75` | Subscriber/Insured not found | Please Correct and Resubmit |

        | `77` | Subscriber found, patient not found | Please Correct and
        Resubmit |

        | `SH01` | Payer not supported | Resubmission Not Allowed |

        | `SH02` | Payer portal check did not complete | Resubmission Allowed |
      example:
        field: AAA
        code: '71'
        description: Patient Birth Date Does Not Match That for the Patient on the Database
        followupAction: Please Correct and Resubmit
        location: Loop 2100C
        possibleResolutions: >-
          The subscriber's birth date doesn't match what's in the payer's
          database.

          • Check that the `subscriber.dateOfBirth` is correct.

          • If so, contact the payer to resolve this issue.
    Warning:
      type: object
      properties:
        code:
          type: string
        description:
          type: string
    BenefitsInformation:
      type: object
      properties:
        code:
          type: string
        name:
          type: string
        coverageLevel:
          type: string
        coverageLevelCode:
          type: string
        inPlanNetworkIndicator:
          type: string
        inPlanNetworkIndicatorCode:
          type: string
        insuranceType:
          type: string
        insuranceTypeCode:
          type: string
        serviceTypeCodes:
          type: array
          items:
            type: string
        serviceTypes:
          type: array
          items:
            type: string
        timeQualifier:
          type: string
        timeQualifierCode:
          type: string
        quantityQualifier:
          type: string
        quantityQualifierCode:
          type: string
        benefitAmount:
          type: string
        benefitPercent:
          type: string
        benefitQuantity:
          type: string
        planCoverage:
          type: string
        additionalInformation:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              description:
                type: string
    EligibilityMeta:
      type: object
      properties:
        applicationMode:
          type: string
        billerId:
          type: string
        outboundTraceId:
          type: string
        senderId:
          type: string
        submitterId:
          type: string
        traceId:
          type: string
    SubscriberTraceNumber:
      type: object
      properties:
        originatingTransactionTraceNumber:
          type: string
        payerTraceNumber:
          type: string
    RequestAddress:
      type: object
      properties:
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state:
          type: string
          description: Two-letter state code, e.g. `CA`.
        postalCode:
          type: string
        countryCode:
          type: string
        countrySubDivisionCode:
          type: string
      description: Mailing or service address.
      example:
        address1: 123 Main St
        city: San Francisco
        state: CA
        postalCode: '94110'
        countryCode: US
        countrySubDivisionCode: CA
    BenefitConfidence:
      type: object
      properties:
        score:
          type:
            - number
            - 'null'
          description: Confidence score (0-1) for this benefit entry.
          example: 0.9
        criteria:
          type: array
          items:
            type: string
          description: Human-readable reasons justifying the confidence score.
      description: Confidence assessment for this benefit entry.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Pass your API key as `Key <your-api-key>`. Example: `Authorization: Key
        sk_abc123`

````