Epic Systems · AsyncAPI Specification

Epic Systems Cds Hooks Webhooks

Version

View Spec View on GitHub HealthcareUnited StatesEHREMRFHIRHL7InteroperabilitySMART on FHIRUS CoreClinical DataAsyncAPIWebhooksEvents

AsyncAPI Specification

epic-systems-cds-hooks-webhooks.yml Raw ↑
generated: '2026-07-24'
method: searched
spec_type: Webhooks
surface: CDS Hooks
source: https://fhir.epic.com/Documentation?docId=cdshookstutorial
note: >-
  Epic does not publish an AsyncAPI document. Its documented event / push
  integration surface is CDS Hooks: at defined workflow hook points inside the
  Epic EHR, Epic invokes an external clinical-decision-support (CDS) service over
  HTTPS with the hook context, and the service responds with cards and optional
  SMART app launch links. From an integrator's perspective this is a
  webhook-style outbound call from Epic to a registered service endpoint. The
  hook types below are the CDS Hooks specification hook points; Epic implements a
  documented subset that varies by software release. No FHIR Subscription /
  event-notification channel is advertised in the sandbox CapabilityStatement.
delivery:
  transport: https-post
  direction: epic-to-service   # Epic (EHR) calls the registered CDS service
  request_body: CDS Hooks request (hook, hookInstance, context, prefetch/fhirServer)
  response_body: CDS Hooks response (cards[], systemActions[])
  auth: JWT-signed request from Epic; service verifies the Epic JWKS.
hooks:
- hook: patient-view
  description: Fires when a user opens a patient's chart / record.
- hook: order-select
  description: Fires when a user selects one or more orders (before signing).
- hook: order-sign
  description: Fires when a user is about to sign one or more orders.
- hook: appointment-book
  description: Fires while a user is booking one or more appointments.
- hook: encounter-start
  description: Fires when a user starts a new encounter.
- hook: encounter-discharge
  description: Fires when a user is discharging a patient from an encounter.
discovery:
  detail: A CDS service publishes its services at GET {service-base}/cds-services; Epic is configured to call the registered endpoints.
related:
  smart_app_launch: Cards may return a SMART app launch link (link.type = smart) into a registered SMART on FHIR app.