Skip to main content
B2B Glossary / EDI 997 (Functional Acknowledgment)

What Is an EDI 997 (Functional Acknowledgment)?

Last updated

In this article Talk to our experts
Definition
EDI 997 (Functional Acknowledgment)
An EDI 997 is the X12 Functional Acknowledgment transaction set: the electronic receipt a receiving system returns to report the results of a syntax check on the documents it received. It says whether a group of documents was accepted, accepted with errors noted, partially accepted or rejected. It does not cover what the data means.

Also called: 997 Functional Acknowledgment

How it works

X12's supply chain flow assumes a 997 is issued in response to each transaction set received, unless otherwise noted. X12 calls it critical to all parties, because it confirms receipt of the original transaction and that the receiving party can use it.

  • Groups and sets. EDI documents (transaction sets) travel in functional groups. A 997 acknowledges the group and can respond to each transaction set inside it.
  • Detail on errors. A 997 can point to the segment and data element in error, with a code for the kind of error, such as an unrecognized segment or a data element that is too long.
  • What happens next. In X12's samples, a sender whose transaction sets were rejected is expected to correct them and send them again.
  • Syntax only. X12 says the 997 does not cover the semantic meaning of the information in the transaction sets. For business-level results, X12 has the 824 Application Advice, which reports the results of an application system's data content edits.

X12 also has a related 999 Implementation Acknowledgment, which reports the results of syntactical and relational analysis based on a full or implemented subset of X12 transaction sets.

Where the EDI 997 sits in an order exchange

1
850
Purchase order sent

The buyer's system sends the order as a transaction set inside a functional group.

2
Check
Syntax analysis

The receiving system analyzes the syntax of the functional group and the transaction sets in it.

3
997
Functional acknowledgment

The receiver reports the group as accepted, accepted with errors noted, partially accepted or rejected.

4
855
Business response

After the 850 data has been processed, the seller's order system reports back with an 855.

What it contains

The segment detail below comes from X12's own sample 997s, published for the aerospace industry in X12 version 004010. X12 says these examples are educational and do not override its standards or implementation guides.

  • ST and SE: start the transaction set with a control number, and end it with a count of its segments.
  • AK1: names the functional group being acknowledged, such as a purchase order group, and its group control number.
  • AK2: opens the response for one transaction set, such as an 850, with its control number.
  • AK3: names a segment in error, its position and a segment error code, such as unrecognized segment.
  • AK4: points to a data element in error, with an error code such as too long, too short or invalid code value, and can carry a copy of the bad data.
  • AK5: gives the transaction set's result, such as A (accepted) or R (rejected), with an error code when segments are in error.
  • AK9: gives the group's result, A (accepted), E (accepted, but errors noted), P (partially accepted) or R (rejected), and counts the transaction sets in the group, received and accepted.

Example

A seller's system receives one functional group holding 4 purchase orders (850s). Three are clean. In the fourth, one data element in the N1 segment is too long.

The seller's 997 opens with an AK1 for the purchase order group, then one AK2 per order. The three clean orders each get an AK5 of A. The fourth gets an AK3 naming the N1 segment, an AK4 with the error code for a data element that is too long, and an AK5 of R. The AK9 closes with P, partially accepted: 4 in the group, 4 received, and 4 minus 1 = 3 accepted. The buyer can see which order was rejected, in which segment, and why.

On Shopify

The 997 covers the syntax of the EDI documents. Shopify reports its own result: when a translated order is created through the orderCreate mutation, which is meant for orders imported from an external system or created for wholesale customers, the response returns the order that was created and userErrors, the list of errors that occurred from executing the mutation.

How Uncap helps

Uncap's Shopify EDI integration guide notes that most EDI transactions require a 997 from both sides, and advises verifying that the integration handles all document types your trading partners require.

Sources

08 Common questions

Frequently asked questions

What is a 997 EDI document?

It is the X12 Functional Acknowledgment. The receiver returns it to report whether the transaction sets it received passed syntax checks, down to the segment and element in error.

What are some examples of EDI transactions?

X12's basic supply chain flow uses the 850 Purchase Order, 855 Purchase Order Acknowledgment, 856 Ship Notice/Manifest, 810 Invoice and 820 Payment Order/Remittance Advice, with a 997 assumed in response to each one received unless otherwise noted.

What is an 875 EDI document?

The 875 is the X12 Grocery Products Purchase Order. Grocery retailers and wholesalers use it to order finished goods from a broker or supplier.

Talk to Our Experts →