Functional Acknowledgment
The X12 997 confirms that an interchange was received and whether it passed structural (syntax) validation — it does not confirm business acceptance of the content.
In this guide
997 Functional Acknowledgment moves from Receiver of the original transaction set to Sender of the original transaction set (Receiver → Sender) via AS2, SFTP, VAN. The interactive diagram below traces every business and technical step the message passes through — press Play Flow to watch it travel, or click any step for detail.
How it works
How 997 Functional Acknowledgment Works
Sender
Receiver of the original transaction set
Receiver
Sender of the original transaction set
Direction
Receiver → Sender
Standard
ANSI ASC X12
Version
005010
Transport
AS2 / SFTP / VAN
Business Purpose
Control & Acknowledgment
Sender — Receiver of the original transaction set
EDI Transmission
997
Functional Acknowledgment
ANSI ASC X12 004010 / 005010
Receiver — Sender of the original transaction set
Related transaction flows
Need help understanding this EDI flow?
Ask EDI AI →997 Functional Acknowledgment workflow. Steps: Original EDI Sent, Parse Functional Group, Determine Outcome, Generate 997, Return to Sender, Receive & Monitor, Alert on Exceptions. Transmitted from Receiver of the original transaction set to Sender of the original transaction set via AS2, SFTP, VAN, following ANSI ASC X12 004010 / 005010.
Overview
Provides a technical safety net so senders know whether a transmission arrived intact, enabling retransmission if it was rejected or lost.
Sender
Receiver of the original transaction set
Receiver
Sender of the original transaction set
Direction
Receiver → Sender
Standard / Version
ANSI ASC X12 004010 / 005010
Segment structure
Key segments that make up this transaction set:
| Segment | Name | Purpose |
|---|---|---|
| AK1 | Functional Group Response Header | Identifies the functional group being acknowledged. |
| AK2 | Transaction Set Response Header | Identifies a specific transaction set within the group. |
| AK5 | Transaction Set Response Trailer | Accept/reject status for the transaction set. |
| AK9 | Functional Group Response Trailer | Overall accept/reject status and counts for the group. |
Interactive example
Click any segment below to see its business meaning.
ST
This is an envelope or control segment. Select a highlighted segment on the left (shown in green) for a full business explanation.
View raw EDI
ST*997*0001~
AK1*PO*101~
AK2*850*0001~
AK5*A~
AK9*A*1*1*1~
SE*6*0001~Mapping example
A representative field-level mapping from a common source system into this transaction:
| Source | Source Field | Target Field |
|---|---|---|
| EDI Translator Parse Result | group.status | AK901 (Functional Group Acknowledge Code) |
| EDI Translator Parse Result | transactionSet.errors[] | AK3/AK4 (Segment/Element Error Detail) |
Validation rules
- AK1 group control number must match the GS06 of the original functional group.
- AK2 must reference the exact ST02 control number of the transaction set being acknowledged.
- If any AK5 is rejected, AK9 must reflect a mismatch between transaction sets included and accepted.
Common errors & troubleshooting
997 never arrives
Cause: Communication failure (AS2 MDN issue, VAN mailbox delay) prevented delivery, unrelated to document content.
Fix: Monitor both the AS2/MDN layer and the 997 layer separately — they answer different questions.
997 shows rejection with no clear reason
Cause: AK3/AK4 error detail segments were omitted by the translator.
Fix: Configure the EDI translator to always populate AK3 (segment) and AK4 (element) detail on rejection.
Related articles
Frequently asked questions
No. The 997 only confirms the file passed X12 syntax validation. Business-level acceptance of a purchase order is confirmed separately by an 855.
Still have questions about 997?
Ask EDI AI →