1. Your EDI file
Usually a .edi, .x12 or .txt file from your EDI provider, ERP or the retailer's portal: it starts with ISA* and the segments end with ~.
Choose a file or paste the text, then click Validate.
Result
Documents
Rebuild the segment counts
The model, and what it leaves out
- Envelope: ISA is 106 fixed-width characters and the separators come from it. IEA02, GE02 and SE02 must equal ISA13, GS06 and ST02. IEA01 counts groups, GE01 counts sets, and SE01 counts every segment from ST to SE inclusive.
- 850 and 810 lines are read as quantity, unit of measure, unit price and product IDs. UPC (12 digits), EAN-13 and GTIN-14 numbers are tested with the GS1 check digit. CTT01 is compared with the line count.
- Invoice total: TDS01 (cents, no decimal point) is compared with the sum of quantity × price, plus charges, less allowances, plus tax. A difference inside line-by-line rounding is noted, not flagged. A price basis other than “per each” can legitimately change the total and is reported.
- 856 ship notice: HL IDs must count up from 1, each parent must exist earlier, and levels are checked for a sensible order. SSCC carton numbers must be 18 digits, pass the check digit and be unique.
- 997 and 999: the accept/reject status, and the segment and element error codes, are translated into plain words.
- Rebuild rewrites SE01, GE01, IEA01 and CTT01 only. It never edits an item, a quantity, a price or a total.
- Not checked: your trading partner's implementation guide (required segments, qualifiers, code lists, label formats), other transaction sets beyond their envelope, syntax rules of each segment, and X12 versions other than the common 004010 layouts. A clean result is not a promise of acceptance.
Common questions
How do I check an EDI 850, 810 or 856 file before I send it to a retailer?
Paste the file or drop it onto this page. It checks the ISA, GS and ST envelope (control numbers and segment counts), then reads each purchase order, invoice and ship notice: line counts, UPC check digits, invoice total against the lines, ship-notice hierarchy and SSCC carton numbers, and lists each problem with its segment number.
Why did my trading partner reject the EDI file with a 997?
A rejected 997 names the segment and element that failed, but only as codes. Paste the 997 here and the AK3, AK4 and AK5 codes are translated into plain words, for example “mandatory data element missing” or “segment count in trailer does not match”.
What does SE01 mean and why must it match?
SE01 is the number of segments in the transaction set, counted from the ST segment to the SE segment inclusive. Deleting or adding a line without updating it is the most common reason a file is rejected at the envelope. The same applies to GE01 (sets in the group) and IEA01 (groups in the interchange).
How is a UPC or SSCC check digit calculated?
Working from the right, starting with the digit next to the check digit, digits are multiplied by 3, 1, 3, 1 and so on; the check digit brings the sum up to a multiple of ten. A UPC-A has 12 digits, an EAN-13 has 13, and an SSCC carton number has 18. A spreadsheet that drops a leading zero is the usual way a good number turns bad.
Why does my invoice total not match the lines?
TDS01 is the invoice total in cents with no decimal point. It should equal the sum of quantity times unit price on every IT1 line, plus charges, less allowances, plus tax. This tool shows each part so you can see which one moved. It never edits a price, a quantity or a total.
Is it safe to paste a purchase order or invoice into a web page?
The page runs in your browser, the file is read locally and nothing is uploaded; a test in the code asserts there are no network calls. Whether you may open order data in a browser tool is a question for your own policies and your trading-partner agreement.