Skip to content

EDI Rejection Explainer

Paste the 997, 999, TA1, 824 or CONTRL your partner sent back. Every code in plain English, and with the original document, the exact segment to fix.

Runs in your browser. Nothing you enter or paste is sent to OrderSync.

Try a sample:

997, 999, TA1 or 824 (starts with ISA), or EDIFACT CONTRL (starts with UNA or UNB).

The 810, 856, 850 or INVOIC it answers. Add it to see each error in your file and the exact fix.

Paste an acknowledgment, or pick a sample above. Results appear as you paste.

How to Read an EDI Rejection

Acknowledgments come in layers, and each layer answers a different question. A TA1 answers “was the envelope (ISA to IEA) readable?” A 997 or 999 answers “was each document valid X12?” and names the segment (AK3/IK3) and element (AK4/IK4) that failed. An 824 answers “could our system use it?” with business errors such as a total out of balance or an item not on file. EDIFACT partners send a CONTRL for the syntax layer and often an APERAK for the business layer.

Positions in an acknowledgment count from the start of the transaction set: ST (or UNH) is segment 1. Element positions count from 1 after the segment ID, so AK4*1 on a BIG segment is BIG01. Paste the original document and the explainer does that counting for you, shows the current value and works out numbers such as the right SE01 count or invoice total.

More on each document: the 997 functional acknowledgment guide, the 824 application advice guide and the EDIFACT CONTRL guide. To check a document before you send it, run it through the EDI inspector. When a rejection has already turned into a deduction, read the remittance with the 820 remittance reader and see how EDI chargebacks work.

997, 999 and TA1 Code Lists

Segment syntax error codes (AK304, IK304)
CodeMeaning
1Unrecognized segment ID
2Unexpected segment
3Mandatory segment missing
4Loop occurs over maximum times
5Segment exceeds maximum use
6Segment not in defined transaction set
7Segment not in proper sequence
8Segment has data element errors
I4Implementation 'Not Used' segment present
I6Implementation dependent segment missing
I7Implementation loop occurs under minimum times
I8Implementation segment below minimum use
I9Implementation dependent 'Not Used' segment present

Full list. Source: Wisconsin DHS, 999 acknowledgment instructions (P-00268).

Data element syntax error codes (AK403, IK403)
CodeMeaning
1Mandatory data element missing
2Conditional required data element missing
3Too many data elements
4Data element too short
5Data element too long
6Invalid character in data element
7Invalid code value
8Invalid date
9Invalid time
10Exclusion condition violated
12Too many repetitions
13Too many components
I6Code value not used in implementation
I9Implementation dependent data element missing
I10Implementation 'Not Used' data element present
I11Implementation too few repetitions
I12Implementation pattern match failure
I13Implementation dependent 'Not Used' data element present

Full list. Source: Wisconsin DHS, 999 acknowledgment instructions (P-00268).

Transaction set acknowledgment codes (AK501, IK501)
CodeMeaning
AAccepted
EAccepted, but errors were noted
MRejected, message authentication code (MAC) failed
RRejected
WRejected, assurance failed validity tests
XRejected, content after decryption could not be analyzed

Full list. Source: EdiFabric, X12 997 acknowledgment error codes.

Transaction set syntax error codes (AK502, AK503, AK504, AK505, AK506, IK502)
CodeMeaning
1Transaction set not supported
2Transaction set trailer missing
3Transaction set control number in header and trailer do not match
4Number of included segments does not match actual count
5One or more segments in error
6Missing or invalid transaction set identifier
7Missing or invalid transaction set control number
8Authentication key name unknown
9Encryption key name unknown
10Requested service (authentication or encryption) not available
11Unknown security recipient
12Incorrect message length (encryption only)
13Message authentication code failed
15Unknown security originator
16Syntax error in decrypted text
17Security not supported
18Transaction set not in functional group
19Invalid transaction set implementation convention reference
23Transaction set control number not unique within the functional group
24S3E security end segment missing for S3S security start segment
25S3S security start segment missing for S3E security end segment
26S4E security end segment missing for S4S security start segment
27S4S security start segment missing for S4E security end segment
I5Implementation one or more segments in error
I6Implementation convention not supported

Full list. Source: Wisconsin DHS, 999 acknowledgment instructions (P-00268).

Functional group acknowledgment codes (AK901)
CodeMeaning
AAccepted
EAccepted, but errors were noted
MRejected, message authentication code (MAC) failed
PPartially accepted, at least one transaction set was rejected
RRejected
WRejected, assurance failed validity tests
XRejected, content after decryption could not be analyzed

Full list. Source: EdiFabric, X12 997 acknowledgment error codes.

Functional group syntax error codes (AK905, AK906, AK907, AK908, AK909)
CodeMeaning
1Functional group not supported
2Functional group version not supported
3Functional group trailer missing
4Group control number in the functional group header and trailer do not agree
5Number of included transaction sets does not match actual count
6Group control number violates syntax
10Authentication key name unknown
11Encryption key name unknown
12Requested service (authentication or encryption) not available
13Unknown security recipient
14Unknown security originator
15Syntax error in decrypted text
16Security not supported
17Incorrect message length (encryption only)
18Message authentication code failed
19Functional group control number not unique within interchange
23S3E security end segment missing for S3S security start segment
24S3S security start segment missing for S3E security end segment
25S4E security end segment missing for S4S security start segment
26S4S security start segment missing for S4E security end segment

Full list. Source: EdiFabric, X12 997 acknowledgment error codes.

