Free EDI X12 Viewer
Paste or open an X12 file to see each segment named, its elements labelled, and the envelope counts and control numbers checked.
What is an EDI X12 Viewer?
X12 is the EDI standard North American retailers, manufacturers, carriers and health insurers use to exchange orders, invoices, ship notices and claims. A file is a stream of segments such as BEG*00*SA*PO-88412, packed into envelopes. This viewer lays it out and checks the envelope.
It reads the delimiters from the ISA segment, splits every segment and element, and nests transaction sets inside their groups and interchange. Around eighty segments are named, the common ones have labelled elements, codes such as entity and date qualifiers are explained, and every count and control number in the envelope is checked.
Key Features
Delimiters Detected
Element, segment and component separators read from ISA, so any trading partner’s file opens.
Envelope Checked
SE segment counts, GE and IEA counts, and ST/SE, GS/GE and ISA/IEA control numbers.
Segments Named
Around eighty segments from retail, logistics and health care transaction sets.
Codes Explained
Transaction sets, entity qualifiers, date qualifiers, dates and acknowledgment codes.
Nothing Uploaded
EDI files are read in your browser and never sent anywhere.
Perfect for everyone
- EDI analysts
- Supply chain and retail integration teams
- Health care claims staff and developers mapping EDI
How to Use the EDI X12 Viewer
Paste the interchange or open the file.
Get the File
From your EDI translator, VAN mailbox, AS2 server or a partner’s sample.
Paste or Open
Line breaks between segments are fine, and any delimiters work.
Check the Envelope
Count and control number problems are listed first, before the segments.
Read the Segments
Each segment is numbered and named, with its elements labelled underneath.
X12 Files, Viewed
Each row is X12 as trading partners exchange it, and each answer is this viewer’s output in the mode on the chip. The companies are fictional.
“ISA*00* *00* *ZZ*ACMEBUYER *ZZ*WIDGETCO *261028*0915*U*00401*000004217*1*P*>~ GS*PO*ACMEBUYER*WIDGETCO*20261028*0915*4217*X*004010~ ST*850*0001~ BEG*00*SA*PO-88412**20261028~ REF*DP*042~ DTM*002*20261104~ N1*ST*ACME DISTRIBUTION CENTER*92*0042~ N3*1200 INDUSTRIAL PKWY~ N4*COLUMBUS*OH*43215*US~ PO1*1*120*EA*4.25**UP*012345678905*VP*WID-100~ PO1*2*24*CA*31.80**UP*012345678912*VP*WID-200~ CTT*2~ SE*11*0001~ GE*1*4217~ IEA*1*000004217~”
“ISA*00* *00* *ZZ*WIDGETCO *ZZ*ACMEBUYER *261105*1400*U*00401*000000981*0*P*>~ GS*IN*WIDGETCO*ACMEBUYER*20261105*1400*981*X*004010~ ST*810*0001~ BIG*20261105*INV-5520*20261028*PO-88412~ N1*RI*WIDGETCO INC~ IT1*1*120*EA*4.25**UP*012345678905~ IT1*2*24*CA*31.80**UP*012345678912~ TDS*127320~ CTT*2~ SE*8*0001~ GE*1*981~ IEA*1*000000981~”
“ISA*00* *00* *ZZ*WIDGETCO *ZZ*ACMEBUYER *261028*0920*U*00401*000000777*0*P*>~ GS*FA*WIDGETCO*ACMEBUYER*20261028*0920*777*X*004010~ ST*997*0001~ AK1*PO*4217~ AK2*850*0001~ AK5*A~ AK9*A*1*1*1~ SE*6*0001~ GE*1*777~ IEA*1*000000777~”
“ISA*00* *00* *ZZ*ACMEBUYER *ZZ*WIDGETCO *261028*0915*U*00401*000004217*1*P*>~ GS*PO*ACMEBUYER*WIDGETCO*20261028*0915*4217*X*004010~ ST*850*0001~ BEG*00*SA*PO-88412**20261028~ REF*DP*042~ DTM*002*20261104~ N1*ST*ACME DISTRIBUTION CENTER*92*0042~ N3*1200 INDUSTRIAL PKWY~ N4*COLUMBUS*OH*43215*US~ PO1*1*120*EA*4.25**UP*012345678905*VP*WID-100~ PO1*2*24*CA*31.80**UP*012345678912*VP*WID-200~ CTT*2~ SE*12*0001~ GE*1*4217~ IEA*1*000004217~”
“ISA*00* *00* *ZZ*ACMEBUYER *ZZ*WIDGETCO *261028*0915*U*00401*000004217*1*P*>~ GS*PO*ACMEBUYER*WIDGETCO*20261028*0915*4217*X*004010~ ST*850*0001~ BEG*00*SA*PO-88412**20261028~ REF*DP*042~ DTM*002*20261104~ N1*ST*ACME DISTRIBUTION CENTER*92*0042~ N3*1200 INDUSTRIAL PKWY~ N4*COLUMBUS*OH*43215*US~ PO1*1*120*EA*4.25**UP*012345678905*VP*WID-100~ PO1*2*24*CA*31.80**UP*012345678912*VP*WID-200~ CTT*2~ SE*11*0001~ GE*1*4217~ IEA*1*000004218~”
“ISA|00| |00| |ZZ|WIDGETCO |ZZ|ACMEBUYER |261028|0920|U|00401|000000777|0|P|>' GS|FA|WIDGETCO|ACMEBUYER|20261028|0920|777|X|004010' ST|997|0001' AK1|PO|4217' AK2|850|0001' AK5|A' AK9|A|1|1|1' SE|6|0001' GE|1|777' IEA|1|000000777'”
“ST*837*0001*005010X222A1~BHT*0019*00*REF-77*20261028*1015*CH~NM1*41*2*ACME BILLING*****46*TX123~NM1*40*2*PAYER INC*****46*PAY01~SE*5*0001~”
“ST*850*0001~BEG*00*SA*PO-1**20261028~SE*3*0001~”
“ST*850*0001~beg*00*SA~SE*3*0001~”
“PO-88412, 120 x WID-100”
How an X12 File Is Wrapped
Every X12 file nests the same envelopes. These ten parts are what most rejections are about.
ISA
The interchange header, fixed at 106 characters, with sender, receiver, date, version and control number.
“How long is an ISA?”
Delimiters
The fourth character of ISA is the element separator, ISA16 the component separator, and the next character ends the segment.
“Where is the segment terminator?”
ISA13 and IEA02
The interchange control number, which must match at both ends.
“What must IEA02 equal?”
GS
A functional group of one document type, such as PO for purchase orders or IN for invoices.
“What is GS01 for an 810?”
GS06 and GE02
The group control number, matched by the group trailer.
“What does GE01 count?”
ST
The start of one document: its type, such as 850, and a control number.
“What is ST01?”
SE01
The number of segments from ST to SE, both included.
“Is ST counted?”
ISA14
Whether the sender wants a TA1 interchange acknowledgment.
“What does 1 mean?”
ISA15
P for production or T for test, which partners route differently.
“What is T?”
997 and 999
Functional acknowledgments a receiver returns to accept or reject groups.
“Which code means accepted?”
Transaction Sets You Will See
Hundreds of transaction sets exist, but a typical supply chain relationship uses only a handful. These are the documents that make up an order-to-cash cycle and its health care equivalents.
850 Purchase Order
The buyer orders items, quantities and prices, with ship-to and dates.
855 Order Acknowledgment
The supplier confirms, changes or rejects each line of the order.
856 Ship Notice
The advance ship notice describes cartons and contents in an HL hierarchy.
810 Invoice
The supplier bills for what shipped, referring back to the PO.
820 Remittance
The buyer tells the supplier which invoices a payment covers.
837 and 835
Health care claims to payers, and the payment and adjustment advice back.
997 Acknowledgment
The receiver confirms each group was received and is syntactically valid.
Why Files Get Rejected
Most rejections come from a small set of envelope and syntax problems. These are the ones to check first, several of which this viewer flags automatically.
Wrong SE Count
Adding or removing a segment without updating SE01 is the most common error.
Mismatched Control Numbers
ST/SE, GS/GE or ISA/IEA numbers that differ make the envelope invalid.
Unpadded ISA
ISA elements are fixed width. Trimming the spaces breaks the delimiter positions.
Wrong Qualifiers
IDs need the right qualifier, such as ZZ for mutually defined or 01 for DUNS.
Delimiter Clashes
A delimiter character inside data, such as * in a name, splits the element.
Test Versus Production
Sending T data to a production mailbox, or the reverse, gets it rejected.
When to View X12
Whenever an EDI file needs reading without a translator.
Partner Onboarding
Read a partner’s sample files and compare them with their implementation guide.
Investigating Rejections
Find the count or control number a 997 complained about.
Mapping Work
See every element’s position before mapping it to an ERP field.
Order Questions
Read the PO number, lines and dates straight from the file.
Learning EDI
See how envelopes, segments and elements fit together.
X12 Pitfalls
Mistakes that make X12 hard to read or map.
Implied Decimals
Some amounts, such as TDS01, have two implied decimals: 127320 means 1273.20.
Versions
4010 and 5010 differ in segments and codes. GS08 and ST03 say which applies.
Partner Guides
Each partner restricts the standard in its own guide, so valid X12 can still be rejected.
Hierarchies
856 and 837 use HL segments with parent IDs, so order alone doesn’t show structure.
Repeated Segments
Loops repeat segments such as N1, and their meaning depends on the qualifier.
Line Breaks
Line breaks aren’t part of X12. Some systems add them for readability, others reject them.