The EDI 997 functional acknowledgment confirms a file arrived and was structurally valid. It is not a business acceptance, and a missing 997 is the most common reason a retailer believes you never received their order.
The 997 functional acknowledgment says one thing: your file reached us and it parsed. It does not say the order is accepted, the price is agreed or anything will ship. Confusing it with a business acknowledgment is a common and expensive mistake, and never sending one is worse, because as far as the retailer is concerned their order vanished.
The EDI 997 is a technical receipt. It confirms that a functional group of EDI documents was received and reports whether each transaction set inside it was syntactically valid. It travels in both directions: you send one for every file a retailer sends you, and they send one for every file you send them.
Think of it as the delivery confirmation on a parcel. It proves the envelope arrived and was not damaged. It says nothing about whether anyone liked what was inside. That job belongs to the 855 purchase order acknowledgment, which is a business response.
The distinction matters because the two get conflated constantly, usually in the same sentence as the word acknowledgment. A retailer that has your 997 and no 855 knows their purchase order file reached your system and has no idea whether you are filling it. A retailer that has neither assumes the transmission failed and will chase, escalate or cancel.
A 997 mirrors the structure of the file it is acknowledging: one group, one or more transaction sets, and any errors found inside them.
ST*997*0001 / AK1*PO*000000101 / AK2*850*0001 / AK5*A / AK2*850*0002 / AK3*PO1*4**8 / AK4*2*330*7 / AK5*R*5 / AK9*P*2*2*1 / SE*10*0001| AK1 | Functional group response header. Identifies which group is being acknowledged by its functional identifier code and control number. PO means a group of purchase orders. |
| AK2 | Transaction set response header. One per document inside the group, naming the transaction set and its control number. |
| AK3 | Data segment note. Present only when there is a problem. Names the offending segment, its position and what is wrong with it. |
| AK4 | Data element note. Drills into the specific element inside that segment that failed, with an error code and often the offending value. |
| AK5 | Transaction set response trailer. The verdict on that one document: accepted, accepted with errors, rejected, and why. |
| AK9 | Functional group response trailer. The verdict on the whole group, plus counts of sets included, received and accepted. |
| SE | Closes the transaction set with a segment count. |
In the example, two purchase orders arrived. The first was accepted cleanly. The second was rejected because a data element in the PO1 segment failed validation, and the AK9 reports the group as partially accepted with two sets received and one accepted. That is a far more useful error report than most systems produce internally, and it is sitting in an inbox on both sides of every EDI relationship.
AK5 reports on a single transaction set. AK9 reports on the whole functional group. The code sets overlap.
| A | Accepted. The document was syntactically valid. |
| E | Accepted, but errors were noted. The document is usable and something in it is not clean. |
| P | Partially accepted, at group level. Some transaction sets in the group were rejected. |
| R | Rejected. The document could not be processed. |
| M | Rejected, message authentication code failed. |
| W | Rejected, assurance failed on validity tests. |
| X | Rejected, content after decryption could not be analyzed. |
The retailer's system waits, times out and flags the transmission as failed. Depending on the account that means a resend, an escalation to a buyer, or a compliance point against you. From their side an unacknowledged file and a lost file are the same event.
Your invoice was rejected on Tuesday. The 997 said so on Tuesday. If nobody processes inbound 997s you find out at the end of the payment cycle when the money does not arrive, having lost three weeks of aging on a document that never entered their system.
A 997 with an A does not mean the order is confirmed, the price is agreed or anything will ship. Sales teams and warehouse teams both make this assumption. The business answer is the 855.
Accepted with errors is the quiet one. Everything looks like it is working, and a data problem accumulates until it surfaces somewhere unrelated, usually as a mismatched invoice or a rejected ASN weeks later.
AIMS360 generates the outbound 997 on receipt, without waiting for anyone to process the underlying document, so the technical window is met even when the business handling of an order takes longer. Inbound 997s are matched back to the document they refer to, so a rejection surfaces against the specific invoice or ASN rather than in a log nobody reads.
The acknowledgment fires on receipt, which is what the short windows some retailers set actually require.
An inbound R or E is attached to the original document and surfaced as an exception, with the AK3 and AK4 detail intact.
Every acknowledgment in and out is retained against the order, which is the evidence you want when a retailer says a document never arrived.
997 volume equals total document volume by definition. AIMS360 charges no per document or per kilocharacter fees of its own.
It confirms that a functional group of EDI documents was received and reports whether each transaction set inside it was syntactically valid. It is a technical receipt, not a business response. Both trading partners send them: you acknowledge every file a retailer sends you, and they acknowledge every file you send them.
No, and this is the most consequential misunderstanding in EDI. A 997 with an accept code means the file parsed. It says nothing about whether you will fill the order, at what quantity, or at what price. The business answer is the 855 purchase order acknowledgment. A retailer holding your 997 and no 855 knows their file arrived and does not know whether their order is being filled.
Faster than most other documents, because it is automatic by nature. Twenty four hours is a common published requirement and plenty of retailers expect it far sooner, sometimes within an hour. Since generating it does not require any business decision, there is no good reason for it to be slow: it should fire on receipt rather than after processing.
The 999 implementation acknowledgment is a later transaction set that reports not just syntax but conformance to a specific implementation guide. It is standard in healthcare EDI under HIPAA 5010. In retail and consumer goods the 997 remains the norm, and unless a trading partner specifically asks for a 999 you will be sending and receiving 997s.
A is accepted. E is accepted but errors were noted. P is partially accepted, used at group level when some transaction sets inside were rejected. R is rejected. There are also M, W and X for authentication, assurance and decryption failures. E deserves particular attention: the document was processed, so nothing looks broken, and the underlying data problem persists until it surfaces somewhere else.
The retailer's system waits for one, times out and treats the transmission as failed. In practice that means a resend, a call, an escalation to a buyer or a compliance point against your account, and in the worst case an order that gets cancelled because they believe it never reached you. An unacknowledged file and a lost file look identical from their side.
Both, and the inbound side is the one people skip. An inbound 997 is how you learn that your invoice or ship notice was rejected. If nobody reads them, a rejected invoice sits outside the retailer's system entirely and you discover it when the payment does not arrive, having already lost weeks of aging. The AK3 and AK4 segments usually tell you exactly which element failed.
Last reviewed 7 August 2026 by the AIMS360 EDI team. Segment and code detail reflects the ANSI ASC X12 997 transaction set. Acknowledgment timing requirements are set by each trading partner and can change.
See AIMS360 acknowledge in both directions and surface rejections against the order, in a 30 minute demo.