Separators in NCPDP Telecom Format

NCPDP telecommunication format relies on non-printable ASCII characters to denote segments and fields.

NCPDP batch standard adds several more non-printable separators to indicate the start/end of transactions and headers/trailers. This is needed to package multiple NCPDP telco transactions in the same file.

Non-printable characters are shown as spaces in all browsers and in many text editors. This makes it difficult to work with text containing hidden characters. To solve this problem, more advanced editors and IDEs show small symbols representing non-printable characters, such as ␞ and ␜.

Our NCPDP viewer follows the same approach. It automatically replaces all separators with their symbolic representation, so they become visible.

Note that the internal codes of these nifty symbols are different from the actual codes mandated by NCPDP. In fact, each symbol is a special Unicode character consisting of two bytes as opposed to a non-printable byte-size ASCII separator. This means that you need to be careful copying and pasting text with symbols; your NCPDP software may choke on it. Our NCPDP parser (the software library powering our NCPDP viewer and other products) supports both ASCII separators and their symbolic Unicode representation.

Here is the list of all NCPDP telecom/batch separators and their corresponding symbols:

Type of separator Separator’s hex code ASCII name Unicode symbol Symbol’s hex code
Segment start 0x1E RS 0x241E
Field start 0x1C FS 0x241C
Start of transaction or header/trailer 0x02 STX 0x2402
End of transaction or header/trailer 0x03 ETX 0x2403
Group (separates Patient and Claim segments) 0x1D GS 0x241D