Confirm the server supports the subscriptions-backport IG by checking for the backport-subscription profile in the CapabilityStatement or SMART configuration
Create a Subscription resource with the backport profile; set channel.type to rest-hook, channel.endpoint to your HTTPS callback URL, and channel.payload to application/fhir+json
Set the criteria element using a topic-based reference: criteria = the canonical URL of the SubscriptionTopic that represents the event of interest (e.g., a patient-admission topic URL)
POST the Subscription to [base]/Subscription; expect a 201 Created response with the created Subscription including a server-assigned id
When an event matching the topic occurs, the server POSTs a notification Bundle to your endpoint; respond with 2xx within the server's timeout to acknowledge
Parse the notification Bundle: type=subscription-notification, the first entry is a SubscriptionStatus resource describing the event count and the Subscription reference; subsequent entries are the focus resources if full-resource payload is configured
Known gotchas
The SubscriptionTopic canonical URL must be one the server has defined and published; you cannot create arbitrary topic URLs — discover available topics via GET [base]/SubscriptionTopic
REST-hook endpoints must be HTTPS; HTTP endpoints are rejected by most production FHIR servers for security reasons
Notifications may be delivered out of order or duplicated; use SubscriptionStatus.eventsSinceSubscriptionStart as a monotonic counter to detect gaps and idempotently process duplicate deliveries
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp