This page is part of the FHIR Specification (v4.6.0: R5 Draft Ballot - see ballot notes). 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   Work Group | Maturity Level: 2 | 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 describes a particular client's request to be notified about a SubscriptionTopic.  | 
| Cardinality | 0..* | 
| Type | DomainResource | 
| Alternate Names | WebHook; Hook; Routing Rule | 
| Summary | false | 
| Subscription.identifier | |
| Element Id | Subscription.identifier | 
| Definition | A formal identifier that is used to identify this code system when it is represented in other formats, or referenced in a specification, model, design or an instance.  | 
| Note | This is a business identifier, not a resource identifier (see discussion) | 
| Cardinality | 0..* | 
| Type | Identifier | 
| Summary | true | 
| Subscription.name | |
| Element Id | Subscription.name | 
| Definition | A natural language name identifying the subscription.  | 
| Cardinality | 0..1 | 
| Type | string | 
| 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 | Subscription State (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.topic | |
| Element Id | Subscription.topic | 
| Definition | The reference to the subscription topic to be notified about.  | 
| Cardinality | 1..1 | 
| Type | canonical(SubscriptionTopic) | 
| Summary | true | 
| 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 | 0..1 | 
| Type | string | 
| Summary | true | 
| Subscription.filterBy | |
| Element Id | Subscription.filterBy | 
| Definition | The filter properties to be applied to narrow the subscription topic stream. When multiple filters are applied, evaluates to true if all the conditions are met; otherwise it returns false. (i.e., logical AND).  | 
| Cardinality | 0..* | 
| Summary | true | 
| Subscription.filterBy.resourceType | |
| Element Id | Subscription.filterBy.resourceType | 
| Definition | If the element is a reference to another resource, this element contains "Reference", and the targetProfile element defines what resources can be referenced. The targetProfile may be a reference to the general definition of a resource (e.g. http://hl7.org/fhir/StructureDefinition/Patient).  | 
| Cardinality | 0..1 | 
| Terminology Binding | FHIRDefinedType (Extensible) | 
| Type | uri | 
| Summary | true | 
| Subscription.filterBy.searchParamName | |
| Element Id | Subscription.filterBy.searchParamName | 
| Definition | The filter label (=key) as defined in the   | 
| Cardinality | 1..1 | 
| Type | string | 
| Summary | true | 
| Subscription.filterBy.searchModifier | |
| Element Id | Subscription.filterBy.searchModifier | 
| Definition | The operator to apply to the filter value when determining matches (Search modifiers).  | 
| Cardinality | 0..1 | 
| Terminology Binding | Subscription Search Modifier (Required) | 
| Type | code | 
| Summary | true | 
| Subscription.filterBy.value | |
| Element Id | Subscription.filterBy.value | 
| Definition | The literal value or resource path as is legal in search - for example, "Patient/123" or "le1950".  | 
| Cardinality | 1..1 | 
| Type | string | 
| Summary | true | 
| Subscription.channelType | |
| Element Id | Subscription.channelType | 
| Definition | The type of channel to send notifications on.  | 
| Cardinality | 1..1 | 
| Terminology Binding | Subscription Channel Type (Extensible) | 
| Type | Coding | 
| Summary | true | 
| Subscription.endpoint | |
| Element Id | Subscription.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 the end-point must be an http: or https: URL; for websocket ws: or wss:; for email, a mailto: url; and for message the endpoint can be in any form of url the server understands (usually, http/s: 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.header | |
| Element Id | Subscription.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.  | 
| Subscription.heartbeatPeriod | |
| Element Id | Subscription.heartbeatPeriod | 
| Definition | If present, a 'hearbeat" notification (keepalive) is sent via this channel with an the interval period equal to this elements integer value in seconds. If not present, a heartbeat notification is not sent.  | 
| Cardinality | 0..1 | 
| Type | unsignedInt | 
| Summary | true | 
| Subscription.timeout | |
| Element Id | Subscription.timeout | 
| Definition | If present, the maximum amount of time a server will allow before failing a notification attempt.  | 
| Cardinality | 0..1 | 
| Type | unsignedInt | 
| Summary | true | 
| Subscription.contentType | |
| Element Id | Subscription.contentType | 
| Definition | The mime type to send the payload in - either application/fhir+xml, or application/fhir+json. The MIME types "text/plain" and "text/html" may also be used for Email subscriptions.  | 
| Cardinality | 0..1 | 
| Terminology Binding | MimeType (Required) | 
| Type | code | 
| Summary | true | 
| Subscription.content | |
| Element Id | Subscription.content | 
| Definition | How much of the resource content to deliver in the notification payload. The choices are an empty payload, only the resource id, or the full resource content.  | 
| Cardinality | 0..1 | 
| Terminology Binding | SubscriptionPayloadContent (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.notificationUrlLocation | |
| Element Id | Subscription.notificationUrlLocation | 
| Definition | If present, where to place URLs of resources in notifications.  | 
| Cardinality | 0..1 | 
| Terminology Binding | SubscriptionUrlLocation (Required) | 
| Type | code | 
| Summary | true | 
| Subscription.maxCount | |
| Element Id | Subscription.maxCount | 
| Definition | If present, the maximum number of triggering resources that will be included in a notification bundle (e.g., a server will not include more than this number of trigger resources in a single notification). Note that this is not a strict limit on the number of entries in a bundle, as dependent resources can be included.  | 
| Cardinality | 0..1 | 
| Type | positiveInt | 
| Summary | true |