New: Drop-in replacement for Change Healthcare APIs

EDI 997 Functional Acknowledgment

Functional Group FA

X12C Communications and Controls Subcommittee

This X12 Transaction Set contains the format and establishes the data contents of the Functional Acknowledgment Transaction Set (997) for use within the context of an Electronic Data Interchange (EDI) environment. The transaction set can be used to define the control structures for a set of acknowledgments to indicate the results of the syntactical analysis of the electronically encoded documents. The encoded documents are the transaction sets, which are grouped in functional groups, used in defining transactions for business data interchange. This standard does not cover the semantic meaning of the information encoded in the transaction sets.

What is an EDI 997?

An EDI 997 Functional Acknowledgment serves as a response to an individual EDI message or group of messages. It contains information about the receipt of the upstream transaction, such as whether it has been accepted, accepted with errors or rejected (AK5 segment), if there are any segment errors (AK3 segment) or if there are any data element issues (AK4 segment).

How is an EDI 997 used?

For example, Vendor A sends Retailer B an EDI 810 Invoice. Retailer B responds with an EDI 997 Functional Acknowledgment, which communicates to Vendor A that their EDI 810 Invoice was received and is syntactically valid.


Max use
  1. To indicate the start of a transaction set and to assign a control number

    These acknowledgments shall not be acknowledged, thereby preventing an endless cycle of acknowledgments of acknowledgments. Nor shall a Functional Acknowledgment be sent to report errors in a previous Functional Acknowledgment.
    There is only one Functional Acknowledgment Transaction Set per acknowledged functional group.
    Only one acknowledgement can be sent for each functional group. The acknowledgment can be either a single Transaction Set 997 or a single Transaction Set 999 as mutually agreed upon by the trading partners. Different Functional Groups may have different acknowledgements, e.g. some Functional Groups, within the same interchange, may be acknowledged with the 997 and others with the 999.
  2. To start acknowledgment of a functional group

    AK1 is used to respond to the functional group header and to start the acknowledgment for a functional group. There shall be one AK1 segment for the functional group that is being acknowledged.
    The Functional Acknowledgement is generated at the point of translation, intended for the originator (not any intermediate parties).
    The Functional Group Header Segment (GS) is used to start the envelope for the Functional Acknowledgment Transaction Sets. In preparing the functional group of acknowledgments, the application sender's code and the application receiver's code, taken from the functional group being acknowledged, are exchanged; therefore, one acknowledgment functional group responds to only those functional groups from one application receiver's code to one application sender's code.
  3. AK2 Loop Optional
    Repeat >1
    1. To start acknowledgment of a single transaction set

      AK2 is used to start the acknowledgment of a transaction set within the received functional group. The AK2 segments shall appear in the same order as the transaction sets in the functional group that has been received and is being acknowledged.
    2. AK3 Loop Optional
      Repeat >1
      1. To report errors in a data segment and identify the location of the data segment

        The data segments of this standard are used to report the results of the syntactical analysis of the functional groups of transaction sets; they report the extent to which the syntax complies with the standards or proper subsets of transaction sets and functional groups. They do not report on the semantic meaning of the transaction sets (for example, on the ability of the receiver to comply with the request of the sender).
      2. To report errors in a data element or composite data structure and identify the location of the data element

    3. To acknowledge acceptance or rejection and report errors in a transaction set

  4. To acknowledge acceptance or rejection of a functional group and report the number of included transaction sets from the original trailer, the accepted sets, and the received sets in this functional group

  5. To indicate the end of the transaction set and provide the count of the transmitted segments (including the beginning (ST) and ending (SE) segments)

Stedi is a registered trademark of Stedi, Inc. Stedi's EDI Reference is provided for marketing purposes and is free of charge. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.