TA1 interchange note codes (TA105)
CodeMeaning
000No error
001The interchange control number in the header and trailer do not match
002This standard as noted in the control standards identifier is not supported
003This version of the controls is not supported
004The segment terminator is invalid
005Invalid interchange ID qualifier for sender
006Invalid interchange sender ID
007Invalid interchange ID qualifier for receiver
008Invalid interchange receiver ID
009Unknown interchange receiver ID
010Invalid authorization information qualifier value
011Invalid authorization information value
012Invalid security information qualifier value
013Invalid security information value
014Invalid interchange date value
015Invalid interchange time value
016Invalid interchange standards identifier value
017Invalid interchange version ID value
018Invalid interchange control number value
019Invalid acknowledgment requested value
020Invalid test indicator value
021Invalid number of included groups value
022Invalid control structure
023Improper (premature) end-of-file (transmission)
024Invalid interchange content (for example, an invalid GS segment)
025Duplicate interchange control number
026Invalid data element separator
027Invalid component element separator
028Invalid delivery date in deferred delivery request
029Invalid delivery time in deferred delivery request
030Invalid delivery time code in deferred delivery request
031Invalid grade of service code

Full list. Source: Microsoft Learn, X12 TA1 acknowledgments and error codes.

824 and CONTRL Code Lists

824 application acknowledgment codes (OTI01)
CodeMeaning
GAFunctional group accept
GCFunctional group accept with data content change
GPFunctional group partial accept/reject
GRFunctional group reject
TATransaction set accept
TCTransaction set accept with data content change
TETransaction set accept with error
TPTransaction set partial accept/reject
TRTransaction set reject
IAItem accept
IEItem accept with error
IRItem reject

Codes used in published retailer guides; the standard list is longer. Source: HIBCC, 824 Application Advice implementation guide.

824 application error condition codes (TED01)
CodeMeaning
101Effective date too early
102Improper placement of labels
103Invoice number
104Item already exists (product/service ID)
105Item marked for delete
802Invalid debit or credit flag code
803Missing or invalid payment method code
807Missing or invalid originating account number
808Missing or invalid receiving account number
809Missing effective entry date
812Missing transaction reference or trace number
848Incorrect data
003Duplicate billing
005Route error
006Duplicate
007Missing data
008Out of range
009Invalid date
010Total out of balance
011Not matching
012Invalid combination
024Other unlisted reason
OTHOther unspecified application error

Codes used in published retailer guides; the standard list is longer. Source: Army and Air Force Exchange Service, 824 Application Advice (4030).

CONTRL action codes (UCI04, UCF03, UCM03)
CodeMeaning
4This level and all lower levels rejected
7This level acknowledged, next lower level acknowledged if not explicitly rejected
8Interchange received

Full list. Source: GS1 EANCOM 2002 S3, CONTRL syntax and service report.

CONTRL syntax error codes (UCI05, UCF04, UCM04, UCS02, UCD01)
CodeMeaning
2Syntax version or level not supported
7Interchange recipient not actual recipient
12Invalid value
13Missing
14Value not supported in this position
15Not supported in this position
16Too many constituents
17No agreement
18Unspecified error
19Invalid decimal notation
20Character invalid as service character
21Invalid character(s)
22Invalid service character(s)
23Unknown interchange sender
24Too old
25Test indicator not supported
26Duplicate detected
27Security function not supported
28References do not match
29Control count does not match number of instances received
30Groups and messages/packages mixed
31More than one message type in group
32Lower level empty
33Invalid occurrence outside message, package, or group
34Nesting indicator not allowed
35Too many data element or segment repetitions
36Too many segment group repetitions
37Invalid type of character(s)
38Missing digit in front of decimal sign
39Data element too long
40Data element too short
41Permanent communication network error
42Temporary communication network error
43Unknown interchange recipient
45Trailing separator
46Character set not supported
47Envelope functionality not supported
48Dependency notes condition violated

Full list. Source: Microsoft Learn, EDIFACT CONTRL acknowledgment error codes.

Frequently Asked Questions

What does AK5*R*5 mean in a 997?

AK5 is the verdict on one transaction set. R means rejected and code 5 means one or more segments are in error. The AK3 and AK4 lines just above it say which segment and element failed and why, for example AK3*BIG*2**8 then AK4*1*373*8 is an invalid date in BIG01.

What is the difference between a 997 and a 999?

Both are functional acknowledgments that report syntax errors. The 999 (5010 and later, common in healthcare) also reports errors against the implementation guide, using IK3, IK4 and IK5 segments and extra codes that start with I, such as I5 or I12. The verdict codes A, E, P and R mean the same in both.

What is the difference between a 997 and an 824?

A 997 says whether the file was readable X12. An 824 Application Advice comes from the partner's business system after it tried to use the data: an unknown item, a total that does not add up, a duplicate invoice number. A document can be accepted on the 997 and still rejected on an 824.

What does a TA1 with code 025 mean?

The interchange control number in ISA13 was already used, so the partner treated the file as a duplicate and rejected the whole interchange. Resend with a new ISA13 and the same number in IEA02. Every interchange needs its own control number, including resends.

How do I read an EDIFACT CONTRL message?

UCI is the verdict on the interchange, UCM on each message, UCS points at a segment by its position in the message (UNH is 1) and UCD at an element inside it. Action code 4 means rejected, 7 means accepted unless a lower level says otherwise, and 8 means received but not yet checked. The syntax error code says what was wrong.

Should I resend with the same control numbers?

Usually no. Most partners reject a reused ISA13 or GS06 as a duplicate. Fix the document, give it new interchange and group control numbers, and keep the ST02 unique within the group. Check your partner's guide, since a few ask for corrected documents to reference the original.

Is the document I paste uploaded anywhere?

No. The acknowledgment and the original are read in your browser. Nothing is sent to OrderSync or anyone else, and nothing is saved. The Copy link button puts the documents in the part of the link after the # sign, which browsers never send to a server.