EDI 997 Definition
An EDI 997 Functional Acknowledgement is an electronic document sent by the receiver of any EDI transaction to confirm that the file was technically received and syntactically valid. It is the automated equivalent of a read receipt. It tells the sender that their EDI file arrived, was readable, and passed structural validation.
The EDI 997 is sent in response to every inbound EDI transaction including the EDI 850 Purchase Order, EDI 810 Invoice, EDI 855 Purchase Order Acknowledgement, EDI 856 Advance Ship Notice, and all other X12 transaction sets. It is the most universally required document in all of EDI.
The EDI 997 confirms technical receipt only. It does not confirm that the order will be fulfilled, that the invoice will be paid, or that the shipment is on schedule. Those business-level confirmations are handled by separate transaction sets — the EDI 855, EDI 820, and EDI 856 respectively.
Sent by: The receiver of any EDI transaction (buyer or supplier, depending on who received the original document)
Received by: The original sender of the EDI transaction
Triggered by: Every inbound EDI transaction set
What EDI 997 Represents in Real Life
The EDI 997 is not just a technical formality. It is the first signal in the EDI communication loop that tells the sender their transaction was received without errors.
When a 997 with acceptance is received:
- The sender knows their file was structurally valid
- The interchange envelope, functional group, and transaction set all passed validation
- The receiving system has accepted the document for processing
- No retransmission is needed
When a 997 with rejection is received:
- The sender knows their file had a structural error before anyone processed the content
- The specific segment and element causing the error are identified
- The sender must correct the file and retransmit before the transaction can proceed
- No business action (fulfillment, payment, shipping) will occur until a clean file is sent and acknowledged
In practice, a missing or rejected 997 is the first sign that something went wrong in the EDI pipeline and catching it early prevents operational failures downstream.
EDI 997 Functional Acknowledgement Key Data
AK1 – Functional Group Response Header (Group Acknowledgment)
AK2 – Transaction Set Header (Document Acknowledgment)
AK3 – Data Segment Note (Reports errors in specific segments of the document received)
AK4 – Data Element Note (Reports errors in specific elements of the document received)
AK5 – Transaction Set Response Trailer (Type of Acknowledgement)
AK9 – Functional Group Response Trailer (Group Response)
EDI 997 Acknowledgment Status Codes Explained
AK5 / AK9 transaction and group status codes:
|
Code |
Meaning |
What to do |
|
A |
Accepted — the transaction set or group was received without errors |
No action needed; the document is in processing |
|
E |
Accepted with errors — the transaction set was accepted but contained non-fatal errors |
Review the AK3/AK4 segments for the specific errors; correct and monitor |
|
R |
Rejected — the transaction set could not be processed due to structural errors |
Correct the identified errors and retransmit the full transaction immediately |
|
P |
Partially accepted — some transaction sets in the group were accepted and others were rejected |
Review each AK2/AK5 pair to identify which transactions passed and which failed |
|
X |
Rejected, assurance failed — the transaction set failed authentication or security validation |
Contact your trading partner or EDI provider to resolve the security configuration |
AK3 segment error codes (segment-level errors)
|
Code |
Meaning |
|
1 |
Unrecognized segment ID |
|
2 |
Unexpected segment |
|
3 |
Mandatory segment missing |
|
4 |
Loop occurs over maximum times |
|
5 |
Segment exceeds maximum use |
|
6 |
Segment not in defined transaction set |
|
7 |
Segment not in proper sequence |
|
8 |
Segment has data element errors |
AK4 data element error codes (element-level errors)
|
Code |
Meaning |
|
1 |
Mandatory data element missing |
|
2 |
Conditional required data element missing |
|
3 |
Too many data elements |
|
4 |
Data element too short |
|
5 |
Data element too long |
|
6 |
Invalid character in data element |
|
7 |
Invalid code value |
|
8 |
Invalid date |
|
9 |
Invalid time |
|
10 |
Exclusion condition violated |
Components of an EDI 997 include:
- Received EDI transaction code
- Indication of acceptance, acceptance with errors, or rejection
- List of erroneous elements and reason for the error(s)
Related EDI Transactions
- EDI 810 – Invoice
- EDI 812 – Credit / Debit Adjustment
- EDI 820 – Payment or Order Remittance
- EDI 832 – Price/Sales Catalog
- EDI 830 – Planning Schedule with Release Capability
- EDI 846 – Inventory Inquiry
- EDI 850 – Purchase Order
- EDI 855 – Purchase Order Acknowledgement
- EDI 860 – Purchase Order Change Request
- EDI 867 – Product Transfer and Resale Report File Format
- EDI 870 – Order Status Report
- EDI 875 – Grocery Products Purchase Order
- EDI 990 – Response to a Load Tender
EDI 997 Sample File Format
ISA*00* *00* *12*111111111 *12*222222222 *230512*0654*U*00401*000000001*0*T*>~ GS*FA*111111111*222222222*20230512*0654*1*X*004010VICS~ ST*997*00001~ AK1*PO*5347~ AK2*850*0001~ AK5*A~ AK9*A*1*1*1~ SE*6*00001~ GE*1*1~ IEA*1*000000001~
What Each Line in EDI 997 Format Means
The raw EDI 997 file is made up of segments. Each segment serves a specific purpose. Here is what each segment does:
| Segment | What it does |
| ISA | Interchange header — identifies sender, receiver, date, time, and control number of the original interchange being acknowledged |
| GS | Group header — identifies the transaction type (FA = Functional Acknowledgment) |
| ST*997 | Marks the start of the 997 transaction set |
| AK1 | Functional group response header — identifies the functional group being acknowledged by its group control number and transaction type code |
| AK2 | Transaction set response header — identifies the specific transaction set (e.g., 850, 810) being acknowledged by its control number |
| AK3 | Data segment note — identifies the specific segment within the transaction set that contains an error, including its position and segment ID |
| AK4 | Data element note — identifies the specific data element within a segment that contains an error, including the element position and error code |
| AK5 | Transaction set response trailer — contains the acknowledgment status code for the transaction set (A = accepted, E = accepted with errors, R = rejected) |
| AK9 | Functional group response trailer — contains the acknowledgment status for the entire functional group and counts of accepted vs. rejected transaction sets |
| SE | Transaction set trailer — marks the end of the 997 and contains a segment count |
| GE | Group trailer — closes the functional group opened by the GS segment |
| IEA | Interchange trailer — closes the interchange envelope opened by the ISA segment |
What an EDI 997 Looks Like Inside Elevate
Although the raw EDI 997 is machine-readable, our cloud-based EDI platform Elevate presents the acknowledgment status in a clear, actionable format for operations and IT teams.
Inside Elevate, teams can see:
- Which transaction was acknowledged (850, 810, 856, etc.)
- The acknowledgment status — accepted, accepted with errors, or rejected
- The specific segment and element that caused any error
- The error code and plain-English description of what went wrong
- Timestamp of when the 997 was received
- A direct link to the original transaction being acknowledged
This visibility means your team never has to decode raw AK3 and AK4 segments manually. Elevate surfaces the error, explains it, and shows you exactly which document needs to be corrected and retransmitted.
Need help monitoring EDI 997 acknowledgments?
Elevate tracks every 997 across all your trading partners in real time alerting your team to rejections before they become fulfillment failures.
Real-World Example: How a 997 Prevents a Fulfillment Failure
A supplier sends an EDI 850 to a major retailer. The file contains a formatting error in the BEG segment — the PO date is in the wrong format.
Without EDI 997 monitoring:
- The retailer’s system silently rejects the file
- No sales order is created
- The supplier’s warehouse waits for a pick list that never comes
- The delivery window is missed
- A chargeback is issued
With EDI 997 monitoring in Elevate:
- The retailer transmits an EDI 997 with AK5*R (rejected)
- Elevate alerts the supplier’s operations team within minutes
- The AK3 segment identifies the exact segment and position of the error
- The supplier corrects the BEG segment and retransmits within the hour
- The sales order is created in time for fulfillment to proceed
The 997 does not prevent errors. It surfaces them fast enough to fix them before they become operational failures.
How EDI 997 Fits into the Full Document Flow
The EDI 997 is sent after every inbound transaction, so it appears at multiple points in the order-to-cash cycle. Here is where it sits:
- Buyer sends EDI 850 Purchase Order → Supplier sends EDI 997 confirming receipt
- Supplier sends EDI 855 Purchase Order Acknowledgment → Buyer sends EDI 997 confirming receipt
- Supplier sends EDI 856 Advance Ship Notice → Buyer sends EDI 997 confirming receipt
- Supplier sends EDI 810 Invoice → Buyer sends EDI 997 confirming receipt
- Buyer sends EDI 820 Remittance Advice → Supplier sends EDI 997 confirming receipt
Every document in the cycle generates a 997 in response. This is why monitoring 997 acknowledgments is the most reliable way to confirm that every step in the order-to-cash process was received and technically valid.
Common EDI 997 Errors and How to Fix Them
- AK5*R — transaction set rejected: The most serious 997 outcome. The entire transaction set failed structural validation and will not be processed. Always check the accompanying AK3 and AK4 segments to identify the exact location and type of error. Correct the file and retransmit immediately — the original transaction does not exist in the receiver’s system.
- AK3 error code 3 — mandatory segment missing: A required segment was not included in the transaction. Cross-reference the trading partner’s implementation guide to confirm which segments are mandatory for that specific partner. This is one of the most common causes of 997 rejections for new trading partner setups.
- AK4 error code 1 — mandatory data element missing: A required field within a segment was left blank or omitted. Common examples include a missing ship-to address in the N4 segment or a missing item identifier in the IT1 segment. Check the implementation guide for which elements are required at the element level.
- AK4 error code 7 — invalid code value: A data element contains a value that is not in the approved list for that field. Common examples include an invalid unit of measure code, an unsupported currency code, or a state/country code that does not match the accepted values. Always validate code values against the trading partner’s implementation guide before transmission.
- AK4 error code 8 — invalid date: A date field contains a value in the wrong format or an impossible date. X12 dates must be formatted as YYYYMMDD (8 digits) or YYMMDD (6 digits) depending on the field. Confirm the required date format in the implementation guide.
- Receiving a 997 with AK5*A but the order never appears in the ERP: This means the 997 confirmed technical receipt but a separate business-level process failed downstream — such as a mapping error in the ERP integration, a duplicate PO number filter, or a missing trading partner configuration. The 997 only validates EDI syntax, not the ERP processing logic. Check your EDI-to-ERP integration logs separately.
- Never receiving a 997 at all: This typically means the file was not delivered to the trading partner’s EDI mailbox ( a connectivity issue rather than a content error). Check your AS2 or SFTP transmission logs for failed delivery receipts. A missing 997 should be treated as a transmission failure until proven otherwise.
Last updated: March 2026
FAQs
Q1: What does EDI 997 mean?
EDI 997 is a Functional Acknowledgement — an automated response sent by the receiver of any EDI transaction to confirm that the file was received and has passed structural validation. It is the electronic equivalent of a read receipt. It does not confirm business acceptance of the order, payment of the invoice, or fulfillment of the shipment. It only confirms that the EDI file itself was technically valid.
Q2: Who sends the EDI 997 and who receives it?
The EDI 997 is always sent by whoever received the original EDI transaction. If a buyer sends an EDI 850 Purchase Order to a supplier, the supplier sends back a 997. If a supplier sends an EDI 810 Invoice to a buyer, the buyer sends back a 997. The direction of the 997 is always the reverse of the original transaction.
Q3: What does AK5*A mean in an EDI 997?
AK5*A means the transaction set was accepted. The A status code in the AK5 segment indicates that the received transaction passed all structural and syntactical validation checks. No errors were found and no retransmission is needed. The document has been accepted for processing.
Q4: What does AK5*R mean in an EDI 997?
AK5*R means the transaction set was rejected. The R status code indicates that the received transaction failed structural validation and will not be processed. The sender must check the AK3 and AK4 segments in the 997 to identify the specific segment and element causing the error, correct the original transaction, and retransmit it before any business action can proceed.
Q5: What does AK5*E mean in an EDI 997?
AK5*E means the transaction set was accepted with errors. The E status code indicates that the transaction passed enough validation to be accepted for processing, but non-fatal errors were identified. The sender should review the specific errors identified in the AK3 and AK4 segments and correct them in future transmissions to avoid eventual rejections.
Q6: What is the difference between EDI 997 and EDI 855?
The EDI 997 and EDI 855 are completely different documents that serve different purposes. The EDI 997 is a technical acknowledgment that confirms that an EDI file was received and is structurally valid. The EDI 855 is a business acknowledgment that confirms whether the supplier accepts, rejects, or proposes changes to the purchase order at the line-item level. The 997 says “we received your file.” The 855 says “we will (or won’t) fill your order.” Both are typically required.
Q7: What is the difference between EDI 997 and EDI 999?
Both are functional acknowledgments, but they apply to different X12 standard versions. EDI 997 is used with version 004010 and earlier, which is the dominant standard in retail and supply chain EDI. EDI 999 (Implementation Acknowledgement) is used with version 005010, which is required for healthcare EDI under HIPAA. If you are working in retail or manufacturing, you will almost always be dealing with EDI 997.
Q8: Is EDI 997 required?
Whether a 997 is required depends on the trading partner’s implementation guide. Most major retailers and distributors require suppliers to send a 997 in response to every inbound transaction. Some partners also require suppliers to generate and transmit 997s back to the buyer for every document the buyer sends. Failing to send a required 997 can be treated as a non-receipt of the original transaction, which may trigger a resend or a compliance violation. Always confirm 997 requirements in your trading partner’s implementation guide.
Q9: How quickly must a 997 be sent?
Most trading partners require a 997 to be returned within 24 hours of receiving the original transaction. Some high-volume retailers require acknowledgement within 1 to 2 hours. In automated EDI systems like Elevate, 997s are generated and transmitted within minutes of receiving and validating the inbound file, no manual intervention required.
Q10: What happens if I do not send a 997?
If a required 997 is not returned within the trading partner’s specified window, the sender of the original transaction typically assumes the file was not received. This may result in the original transaction being resent, creating duplicate orders or invoices in your system. For some retailers, a missing 997 is treated as a compliance violation and can result in a chargeback. In automated EDI systems, 997 generation is triggered automatically so this scenario does not occur.
Q11: What does it mean when I receive a 997 with errors?
A 997 with errors (AK5*E or AK5*R) means the EDI file you sent contained structural problems. The AK3 segment identifies which specific segment in your transaction had the error, including its position in the file. The AK4 segment identifies the specific data element within that segment that caused the problem, along with an error code explaining what was wrong. You must correct the identified errors and retransmit the original transaction. The rejected version will not be processed by the trading partner.
Q12: Can a 997 be sent for every EDI transaction type?
Yes. The EDI 997 is a universal response document that is sent in response to every X12 transaction set, including EDI 850, 810, 855, 856, 820, 830, 846, 860, and all others. Every time an EDI file is received, a 997 is generated and returned to the sender. This is why monitoring 997 acknowledgments is the most reliable way to confirm that every step in the EDI communication pipeline is functioning correctly.
Q13: What is a 997 loop and why does it matter?
A 997 loop refers to the scenario where a trading partner sends a 997 in response to your 997. This is technically incorrect as the 997 itself should not be acknowledged with another 997. It would create an infinite acknowledgment loop. Most EDI systems are configured to suppress 997-in-response-to-997 behavior. If your system is generating or receiving 997s for 997s, there is a configuration error in your EDI platform that needs to be corrected.
Q14: Do I need EDI software to send and receive EDI 997s automatically?
Yes. In modern EDI environments like Elevate, 997 generation and transmission is handled automatically by the EDI platform. When Elevate receives an inbound EDI transaction, it validates the file, generates the appropriate 997 response, and transmits it back to the trading partner within minutes. When Elevate transmits an outbound file to a trading partner, it monitors for the incoming 997 and alerts your team if an acknowledgment is not received within the expected window or if a rejection is returned.
Q15: What is the EDI 997 AK9 segment?
The AK9 segment is the Functional Group Response Trailer that closes the functional group acknowledgment opened by the AK1 segment. AK9 contains the overall group status code (A, E, R, or P), the total number of transaction sets included in the functional group, the number that were received, and the number that were accepted. It gives a summary-level view of the acknowledgment when a group contains multiple transaction sets.
Table of Content
Read next