EDI Envelope — ISA, GS, GE, IEA
EDI Envelope Segments — ISA, GS, GE, IEA
Overview
Every EDI transaction is wrapped in envelope segments. These are consistent across all transaction types (846, 850, 856, 810).
ISA ─── Interchange Header (outermost envelope) GS ─── Functional Group Header ST ─── Transaction Set Header ... transaction content ... SE ─── Transaction Set Trailer GE ─── Functional Group Trailer IEA ─── Interchange Control Trailer
ISA - Interchange Header
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| ISA01 | Authorization Info Qualifier | 2 ID | Required | 00 (No authorization info present) |
| ISA02 | Authorization Information | 10 AN | Required | Not Used (space-filled) |
| ISA03 | Security Info Qualifier | 2 ID | Required | 00 (No security info present) |
| ISA04 | Security Information | 10 AN | Required | Not Used (space-filled) |
| ISA05 | Interchange ID Qualifier | 2 ID | Required | ZZ (Mutually Defined) or 01 (DUNS) |
| ISA06 | Interchange Sender ID | 15 AN | Required | If sender is FLX → FLXPOINT. If sender is Vendor → vendor's ISA ID number. Right-padded with spaces to 15 chars |
| ISA07 | Interchange ID Qualifier | 2 ID | Required | ZZ (Mutually Defined) |
| ISA08 | Interchange Receiver ID | 15 AN | Required | If receiver is FLX → FLXPOINT. Right-padded to 15 chars |
| ISA09 | Date | 6 DT | Required | YYMMDD format |
| ISA10 | Time | 4 TM | Required | HHMM format |
| ISA11 | Interchange Control Standards ID | 1 ID | Required | U (US EDI Community of X12, TDCC, UCS) |
| ISA12 | Interchange Control Version | 5 AN | Required | 00401 |
| ISA13 | Interchange Control Number | 9 N | Required | Sequential number starting with 1, incremented by 1 per transmission |
| ISA14 | Acknowledgment Requested | 1 ID | Required | 0 (No Interchange Acknowledgment TA1 requested) |
| ISA15 | Test Indicator | 1 ID | Required | P (Production) or T (Test) |
| ISA16 | Sub-element Separator | 1 AN | Required | > (standard) or : — must be consistent throughout the file. 992 support emails in 6 months mention delimiter/separator issues. |
Delimiter Troubleshooting
- Standard delimiters: segment terminator
~, element separator*, sub-element separator>(ISA16). This is what Flxpoint's outbound documents (850, 855, 856, 810) use. Exception: the 997 reuses the delimiters of the file it acknowledges, terminator and trailing whitespace included. - Invalid terminator (Flxpector TOK-003): if the character after ISA16 is the replacement character
U+FFFD(shown as�in some editors) or a raw control byte such as0x85, the file went through an encoding conversion that corrupted it. Every segment ends with it and most receivers reject the file. Flxpector's "Apply fix" rewrites the terminator to~. If the file is a Flxpoint-generated 997, contact support@flxpoint.com with the file attached so it can be re-issued, and switch your own outbound terminator to~so the next 997 does not inherit the problem. - Common issue: files have line breaks (CR/LF) before
~— Flxpoint's parser handles this, but be aware - Unusual delimiters: if a vendor uses
|instead of*, the ISA header must declare it correctly at the fixed position - Data containing delimiters: if product names or descriptions contain
*,~, or>, this will break the parser. These characters must be escaped or removed from data fields.
ISA ID Qualifier Codes (ISA05/ISA07)
| Code | Description |
|---|---|
01 | DUNS (Dun & Bradstreet) |
14 | DUNS Plus Suffix |
30 | U.S. Federal Tax ID |
32 | U.S. Federal Employer ID (FEIN) |
ZZ | Mutually Defined (default) |
X12 defines 30+ qualifier codes but FLX typically uses ZZ.
GS - Functional Group Header
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| GS01 | Functional Identifier Code | 2 ID | Required | See table below |
| GS02 | Application Sender's Code | 15 AN | Required | Sender's ID |
| GS03 | Application Receiver's Code | 15 AN | Required | Receiver's ID |
| GS04 | Date | 8 DT | Required | CCYYMMDD format |
| GS05 | Time | 4 TM | Required | HHMM format |
| GS06 | Group Control Number | 9 N | Required | Control number, starting with 1, incremented by 1 |
| GS07 | Responsible Agency Code | 2 ID | Required | X (Accredited Standards Committee X12) |
| GS08 | Version | 12 AN | Required | 004010VICS |
GS01 Functional Identifier Codes
Authoritative code table per the Flxpoint Integrations team. See Flxpoint Parser Rules for envelope-layer behavior.
| Code | Transaction | Notes |
|---|---|---|
IB | 846 Inventory Inquiry/Advice | |
PO | 850 Purchase Order | |
AD | 855 PO Acknowledgement | Canonical Flxpoint code |
PR | 855 PO Acknowledgement | Legacy alias — still accepted by the parser |
SH | 856 Ship Notice/Manifest | |
IN | 810 Invoice | |
PI | 832 Price/Sales Catalog | |
FA | 997 Functional Acknowledgment |
Accepted Versions (GS08)
Flxpoint accepts three variants:
004010VICS— preferred (matches VICS-specific segments)004010— accepted with a warning (not hard-rejected even if VICS-specific segments are present)005010— accepted
ISA15 Usage Indicator — Test Mode
P= ProductionT= Test — both are processed by Flxpoint, but the UI (and Flxpector) badges test files with a "Test Mode" pill so they are not mistaken for live orders.
GE - Functional Group Trailer
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| GE01 | Number of Included Transaction Sets | 6 N | Required | Count of ST segments within the group |
| GE02 | Group Control Number | 9 AN | Required | Must match GS06 |
IEA - Interchange Control Trailer
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| IEA01 | Number of Included Functional Groups | 5 N | Required | Count of GS segments within the interchange |
| IEA02 | Interchange Control Number | 9 N | Required | Must match ISA13 |
Control Number Matching Rules
| Trailer Field | Must Match | Description |
|---|---|---|
| SE02 | ST02 | Transaction Set Control Number |
| GE02 | GS06 | Group Control Number |
| IEA02 | ISA13 | Interchange Control Number |
FLX Envelope Requirements vs Generic X12
| Aspect | FLX Spec | Generic X12 004010 |
|---|---|---|
| ISA05 | ZZ or 01 | 30+ qualifier codes supported |
| ISA13 uniqueness | Not required by FLX (best practice) | Some validators enforce |
| ISA date format | YYMMDD | YYMMDD (match) |
| GS date format | CCYYMMDD | CCYYMMDD (match) |
| GS time formats | HHMM | HHMM, HHMMSS, HHMMSSD, HHMMSSDD |
Test vs. Production traffic
Two levers distinguish test from production interchanges:
| Lever | Test | Production |
|---|---|---|
| ISA15 (usage indicator) | T — processed but badged "Test Mode"; nothing ships for real | P — live processing |
| Trading-partner IDs (ISA06/08, GS02/03) | Often a suffixed test ID (e.g. the production ID + trailing T, commonly under qualifier ZZ) | The production ID/qualifier agreed with Flxpoint |
Go-live checklist: flip ISA15 T→P; switch to the production IDs on BOTH sides at the same time (a one-sided switch means files stop being recognized); keep ISA13 incrementing — never reuse control numbers across the cutover; send one small production file and confirm it processes before full volume. A "missing trading partner profile" notice from a VAN after the switch means the production IDs aren't provisioned on the receiving side yet.
Something unclear?
Ask our AI assistant — it knows this spec and can explain any segment, error, or rule in plain English.