Candid Health Encounters API

Submit and manage encounters that drive claim generation.

OpenAPI Specification

candidhealth-encounters-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Candid Health Auth Encounters API
  description: REST API for Candid Health, an autonomous medical-billing and revenue-cycle management platform. Submit encounters and claims, run eligibility checks, capture charges, look up payers and fee schedules, retrieve insurance adjudications (ERAs / remits), and scan billing lifecycle events. All requests are authenticated with an OAuth bearer token obtained from the auth token endpoint.
  termsOfService: https://www.joincandidhealth.com
  contact:
    name: Candid Health Support
    url: https://docs.joincandidhealth.com/additional-resources/support
  version: '1.0'
servers:
- url: https://api.joincandidhealth.com/api
  description: Candid Health production API
security:
- bearerAuth: []
tags:
- name: Encounters
  description: Submit and manage encounters that drive claim generation.
paths:
  /encounters/v4:
    get:
      operationId: getAllEncounters
      tags:
      - Encounters
      summary: Get all encounters.
      description: Returns a paginated list of encounters matching the supplied filters.
      parameters:
      - name: limit
        in: query
        description: Maximum number of encounters to return (1-100).
        schema:
          type: integer
          minimum: 1
          maximum: 100
      - name: page_token
        in: query
        description: Opaque cursor for the next page of results.
        schema:
          type: string
      - name: patient_external_id
        in: query
        schema:
          type: string
      - name: claim_status
        in: query
        schema:
          type: string
      - name: date_of_service_min
        in: query
        schema:
          type: string
          format: date
      - name: date_of_service_max
        in: query
        schema:
          type: string
          format: date
      responses:
        '200':
          description: A page of encounters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EncounterPage'
    post:
      operationId: createEncounter
      tags:
      - Encounters
      summary: Create a professional encounter.
      description: Creates an encounter that Candid uses to generate and submit one or more insurance claims.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EncounterCreate'
      responses:
        '200':
          description: The created encounter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Encounter'
        '422':
          description: Validation error.
  /encounters/v4/{encounter_id}:
    get:
      operationId: getEncounter
      tags:
      - Encounters
      summary: Get an encounter.
      parameters:
      - name: encounter_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The requested encounter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Encounter'
        '404':
          description: Encounter not found.
components:
  schemas:
    Address:
      type: object
      properties:
        address1:
          type: string
        address2:
          type: string
          nullable: true
        city:
          type: string
        state:
          type: string
        zip_code:
          type: string
    RenderingProvider:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        npi:
          type: string
    Encounter:
      type: object
      properties:
        encounter_id:
          type: string
          format: uuid
        external_id:
          type: string
        date_of_service:
          type: string
          format: date
        patient:
          $ref: '#/components/schemas/Patient'
        billing_provider:
          $ref: '#/components/schemas/BillingProvider'
        diagnoses:
          type: array
          items:
            $ref: '#/components/schemas/Diagnosis'
        service_lines:
          type: array
          items:
            $ref: '#/components/schemas/ServiceLine'
        claims:
          type: array
          items:
            $ref: '#/components/schemas/Claim'
        status:
          type: string
        created_at:
          type: string
          format: date-time
    BillingProvider:
      type: object
      properties:
        organization_name:
          type: string
        npi:
          type: string
        tax_id:
          type: string
        address:
          $ref: '#/components/schemas/Address'
    EncounterPage:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Encounter'
        page_token:
          type: string
          nullable: true
    EncounterCreate:
      type: object
      required:
      - external_id
      - patient_authorized_release
      - benefits_assigned_to_provider
      - provider_accepts_assignment
      - billable_status
      - patient
      - responsible_party
      - billing_provider
      - diagnoses
      - place_of_service_code
      properties:
        external_id:
          type: string
          description: Client-specified unique identifier for the encounter.
        patient_authorized_release:
          type: boolean
        benefits_assigned_to_provider:
          type: boolean
        provider_accepts_assignment:
          type: boolean
        billable_status:
          type: string
          enum:
          - BILLABLE
          - NOT_BILLABLE
        responsible_party:
          type: string
          enum:
          - INSURANCE_PAY
          - SELF_PAY
          - UNKNOWN
        date_of_service:
          type: string
          format: date
        place_of_service_code:
          type: string
          description: Place of service code, e.g. "02" for telehealth.
        patient:
          $ref: '#/components/schemas/Patient'
        billing_provider:
          $ref: '#/components/schemas/BillingProvider'
        rendering_provider:
          $ref: '#/components/schemas/RenderingProvider'
        diagnoses:
          type: array
          items:
            $ref: '#/components/schemas/Diagnosis'
        service_lines:
          type: array
          items:
            $ref: '#/components/schemas/ServiceLine'
    Patient:
      type: object
      properties:
        external_id:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        date_of_birth:
          type: string
          format: date
        gender:
          type: string
        address:
          $ref: '#/components/schemas/Address'
    Diagnosis:
      type: object
      properties:
        code_type:
          type: string
          example: ABK
        code:
          type: string
          description: ICD-10 diagnosis code.
    ServiceLine:
      type: object
      properties:
        service_line_id:
          type: string
          format: uuid
        procedure_code:
          type: string
          description: CPT / HCPCS procedure code.
        quantity:
          type: string
        charge_amount_cents:
          type: integer
        diagnosis_pointers:
          type: array
          items:
            type: integer
        date_of_service:
          type: string
          format: date
    Claim:
      type: object
      properties:
        claim_id:
          type: string
          format: uuid
        status:
          type: string
          description: Current claim processing status.
        clearinghouse_claim_id:
          type: string
          nullable: true
        payer:
          $ref: '#/components/schemas/Payer'
    Payer:
      type: object
      properties:
        payer_uuid:
          type: string
          format: uuid
        payer_id:
          type: string
          description: External payer / CPID identifier.
        payer_name:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'OAuth bearer token obtained from POST /auth/v2/token. Send as `Authorization: Bearer <access_token>`.'