EDI-X12 EDI-X12 by datax3.com
Transaction set guide

EDI 997 Functional Acknowledgement

The 997 is the receipt your trading partner sends back after they parse your transaction. It tells you the syntax was valid, partially valid, or rejected. A successful 997 does not mean the business content was accepted. It only means the syntax parsed.

The 997 segment hierarchy

SegmentPurpose
AK1Functional group response header. Identifies the GS being acknowledged.
AK2Transaction set response header. Identifies the ST being acknowledged. Repeats once per transaction.
AK3Data segment note. Reports a segment-level error (only present on rejections).
AK4Data element note. Reports an element-level error inside an AK3-flagged segment.
AK5Transaction set response trailer. Acceptance code per transaction.
AK9Functional group response trailer. Acceptance code for the whole group.

The acceptance codes

AK5 / AK9 acceptance codes

AK3 segment-level error codes (common values)

AK4 element-level error codes (common values)

Reading a rejection 997

AK1*PO*1~
AK2*850*0001~
AK3*REF*5***3~
AK4*1*128*1~
AK5*R*5~
AK9*R*1*1*0~

Translation: "Your 850 is missing a required REF segment with the right qualifier."

997 vs 999

The 999 is the modern replacement for the 997 in HIPAA and some retail flows. Same idea, more granular error reporting, references implementation guide rules (not just X12 syntax). If your partner accepts 999 and you support it, prefer 999.

What 997 does NOT tell you

Reading a 997 in EDI-X12

  1. Paste the 997 in the validator.
  2. Click Explain with AI. The AI walks through every AK segment and translates the error codes into a sentence per problem.

Related

Got a rejection 997 you can't decipher?

Paste it in. AI translates AK3/AK4 error codes into plain English in seconds.

Open the validator