There are two types of Acknowledgement messages (ACKs) used in healthcare data exchange communications: ACKs (including original mode acknowledgments and enhanced mode acknowledgments) and non-HL7 ACKs (also known as static string acknowledgments).
An HL7 ACK is built using information from the HL7 message, and is in HL7 format.
A Non-HL7/Static String ACK is a custom acknowledgement, and is simply a text string (rather than an HL7-formatted ACK). These types of ACKs are used when a system is not receiving HL7 messages, and therefore cannot use the HL7 message information to automatically populate an HL7-formatted ACK.
The HL7 messaging standard includes an ACK message to be sent back to the sending interface after receiving a message to indicate the message was received. In a typical HL7 environment, a sender will assume the message was not received until it receives an ACK message. So if the receiver connection does not return an ACK message, the sender may assume there is a problem and stop sending messages.
ACKs also can affect the pace at which messages are sent along a connection. Because HL7 is generally configured to send a message and then wait for an ACK before sending the next message in the queue, the sooner the acknowledgment is returned the sooner the next message is sent. Many connections use the ACK as a means for controlling the pace of the connection.
A receiver connection should send an ACK message unless the sending application is unable or unwilling to receive ACK messages. Usually, this is only the case with legacy systems or systems that are not sending HL7 messages.