This page is part of the FHIR Specification (v4.0.1: R4 - Mixed Normative and STU) in it's permanent home (it will always be available at this URL). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2
| FHIR Infrastructure  | Maturity Level: 3 | Trial Use | Security Category: Business | Compartments: Not linked to any defined compartments | 
Detailed Descriptions for the elements in the Subscription resource.
| Subscription | |
| Element Id | Subscription | 
| Definition | The subscription resource is used to define a push-based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system can take an appropriate action.  | 
| Cardinality | 0..* | 
| Type | DomainResource | 
| Alternate Names | WebHook; Hook; Routing Rule | 
| Summary | true | 
| Subscription.status | |
| Element Id | Subscription.status | 
| Definition | The status of the subscription, which marks the server state for managing the subscription.  | 
| Cardinality | 1..1 | 
| Terminology Binding | SubscriptionStatus (Required) | 
| Type | code | 
| Is Modifier | true (Reason: This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid) | 
| Summary | true | 
| Comments | A client can only submit subscription resources in the requested or off state. Only the server can move a subscription from requested to active, and then to error. Either the server or the client can turn a subscription off. This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.  | 
| Subscription.contact | |
| Element Id | Subscription.contact | 
| Definition | Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting.  | 
| Cardinality | 0..* | 
| Type | ContactPoint | 
| Summary | true | 
| Subscription.end | |
| Element Id | Subscription.end | 
| Definition | The time for the server to turn the subscription off.  | 
| Cardinality | 0..1 | 
| Type | instant | 
| Summary | true | 
| Comments | The server is permitted to deviate from this time but should observe it.  | 
| Subscription.reason | |
| Element Id | Subscription.reason | 
| Definition | A description of why this subscription is defined.  | 
| Cardinality | 1..1 | 
| Type | string | 
| Summary | true | 
| Subscription.criteria | |
| Element Id | Subscription.criteria | 
| Definition | The rules that the server should use to determine when to generate notifications for this subscription.  | 
| Cardinality | 1..1 | 
| Type | string | 
| Summary | true | 
| Comments | The rules are search criteria (without the [base] part). Like Bundle.entry.request.url, it has no leading "/".  | 
| Subscription.error | |
| Element Id | Subscription.error | 
| Definition | A record of the last error that occurred when the server processed a notification.  | 
| Cardinality | 0..1 | 
| Type | string | 
| Summary | true | 
| Subscription.channel | |
| Element Id | Subscription.channel | 
| Definition | Details where to send notifications when resources are received that meet the criteria.  | 
| Cardinality | 1..1 | 
| Summary | true | 
| Subscription.channel.type | |
| Element Id | Subscription.channel.type | 
| Definition | The type of channel to send notifications on.  | 
| Cardinality | 1..1 | 
| Terminology Binding | SubscriptionChannelType (Required) | 
| Type | code | 
| Summary | true | 
| Subscription.channel.endpoint | |
| Element Id | Subscription.channel.endpoint | 
| Definition | The url that describes the actual end-point to send messages to.  | 
| Cardinality | 0..1 | 
| Type | url | 
| Summary | true | 
| Comments | For rest-hook, and websocket, the end-point must be an http: or https: URL; for email, a mailto: url, for sms, a tel: url, and for message the endpoint can be in any form of url the server understands (usually, http: or mllp:). The URI is allowed to be relative; in which case, it is relative to the server end-point (since there may be more than one, clients should avoid using relative URIs).  | 
| Subscription.channel.payload | |
| Element Id | Subscription.channel.payload | 
| Definition | The mime type to send the payload in - either application/fhir+xml, or application/fhir+json. If the payload is not present, then there is no payload in the notification, just a notification. The mime type "text/plain" may also be used for Email and SMS subscriptions.  | 
| Cardinality | 0..1 | 
| Terminology Binding | MimeType (Required) | 
| Type | code | 
| Summary | true | 
| Comments | Sending the payload has obvious security implications. The server is responsible for ensuring that the content is appropriately secured.  | 
| Subscription.channel.header | |
| Element Id | Subscription.channel.header | 
| Definition | Additional headers / information to send as part of the notification.  | 
| Cardinality | 0..* | 
| Type | string | 
| Summary | true | 
| Comments | Exactly what these mean depend on the channel type. They can convey additional information to the recipient and/or meet security requirements; for example, support of multiple headers in the outgoing notifications for rest-hook type subscriptions.  |