X12 transaction guide · Acknowledgments

EDI 997 Functional Acknowledgment

The X12 document a receiver sends back to confirm that EDI documents arrived and were syntactically valid.

Sent by
Receiver of any EDI document
Received by
Original sender
Standard
ANSI ASC X12
EDIFACT equivalent
CONTRL

What is an EDI 997?

The EDI 997 Functional Acknowledgment is the ANSI X12 transaction set a receiver returns to confirm that it received a functional group of EDI documents and whether they passed syntax checks. It reports acceptance or rejection at the group and transaction set level and can identify segment and element errors.

A 997 does not confirm business acceptance. It does not mean an order was accepted, a shipment was received or an invoice was approved; it only confirms that the document arrived and could be read. Monitoring for missing or rejected 997s is still one of the most effective ways to catch communication problems early.

How the EDI 997 worksDiagram of the EDI 997 Functional Acknowledgment. Receiver of any EDI document sends it to original sender. It usually follows 850, 856 and 810. Inside the ISA, GS and ST envelopes, X12 release 004010 requires, in the heading: AK1 (Functional Group Response Header) and AK9 (Functional Group Response Trailer). 1 optional loops are listed by their first segment.How the EDI 997 worksFunctional Acknowledgment: who sends it, where it fits and what the standard marks required1 WHERE IT FITSUSUALLY FOLLOWS850Purchase Order856Advance Ship Notice810InvoiceEDI 997SENDERReceiver of any EDIdocumentRECEIVEROriginal senderUSUALLY FOLLOWED BYNo business reply expected2 WHAT X12 RELEASE 004010 REQUIRESInterchange: sender and receiver IDsISA … IEAFunctional group, ID code FAGS … GETransaction set 997ST … SEHEADINGAK1Functional Group Response HeaderAK9Functional Group Response Trailer+ 1 optional loop, starting with:AK2Blue box: required loop. Optional loops are listed by the segment that starts them; when a loop is used, that first segment is required. Optional segmentsoutside loops are not drawn.Structure: required segments and loops in the X12 004010 listing for the 997. Your trading partner's implementation guide adds its own requirements.
How the EDI 997 worksDiagram of the EDI 997 Functional Acknowledgment. Receiver of any EDI document sends it to original sender. It usually follows 850, 856 and 810. Inside the ISA, GS and ST envelopes, X12 release 004010 requires, in the heading: AK1 (Functional Group Response Header) and AK9 (Functional Group Response Trailer). 1 optional loops are listed by their first segment.How the EDI 997 worksFunctional Acknowledgment: who sends it,where it fits and what the standard marksrequired1 WHERE IT FITSUSUALLY FOLLOWS850Purchase Order856Advance Ship Notice810InvoiceEDI 997SENDERReceiver of anyEDI documentRECEIVEROriginal senderUSUALLY FOLLOWED BYNo business reply expected2 WHAT X12 RELEASE 004010 REQUIRESInterchange: sender and receiver IDs (ISA… IEA)Functional group, ID code FA (GS … GE)Transaction set 997 (ST … SE)HEADINGAK1Functional Group ResponseHeaderAK9Functional Group ResponseTrailer+ 1 optional loop, starting with:AK2Blue box: required loop. Optional loops are listedby the segment that starts them; when a loop isused, that first segment is required. Optionalsegments outside loops are not drawn.Structure: required segments and loops in the X12004010 listing for the 997. Your trading partner'simplementation guide adds its own requirements.

How to read this diagram: the top row shows who sends the 997, to whom, and which documents usually come before and after it. The lower part shows what X12 release 004010 itself requires: the envelopes around the 997 and the segments and loops the standard marks as required, area by area. Optional loops are listed by the segment that starts them rather than drawn in full. This is the standard's minimum, not a trading partner's requirement: each partner's implementation guide usually makes some optional loops mandatory, restricts the codes and may use a different release.

Expand diagram Download SVG

When it is used

  • Confirming receipt of purchase orders, ship notices, invoices and other documents
  • Reporting syntax errors so the sender can correct and resend
  • Reconciling sent documents against acknowledgments to find gaps

Where it fits in the document flow

This document 997 Functional Acknowledgment

Structure

Key segments in the 997

The segments most implementations use, described in plain language. The last column shows what X12 release 004010 itself requires: "Required" marks a segment the standard requires in every 997; "Optional, common" marks a segment the standard leaves optional, or that sits in an optional loop, but that implementations often use. This is the standard's requirement, not your trading partner's: each partner's implementation guide names the release it uses, makes some optional segments mandatory and restricts the values, and requirements can differ between releases. The requirement status comes from one published X12 reference listing and has not been checked against a second source.

