eClinicalWorks · AsyncAPI Specification

Eclinicalworks Healow Rpm Webhooks

Version

View Spec View on GitHub EHRFHIRHealthcareElectronic Health RecordsPractice ManagementClinical DataHealth Information ExchangePatient DataAppointmentsBillingSMART on FHIRUS CoreUSCDIBulk DataRemote Patient MonitoringInteroperabilityONC CertifiedCDS HookshealowAsyncAPIEvents

AsyncAPI Specification

eclinicalworks-healow-rpm-webhooks.yml Raw ↑
generated: '2026-08-14'
method: searched
source: https://connect4.healow.com/apps/jsp/dev/r4/fhirRpmVendorDocumentation.jsp
spec_type: Webhooks
asyncapi: null
note: 'eClinicalWorks publishes no AsyncAPI document and no event stream over the clinical FHIR APIs. It does publish a real,
  fully specified bidirectional callback contract on the healow RPM (Remote Patient Monitoring) Vendor API: healow calls endpoints
  the VENDOR hosts to place and cancel device orders, and the vendor calls healow back with order lifecycle notifications
  and device readings. Payloads are FHIR R4 resources. Captured here as a webhook catalog rather than an AsyncAPI spec because
  no AsyncAPI document exists — none was fabricated.'
transport:
  protocol: https
  content_type: application/fhir+json
  style: request/response callbacks (not a pub/sub broker)
security:
  inbound_to_vendor:
    headers:
    - 'X-Client-Id: <vendorClientId>'
    - 'X-Server-Signature: Base64(HMAC_SHA256(<request-body>, <vendor-client-secret>))'
    note: For DELETE (cancel), the signature is computed over an empty request body.
  outbound_to_healow:
    scheme: OAuth 2.0 client_credentials with private_key_jwt (RS384)
    token_endpoint: https://connect4.healow.com/apps/api/v1/fhir/tracker/oauth/token
    scopes:
    - system/Observation.create
    - system/Device.create
    token_lifetime_seconds: 30000
  vendor_registration:
    jwks_endpoint: Vendor-hosted public JWKS URL registered on the healow Dev Portal
    data_pull_endpoint: Vendor-hosted HTTPS endpoint healow calls to retrieve RPM data
    nda_required: true
events:
- name: order.create
  direction: healow -> vendor
  method: POST
  endpoint: '{orderApiUrl}'
  payload: 'FHIR Bundle (type: collection) containing Patient and DeviceRequest entries'
  key_fields:
  - Bundle.identifier[system=https://healow.com/fhir/tracker/vendor]
  - DeviceRequest.status = active
  - DeviceRequest.intent = order
  - DeviceRequest.identifier[system=https://healow.com/fhir/tracker/order].value (order number)
  - DeviceRequest.codeCodeableConcept (system https://healow.com/fhir/tracker/device_name)
  - DeviceRequest.reading_type
  expected_response: FHIR Parameters with order_number, status (received) and message. Also accepts DeviceRequest, a Bundle
    containing one, or scalar JSON order fields.
  failure_semantics: healow treats status values failed, error, rejected and exception as unsuccessful and stores the vendor
    message for troubleshooting.
- name: order.cancel
  direction: healow -> vendor
  method: DELETE
  endpoint: '{orderApiUrl}/{orderNumber}'
  payload: null
  constraints:
  - Practice can cancel only within 60 minutes of order creation.
  - If already cancelled or outside the window, healow does not call the vendor cancel endpoint.
  expected_response: FHIR Parameters with order_number, status (cancelled) and message. Return 200 on success, 4xx when cancellation
    is not allowed (e.g. already shipped), 5xx for transient errors.
  example_error_code: order_already_shipped
- name: order.notification
  direction: vendor -> healow
  method: POST
  endpoint: https://connect4.healow.com/apps/api/v1/fhir/tracker/order/notifications
  payload: FHIR payload carrying the order number and a lifecycle status
  lifecycle_states:
  - received
  - pending
  - shipped
  - delivered
  - exception
  headers:
  - 'Content-Type: application/fhir+json'
  - 'Accept: application/fhir+json'
  - 'Authorization: Bearer <access_token>'
- name: observation.ingest
  direction: vendor -> healow
  method: POST
  endpoint: https://connect4.healow.com/apps/api/v1/fhir/tracker/Observation
  payload: FHIR R4 Bundle (type collection or transaction) of Observation resources, optionally with embedded Device resources;
    single Observations without a Bundle also supported
  routing: Bundle.identifier must carry the healow-issued vendor client ID under system https://healow.com/fhir/tracker/vendor
  response: OperationOutcome
  reading_types:
  - blood_pressure
  - blood_glucose
  - weight_bmi
  - pulse_oximetry
  - temperature
  - heart_rate
  - steps
  - distance
  - calories
  - sleep
  - cgm
- name: observation.ingest.cgm
  direction: vendor -> healow
  method: POST
  endpoint: https://connect4.healow.com/apps/api/v1/fhir/tracker/Observation/cgm
  payload: Continuous glucose monitoring summary report payload
identifier_systems:
- https://healow.com/fhir/tracker/vendor
- https://healow.com/fhir/tracker/vendor-account
- https://healow.com/fhir/tracker/patient
- https://healow.com/fhir/tracker/order
- https://healow.com/fhir/tracker/device-id
- https://healow.com/fhir/tracker/device_name
- https://healow.com/fhir/tracker/request-id
- https://healow.com/fhir/CodeSystem/tracker
not_events:
- No webhooks over the clinical FHIR read APIs — clinical data is poll-only via FHIR search or Group/$export.
- 'No subscription resource: the FHIR CapabilityStatement declares no Subscription support.'

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/eclinicalworks-healow-rpm-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.