Notes

Short, dated, unpolished. Things I worked out while reading the standards, questions I have not answered yet, and the occasional thing I got wrong. The reference pages grow out of these.

ISA06 and ISA08 are fixed width, and nothing says so loudly

Spent an evening on the ISA segment. Every element in it is fixed length, which is unusual in X12, and the sender and receiver IDs are 15 characters, space padded.

The standard states this plainly enough once you know to look for it. The problem is that every introductory page I read described ISA as “the interchange envelope” and moved on, so I had no reason to look. Writing it down so the next person searching finds something.

Still working out when a 999 is used instead of a 997

I assumed these were interchangeable and they are not. The 999 carries implementation guide validation that the 997 has no room for, which is why it turns up where a guide is being enforced.

I have read enough to say that much and not enough to write the page yet. If you know the full picture, I would like to hear it.

Segment terminators, and why a stray newline causes chaos

The terminator ends a segment. A newline after it is not part of the standard, but plenty of files carry one and plenty of parsers tolerate it.

Which means two implementations can disagree about the same file and both believe they are correct. Reading the raw bytes appears to be the only way to be sure what you actually have.