SegmentNameWhat it carriesIn X12 004010
AK1Functional Group Response HeaderIdentifies the functional group being acknowledged by its functional identifier code and group control number.Required
AK2Transaction Set Response HeaderIdentifies each transaction set acknowledged by type and control number.Optional, common
AK3 / AK4Segment and Element NotesPoint to segments and elements with errors and describe the problem.Optional, common
AK5Transaction Set Response TrailerAccept or reject status for each transaction set.Optional, common
AK9Functional Group Response TrailerOverall status for the group and counts of sets included, received and accepted.Required

Example

Sample EDI 997

Acknowledges functional group 1001 of purchase orders (PO). The single 850 in the group was accepted (AK5 A), and the group as a whole was accepted (AK9 A).

Illustrative data only, not tied to one X12 release or trading partner. The interchange (ISA/IEA) and functional group (GS/GE) envelopes are omitted for readability.

ST*997*0001~
AK1*PO*1001~
AK2*850*0001~
AK5*A~
AK9*A*1*1*1~
SE*6*0001~
Reading a sample EDI 997, line by lineAnnotated sample EDI 997 with 6 lines. Notes explain the ST, AK1, AK2, AK5, AK9 and SE segments.Reading a sample EDI 997, line by lineEach numbered note explains the segment on that line. The data is illustrative.ST*997*0001~11Transaction Set Header. Opens the 997 and gives it a controlnumber, which SE repeats.AK1*PO*1001~22Functional Group Response Header. Identifies the functionalgroup being acknowledged by its functional identifier code andgroup control number.AK2*850*0001~33Transaction Set Response Header. Identifies each transactionset acknowledged by type and control number.AK5*A~44Transaction Set Response Trailer. Accept or reject status foreach transaction set.AK9*A*1*1*1~55Functional Group Response Trailer. Overall status for the groupand counts of sets included, received and accepted.SE*6*0001~66Transaction Set Trailer. Closes the set with the number ofsegments, including ST and SE, and the same control number.Illustrative data only, not tied to one trading partner. Envelopes (ISA/GS) are omitted for readability.
Reading a sample EDI 997, line by lineAnnotated sample EDI 997 with 6 lines. Notes explain the ST, AK1, AK2, AK5, AK9 and SE segments.Reading a sample EDI 997, lineby lineEach numbered note explains the segment onthat line. The data is illustrative.ST*997*0001~Transaction Set Header. Opens the 997 andgives it a control number, which SE repeats.AK1*PO*1001~Functional Group Response Header. Identifiesthe functional group being acknowledged byits functional identifier code and group controlnumber.AK2*850*0001~Transaction Set Response Header. Identifieseach transaction set acknowledged by typeand control number.AK5*A~Transaction Set Response Trailer. Accept orreject status for each transaction set.AK9*A*1*1*1~Functional Group Response Trailer. Overallstatus for the group and counts of setsincluded, received and accepted.SE*6*0001~Transaction Set Trailer. Closes the set withthe number of segments, including ST and SE,and the same control number.Illustrative data only, not tied to one trading partner.Envelopes (ISA/GS) are omitted for readability.

The sample is the same one shown above, with a note beside each segment the first time it appears. Segment IDs are highlighted at the start of each line; the fields after them are separated by asterisks, and each segment ends with a tilde.

Expand diagram Download SVG

Avoid problems

Common 997 errors and how to prevent them

Treating a 997 as business acceptance

A 997 confirms syntax only. Orders still need an 855 or other business response where partners require it.

Not monitoring missing acknowledgments

Documents without a 997 may never have arrived. Reconcile sent documents against acknowledgments daily.

Ignoring rejected 997s

A rejected 997 means the partner could not process the document. It must be corrected and resent.

Trading partners

Integration guides that include the 997

  • Costco EDI integration
  • Dollar General EDI integration
  • FedEx EDI integration
  • Honda EDI integration
  • Kroger EDI integration
  • Lowe's EDI integration
  • Old Dominion Freight Line EDI integration
  • Ryder EDI integration
  • Target EDI integration
  • The Home Depot EDI integration
  • Walgreens EDI integration
  • Walmart EDI integration

EDI 997 FAQs

Is a 997 the same as an 855?

No. A 997 confirms that a document was received and is syntactically valid. An 855 confirms the business details of a purchase order.

What is the difference between a 997 and a 999?

Both are X12 acknowledgments. The 999 implementation acknowledgment is used mainly in healthcare HIPAA transactions and can report implementation guide errors in more detail.

How quickly should a 997 be sent?

Many partners expect a 997 within hours of receiving a document. Exact expectations come from each partner's guide.

Need help with the EDI 997?

ECOM maps, tests and monitors X12 documents for your trading partners and integrates them with your ERP.