A message contains at least two important ids and one identifier:
The Bundle.id is the unique id of a Bundle and is assigned by the FHIR framework. Each time a message is sent, the Bundle.id SHALL be changed to a new globally unique value. This SHALL be achieved by using a UUID. The Bundle.Id SHALL never be identical to a former sent Bundle.id.
The Bundle.identifier is also a unique identifier of a Bundle, but can be assigned explicitly by the sending application. The Bundle.identifier MAY be the assigned the same value as the Bundle.id.
The MessageHeader.id is the unique id of a MessageHeader and is assigned by the FHIR framework. Each time a new message is created, it SHALL be assigned a MessageHeader.id, that is globally unique. MessageHeader.id SHALL never be identical to a former sent MessageHeader.id.
When a receiver receives and processes the message, it SHALL respond with an Acknowledgement (a new message) with a new MessageHeader.id wrapped in a Bundle which also has a new Bundle.id. The response message SHALL also quote the request MessageHeader.id in MessageHeader.response.identifier so that the source system can relate the Acknowledgement to its request.
A message has several important timestamps:
In addition, the message MAY have additional timestamps in additional resources in the message. The meaning of these will depend on the message event.
Timestamps of the FHIR data type dateTime or instant SHALL include a timezone, which may be ‘Z’ or a timezone of the format ‘+00:00’, e.g. ‘+01:00’.