Epic Systems · AsyncAPI Specification
Epic Systems Cds Hooks Webhooks
Version
View Spec
View on GitHub
HealthcareUnited StatesEHREMRFHIRHL7InteroperabilitySMART on FHIRUS CoreClinical DataAsyncAPIWebhooksEvents
AsyncAPI Specification
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.