Skip to main content

Overview

Cair Health provides a webhook system that allows you to receive real-time notifications when patient chart analysis is completed. This enables you to integrate your systems with Cair Health and respond to analysis completion events as they happen. When a patient chart analysis is completed in the platform, whether triggered by UI or API, the system will automatically send the analysis results to your specified endpoint.

Setup

To enable webhook delivery for patient chart analysis:
  1. Navigate to your Developer Settings
  2. Go to the Webhooks section
  3. Create a new webhook with the following information:
    • URL: The endpoint where you want to receive webhook payloads
    • Event Type: Select PATIENT_CHART_ANALYSIS_COMPLETE
    • Description: A description for your reference
    • Credentials: Your preferred credentials set

Event Types

You can subscribe to the following event type for patient chart analysis:
Event TypeDescription
PATIENT_CHART_ANALYSIS_COMPLETEReceive notifications when chart analysis is completed

Authentication

For security, webhooks can be authenticated using API keys. When setting up your webhook, you can configure:
  • Authentication Type: Currently supports API_SECRET
  • Header Name: The HTTP header that will contain your secret (e.g., X-API-KEY)
  • Secret: The secret value that will be sent with each webhook request

Payload Format

The webhook payload contains the complete analysis results in JSON format. Below is an example the structure of the response:
{
  "report": {
    "claim_id": "e5b44b0c-c8eb-4568-ba91-88065f8382e7",
    "created_at": "2025-11-19T21:46:12",
    "report_id": "c119bd8b-cdd2-40ee-84a2-e7e63e0fd98f",
    "file_uri": "431368ec-0547-4ac7-b280-82b082a30709",
    "chart_report": {
      "coding_report": {
        "icd_10_codes": [
          {
            "icd_10_code": "F33.1",
            "severity": "Low"
          },
          {
            "icd_10_code": "F90.2",
            "severity": "Low"
          }
        ],
        "cpt_codes": [
          {
            "cpt_code": "90791",
            "severity": "Low"
          },
          {
            "cpt_code": "99213",
            "severity": "Low"
          }
        ]
      },
      "time_based_requirements_report": {
        "total_time_documented": {
          "label": "Total Time Documented",
          "value": "32 minutes",
          "severity": "Low"
        },
        "start_time": {
          "label": "Start Time",
          "value": "N/A",
          "severity": "Medium"
        },
        "end_time": {
          "label": "End Time",
          "value": "N/A",
          "severity": "Medium"
        },
        "time_range_matches_procedure": {
          "label": "Time Range Matches Procedure",
          "value": "N/A",
          "severity": "Medium"
        },
        "codes_consistent": {
          "label": "Codes Consistent",
          "value": "N/A",
          "severity": "Medium"
        },
        "report_summary": "The start and end times are not explicitly documented, requiring further review to ensure compliance with time-based requirements.",
        "status": "Fail",
        "title": "Time-Based Requirements Report"
      },
      "telehealth_documentation_report": {
        "patient_location": {
          "label": "Patient Location",
          "value": "Unclear",
          "severity": "Medium"
        },
        "provider_location": {
          "label": "Provider Location",
          "value": "Unclear",
          "severity": "Medium"
        },
        "modality": {
          "label": "Modality",
          "value": "Video and audio",
          "severity": "Low"
        },
        "patient_consent": {
          "label": "Patient Consent",
          "value": "Implied consent",
          "severity": "Low"
        },
        "report_summary": "Telehealth visit was conducted via video and audio. Implied consent was provided by participating in this encounter.",
        "status": "Fail",
        "title": "Telehealth Documentation Report"
      },
      "authentication_report": {
        "provider_signature": {
          "label": "Provider Signature",
          "value": "No",
          "severity": "High"
        },
        "signature_date": {
          "label": "Signature Date",
          "value": "06/13/2025",
          "severity": "High"
        },
        "provider_credentials": {
          "label": "Provider Credentials",
          "value": "NP/MD",
          "severity": "Medium"
        },
        "provider_name": {
          "label": "Provider Name",
          "value": "Unknown",
          "severity": "High"
        },
        "provider_cosignature": {
          "label": "Provider Co-Signature",
          "value": "Yes",
          "severity": "Low"
        },
        "report_summary": "The document is missing a provider signature, provider name, and signature date.",
        "status": "Fail",
        "title": "Authentication Report"
      },
      "documentation_discrepancy_report": {
        "chief_complaint_hpi_discrepancy": {
          "label": "Chief Complaint HPI Discrepancy",
          "value": "No",
          "severity": "Low"
        },
        "ros_hpi_discrepancy": {
          "label": "ROS HPI Discrepancy",
          "value": "No",
          "severity": "Low"
        },
        "vitals_exam_discrepancy": {
          "label": "Vitals Exam Discrepancy",
          "value": "No",
          "severity": "Low"
        },
        "report_summary": "All documentation discrepancy requirements are met.",
        "status": "Pass",
        "title": "Documentation Discrepancy Report"
      },
      "diagnosis_procedure_report_alignment": {
        "diagnosis_matches_code": {
          "label": "Diagnosis Matches Code",
          "value": "Yes",
          "severity": "Low"
        },
        "laterality_matches_code": {
          "label": "Laterality Matches Code",
          "value": "Yes",
          "severity": "Low"
        },
        "acute_chronic_discrepancy": {
          "label": "Acute/Chronic Discrepancy",
          "value": "No",
          "severity": "Low"
        },
        "report_summary": "All diagnosis-procedure alignment requirements are met.",
        "status": "Pass",
        "title": "Diagnosis Procedure Report Alignment Report"
      },
      "modifier_bundling_report": {
        "modifier_25_check": {
          "label": "Modifier 25 Check",
          "value": "Yes",
          "severity": "Low"
        },
        "modifier_59_check": {
          "label": "Modifier 59 Check",
          "value": "No",
          "severity": "Low"
        },
        "modifier_50_check": {
          "label": "Modifier 50 Check",
          "value": "N/A",
          "severity": "Low"
        },
        "modifier_26_check": {
          "label": "Modifier 26 Check",
          "value": "N/A",
          "severity": "Low"
        },
        "multiple_modifier_check": {
          "label": "Multiple Modifier Check",
          "value": "No",
          "severity": "Low"
        },
        "report_summary": "All modifier bundling requirements are met.",
        "status": "Pass",
        "title": "Modifier Bundling Report"
      },
      "ncd_lcd_analysis": {
        "diagnoses_match_ncd_lcd": {
          "label": "Diagnoses Match NCD/LCD",
          "value": "Yes",
          "severity": "Low"
        },
        "frequency_discrepancy": {
          "label": "Frequency Discrepancy",
          "value": "No",
          "severity": "Low"
        },
        "age_discrepancy": {
          "label": "Age Discrepancy",
          "value": "No",
          "severity": "Low"
        },
        "place_of_service_discrepancy": {
          "label": "Place of Service Discrepancy",
          "value": "No",
          "severity": "Low"
        },
        "report_summary": "Diagnoses and procedures are compliant with coverage determinations.",
        "status": "Pass",
        "title": "NCD/LCD Analysis Report"
      },
      "suggestions_for_fixing_issues_report": {
        "suggestions": [
          "Since the provider's signature is missing, ensure the provider signs the document before submission.",
          "Since the provider's name is missing, ensure the provider's name is added to the document before submission."
        ]
      },
      "custom_rules_report": {}
    },
    "citations": {},
    "issues_for_review": 3,
    "checks_passed": 4,
    "demographics": {
      "patient_name": "John Smith",
      "provider_name": "Dr. Jones",
      "date_of_service": "06/13/2025",
      "patient_birth_date": "Unknown",
      "facility_name": "Facility Name"
    }
  }
}
Make sure your endpoint:
  • Returns a 2xx status code to acknowledge successful receipt
  • Responds within a reasonable timeout period
  • Validates the authentication credentials
  • Handles the payload appropriately for your use case