Trucking EDI fixes
10 of the most common rejects carriers get from brokers and shippers, each with the error as you'll see it, what causes it, the exact fix, and a before/after example. Examples use X12 version 004010 and made-up data. Your partner's implementation guide always comes first.
Have a reject right now?
Paste the 997, the rejected file, or the broker's email into the free checker. It decodes every error code in seconds, in your browser.
Check my reject free997 rejects: transaction set errors
SE01 segment count is wrong
Your 214, 210 or 990 came back with AK5*R*4. SE01 doesn't match the real number of segments from ST to SE. Here's how to count it and fix it.
AK5*R*3 / 23ST02 and SE02 don't match (or are duplicated)
AK5*R*3 means ST02 and SE02 aren't identical. AK5*R*23 means two transaction sets in one group share a control number. How to fix both.
Envelope errors (ISA / GS)
ISA13 / IEA02 mismatch (TA1 001, 021, 025)
A TA1 with R and note code 001 means the ISA13 and IEA02 control numbers differ. Also covers 021 (wrong IEA01 group count) and 025 (duplicate interchange).
AK9 4 / 5GS / GE group control number or count (AK9 4, 5)
AK9 code 4: GS06 and GE02 don't agree. AK9 code 5: GE01 doesn't equal the number of transaction sets in the group. Fix both in your 214, 210 or 990 batches.
TA1 005 / 006ISA qualifier & SCAC padding (TA1 005, 006, 022)
Rejected before any 997? Check ISA05/ISA06. Qualifier 02 means SCAC, ZZ means mutually defined, and ISA06 must be padded with spaces to exactly 15 characters.
214 shipment status rejects
Invalid date in a 214 (AK4 code 8)
AK3*AT7 with AK4*5*373*8 means the AT7-05 status date isn't a real CCYYMMDD date. Usually day and month swapped or a 6-digit date. Exact fix inside.
AK4 *337*9Invalid time or time zone code in a 214
AK4*6*337*9 means AT7-06 isn't a valid 24-hour HHMM time (like 2400 or 2:30PM). AK4*7*623 means the time zone code is wrong (CST instead of CS or CT).
AK4 *1651*2AT7 status / reason code pairing errors
Your 214 was rejected with AK4 code 2, 7 or 10 on AT7. Each status code needs a reason code, and a status and an appointment can't share one AT7. Fix it here.
210 freight invoice rejects
204 load tender / 990 response
How to read a 997 in 30 seconds
AK1names the group you sent (GS01 and GS06).AK2names the transaction set (ST01 and ST02).AK3= which segment is wrong (segment ID, position counted from ST = 1, and an error code).AK4= which element is wrong (position in the segment, the element's dictionary number, an error code, and a copy of the bad value).AK5= the verdict on that transaction set (Aaccepted,Eaccepted with errors,Rrejected), plus an error code.AK9= the verdict on the whole group.- A
TA1instead of (or along with) a 997 means the problem is in the ISA/IEA envelope itself.
References: X12 transaction sets (x12.org) · 997 Functional Acknowledgment, 004010 (Stedi X12 reference)