— Developer Tools

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.

— Samples
Segments 15Envelope problems 0Valid
Live

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.

1

Get the File

From your EDI translator, VAN mailbox, AS2 server or a partner’s sample.

2

Paste or Open

Line breaks between segments are fine, and any delimiters work.

3

Check the Envelope

Count and control number problems are listed first, before the segments.

4

Read the Segments

Each segment is numbered and named, with its elements labelled underneath.

Worked Examples

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.

REF_001An 850 purchase order

“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~”

REF_002An 810 invoice

“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~”

REF_003A 997 acknowledgement as JSON

“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~”

REF_004An SE count that’s off by one

“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~”

REF_005Control numbers that don’t match

“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~”

REF_006Pipes and apostrophes as delimiters

“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'”

REF_007The start of an 837 claim

“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~”

REF_008Segments with no envelope

“ST*850*0001~BEG*00*SA*PO-1**20261028~SE*3*0001~”

REF_009A lowercase segment ID

“ST*850*0001~beg*00*SA~SE*3*0001~”

REF_010Plain text

“PO-88412, 120 x WID-100”

The Envelope

How an X12 File Is Wrapped

Every X12 file nests the same envelopes. These ten parts are what most rejections are about.

01 / ISA

ISA

The interchange header, fixed at 106 characters, with sender, receiver, date, version and control number.

“How long is an ISA?”

02 / DELIMITERS

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?”

03 / ISA13

ISA13 and IEA02

The interchange control number, which must match at both ends.

“What must IEA02 equal?”

04 / GS

GS

A functional group of one document type, such as PO for purchase orders or IN for invoices.

“What is GS01 for an 810?”

05 / GS06

GS06 and GE02

The group control number, matched by the group trailer.

“What does GE01 count?”

06 / ST

ST

The start of one document: its type, such as 850, and a control number.

“What is ST01?”

07 / SE01

SE01

The number of segments from ST to SE, both included.

“Is ST counted?”

08 / ISA14

ISA14

Whether the sender wants a TA1 interchange acknowledgment.

“What does 1 mean?”

09 / ISA15

ISA15

P for production or T for test, which partners route differently.

“What is T?”

10 / 997

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.

Tip 01

Wrong SE Count

Adding or removing a segment without updating SE01 is the most common error.

Tip 02

Mismatched Control Numbers

ST/SE, GS/GE or ISA/IEA numbers that differ make the envelope invalid.

Tip 03

Unpadded ISA

ISA elements are fixed width. Trimming the spaces breaks the delimiter positions.

Tip 04

Wrong Qualifiers

IDs need the right qualifier, such as ZZ for mutually defined or 01 for DUNS.

Tip 05

Delimiter Clashes

A delimiter character inside data, such as * in a name, splits the element.

Tip 06

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.

Tip 01

Implied Decimals

Some amounts, such as TDS01, have two implied decimals: 127320 means 1273.20.

Tip 02

Versions

4010 and 5010 differ in segments and codes. GS08 and ST03 say which applies.

Tip 03

Partner Guides

Each partner restricts the standard in its own guide, so valid X12 can still be rejected.

Tip 04

Hierarchies

856 and 837 use HL segments with parent IDs, so order alone doesn’t show structure.

Tip 05

Repeated Segments

Loops repeat segments such as N1, and their meaning depends on the qualifier.

Tip 06

Line Breaks

Line breaks aren’t part of X12. Some systems add them for readability, others reject them.

Frequently Asked Questions