Data format

X12 converter

A .x12 file is an ANSI ASC X12 electronic data interchange document — the format American businesses use to send purchase orders, invoices, shipping notices and healthcare claims to each other as structured text rather than paper or email. It is not a spreadsheet or a markup language: it is a stream of terminator-delimited segments wrapped in a fixed-width envelope, designed in an era when every byte on a leased line was paid for.

Private for supported formats — processed in your browser

Convert supported files

Runs on your device

Drop X12 files here

Batch files can each use a different output. Nothing uploads for local conversions.

Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.

Where X12 comes from

The Accredited Standards Committee X12 was chartered by ANSI in 1979 to build a single national EDI standard out of the incompatible industry-specific formats then in use. Versions are published as release numbers such as 004010, 005010 and 008030, and 005010 became effectively mandatory in US healthcare when HIPAA named it for electronic claims. The standard is still maintained, and 004010 remains widely deployed decades after publication because trading-partner agreements outlive software.

How X12 works

  • An interchange opens with a fixed-width 106-byte ISA envelope whose sixteen elements are padded to exact widths — unlike every later segment, ISA cannot be parsed by splitting on delimiters alone.
  • The delimiters are data, not constants: the element separator is read from byte 3, and the component separator and segment terminator are the two bytes following the sixteenth element separator.
  • Structure nests as interchange (ISA/IEA) → functional group (GS/GE) → transaction set (ST/SE), each level carrying its own control number that must match between header and trailer.
  • Transaction sets are identified by number — 850 purchase order, 810 invoice, 837 healthcare claim, 856 advance ship notice — and each has its own segment and element dictionary.
  • Element meaning comes from an implementation guide, not from the file: a bare X12 document is parseable without being interpretable.

When to use X12

  • Reading a purchase order or invoice a trading partner sent, without uploading commercial terms to a third-party service
  • Inspecting an interchange's envelope and control numbers when a partner reports a mismatch
  • Flattening segments into CSV or JSON so they can be diffed, queried, or loaded somewhere useful
  • Checking what a transaction set actually contains before writing a mapping against it

Strengths and limitations

Strengths

  • Extremely compact — the whole point of its design
  • Self-delimiting envelopes and paired control numbers make truncation and misordering detectable
  • A genuinely stable standard: files written against 004010 in the 1990s still parse

Limitations

  • Unreadable without a dictionary; element values are positional codes with no inline names
  • Delimiters vary per interchange, so naive splitting on `*` and `~` corrupts files that chose others
  • The .x12 extension is uncommon in practice — most real files arrive as .edi, .txt or .dat
  • Implementation guides differ per trading partner, so two valid 850s can be mutually unusable

Compatibility

X12 is a text format, so any editor can open one, but almost nothing renders it meaningfully. Enterprise systems reach it through dedicated EDI translators (Sterling, Cleo, SPS Commerce and similar), and outside that ecosystem support is thin — which is why the useful browser operation is normalizing it into JSON or CSV rather than editing it in place. Novus Convert reads X12 locally with bounded parsing and validates the ISA envelope's sixteen elements and its distinct delimiters before trusting any of it.

Envelope metadata — sender and receiver IDs and qualifiers, interchange date and time, version, control numbers, and the test/production usage indicator — is preserved. Implementation-guide semantics, code lists and element data types are not interpreted, so values are carried through as the raw strings they are.