SupportedCanonical map
EDI 997 Data Map and Field Reference
This page documents the current 58-field Smart Mapping layout for supported EDI 997 files.
Field order, values, sections, collections, sensitivity, and release applicability are rendered directly from the frozen repository map authority.
Download the 997 Data Map
CSV/Excel mapping of 58 ordered fields and 15 metadata columns.
Complete Field Reference
7 sections ยท source order preserved
| Column | Output Order | Data Type | Section | Applicability | Scope | EDI Source | Source Segment | Derivation | Fallback | Provenance | Field Classification | Applicable Versions | Collection Contract | Release Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Identity | ||||||||||||||
| RecordType | 1 | CODE | Identity | ALL | RECORD | Physical AK2 or bounded AK2-less 997 transaction | AK2|AK9|AK1|ST|CONVERTER | Emit TRANSACTION_ACK for every physical AK2 in source order; emit exactly one GROUP_SUMMARY only when the bounded 997 contains no AK2; never regroup by status and never create AK3, AK4, AK5, or AK9 rows | No other row type; malformed recovery retains the research-defined physical owner | Row SourceIndex and the bounded ST | DERIVED_ROW_ID | 004010|004030|005010 | SCALAR | Exact values TRANSACTION_ACK|GROUP_SUMMARY; grain AK2_TRANSACTION_ACK_ROWS_WITH_GROUP_SUMMARY_FALLBACK |
| TransactionType | 2 | CODE | Identity | ALL | TRANSACTION | ST01 | ST | Use exact extracted ST01 only after the exact ST01 === 997 bounded-transaction gate | No AK1, AK9, filename, extension, MIME type, or acknowledgment-text inference | ST sourceIndex via the bounded transaction | SOURCE_SCALAR | 004010|004030|005010 | SCALAR | Exact supported value 997 |
| IsTransactionAnchor | 3 | BOOLEAN | Identity | ALL | RECORD | Canonical physical row order | CONVERTER | TRUE only on the first TRANSACTION_ACK row; otherwise TRUE on the sole GROUP_SUMMARY; exactly one TRUE per bounded ST | FALSE on every later TRANSACTION_ACK row | Deterministic within the bounded ST | DERIVED_CONTEXT | 004010|004030|005010 | SCALAR | Controls one-time GroupSyntaxError projection; does not change AK9 ownership |
| Functional Group Context | ||||||||||||||
| AcknowledgedFunctionalIdentifierCode | 4 | CODE | Functional Group Context | ALL | FUNCTIONAL_GROUP_ACK | AK101 | AK1 | Repeat exact lexical AK101 acknowledged GS01 context on every canonical row; it does not detect the 997 family | Blank when AK1 or AK101 is missing; no GS01 substitution from the containing 997 group | AK1Owner and AK1SourceIndex | SOURCE_SCALAR | 004010|004030|005010 | SCALAR | AK1 is required once; future validation only |
| AcknowledgedGroupControlNumber | 5 | IDENTIFIER | Functional Group Context | ALL | FUNCTIONAL_GROUP_ACK | AK102 | AK1 | Repeat exact lexical AK102 acknowledged GS06 control on every canonical row | Blank when AK1 or AK102 is missing; never match owners by this visible value | AK1Owner and AK1SourceIndex | SOURCE_SCALAR | 004010|004030|005010 | SCALAR | Leading zeros and duplicate visible values remain lexical evidence |
| AcknowledgedGroupVersion | 6 | STRING | Functional Group Context | ALL | FUNCTIONAL_GROUP_ACK | AK103 | AK1 | Repeat exact lexical AK103 acknowledged GS08 only when resolved 005010 makes the element structurally available | Blank in 004010 and 004030 and when absent in 005010; never infer from containing GS08 or ST03 | AK1Owner and AK1SourceIndex | SOURCE_SCALAR | 005010 | SCALAR | 005010-only among tested releases; X230 source remains lexical; X231/X231A1 are not 997 conventions |
| AK1Owner | 7 | STRING | Functional Group Context | ALL | FUNCTIONAL_GROUP_ACK | AK1 owner token | AK1 | Format FUNCTIONAL_GROUP_ACK@<AK1SourceIndex>; repeat on every canonical row | Blank only when AK1 is recoverably missing; never construct identity from AK101 or AK102 | AK1SourceIndex disambiguates blank and duplicate controls | DERIVED_PROVENANCE | 004010|004030|005010 | SCALAR | Closed owner vocabulary token FUNCTIONAL_GROUP_ACK |
| AK1SourceIndex | 8 | INTEGER | Functional Group Context | ALL | FUNCTIONAL_GROUP_ACK | AK1 physical index | AK1 | Repeat the zero-based full-file envelope-inclusive AK1 sourceIndex on every canonical row | Blank only when AK1 is recoverably missing | Self-provenance; never resets per ST | SOURCE_PROVENANCE | 004010|004030|005010 | SCALAR | AK1 requiredness is future 997_STRUCTURAL validation |
| Transaction Set Context | ||||||||||||||
| AcknowledgedTransactionSetIdentifierCode | 9 | CODE | Transaction Set Context | TRANSACTION_ACK | TRANSACTION_ACK | AK201 | AK2 | Use exact lexical AK201 on its own physical TRANSACTION_ACK row only | Blank on GROUP_SUMMARY or when AK201 is absent; no sibling or AK1 fallback | AK2Owner and AK2SourceIndex | SOURCE_SCALAR | 004010|004030|005010 | SCALAR | Acknowledged ST01 evidence; not a business-document outcome |
| AcknowledgedTransactionSetControlNumber | 10 | IDENTIFIER | Transaction Set Context | TRANSACTION_ACK | TRANSACTION_ACK | AK202 | AK2 | Use exact lexical AK202 on its own physical TRANSACTION_ACK row only | Blank on GROUP_SUMMARY or when AK202 is absent; never dedupe or match by this visible value | AK2Owner and AK2SourceIndex | SOURCE_SCALAR | 004010|004030|005010 | SCALAR | Leading zeros and duplicate controls remain distinct physical evidence |
| AcknowledgedImplementationReference | 11 | STRING | Transaction Set Context | TRANSACTION_ACK | TRANSACTION_ACK | AK203 | AK2 | Use exact lexical AK203 acknowledged ST03 only when resolved 005010 makes the element structurally available | Blank in 004010 and 004030, on GROUP_SUMMARY, or when absent in 005010; never infer from containing ST03 | AK2Owner and AK2SourceIndex | SOURCE_SCALAR | 005010 | SCALAR | 005010-only among tested releases; preserve X230 convention text; X231/X231A1 remain 999-only |
| AK2Owner | 12 | STRING | Transaction Set Context | TRANSACTION_ACK | TRANSACTION_ACK | AK2 owner token | AK2 | Format TRANSACTION_ACK@<AK2SourceIndex> for the physical row-owning AK2 | Blank on GROUP_SUMMARY; never construct identity from AK201 or AK202 | AK2SourceIndex disambiguates blank and duplicate visible values | DERIVED_PROVENANCE | 004010|004030|005010 | SCALAR | Closed owner vocabulary token TRANSACTION_ACK |
| AK2SourceIndex | 13 | INTEGER | Transaction Set Context | TRANSACTION_ACK | TRANSACTION_ACK | AK2 physical index | AK2 | Use the row-owning zero-based full-file envelope-inclusive AK2 sourceIndex | Blank on GROUP_SUMMARY; never borrow another AK2 | Self-provenance; never resets per ST | SOURCE_PROVENANCE | 004010|004030|005010 | SCALAR | Physical AK2 order is canonical row order |
| Segment / Element Errors | ||||||||||||||
| SegmentErrorCount | 14 | INTEGER | Segment / Element Errors | TRANSACTION_ACK | TRANSACTION_ACK | Physical AK3 occurrences owned by row AK2 | AK3 | Serialize the SegmentErrorOccurrences array length; each physical AK3 increments once regardless of AK4 children | 0 on GROUP_SUMMARY or when the owning AK2 has no AK3; never inherit | AK2Owner plus SegmentErrorOccurrences | DERIVED_COUNT | 004010|004030|005010 | SCALAR | Count is a canonical integer derived from physical occurrence-array length |
| ElementErrorCount | 15 | INTEGER | Segment / Element Errors | TRANSACTION_ACK | TRANSACTION_ACK | Physical AK4 occurrences nested beneath row-owned AK3 occurrences | AK4 | Serialize the sum of every nested elementErrors array length in this row exactly once during the source-linear pass | 0 on GROUP_SUMMARY or with no nested AK4; no detached top-level ElementErrorOccurrences field | SegmentErrorOccurrences.elementErrorCount and elementErrors | DERIVED_COUNT | 004010|004030|005010 | SCALAR_SUMMARY_OF_NESTED | Aggregate nested count only; nested arrays retain every AK3-to-AK4 parent |
| SegmentErrorOccurrences | 16 | JSON_ARRAY | Segment / Element Errors | TRANSACTION_ACK | TRANSACTION_ACK | AK301-AK304 with physically subordinate AK4 occurrences | AK3|AK4 | Serialize one source-ordered occurrence per physical AK3 owned by this AK2; nest only that AK3's AK4 records; collections never inherit or clone; occurrence is 1..n per AK2 owner | [] on GROUP_SUMMARY or with no AK3; orphan AK3/AK4 remains outside canonical ownership and is future structural validation evidence | Every AK3 and nested AK4 retains its own zero-based full-file sourceIndex and exact elements | SOURCE_COLLECTION | 004010|004030|005010 | Array keys in order: segment,scope,owner,occurrence,sourceIndex,elements,segmentId,segmentPosition,loopIdentifier,syntaxErrorCode,syntaxErrorDescription,elementErrorCount,elementErrors. elementErrors keys in order: segment,scope,owner,occurrence,sourceIndex,elements,segmentErrorOccurrence,segmentErrorSourceIndex,elementPosition,componentPosition,repetitionPosition,dataElementReferenceNumber,syntaxErrorCode,syntaxErrorDescription,badDataElementValue. [] when empty; compact RFC 8259 JSON; elements is the exact lexical source element array | AK304 all tested: 1=Unrecognized segment ID; 2=Unexpected segment; 3=Mandatory segment missing; 4=Loop occurs over maximum times; 5=Segment exceeds maximum use; 6=Segment not in defined transaction set; 7=Segment not in proper sequence; 8=Segment has data element errors. Exclude 999 I codes. AK403 all tested: 1=Mandatory data element missing; 2=Conditional required data element missing; 3=Too many data elements; 4=Data element too short; 5=Data element too long; 6=Invalid character in data element; 7=Invalid code value; 8=Invalid date; 9=Invalid time; 10=Exclusion condition violated. Codes 12=Too many repetitions and 13=Too many components only in 004030|005010; code 11 is not valid. AK401-3 repetitionPosition exists only in 005010. AK404 badDataElementValue is protected potentially sensitive source evidence: canonical detail allowed; never raw-echo in summary, validation messages, logs, telemetry, URLs, server requests, or HTML; render text-only/escaped and apply CSV/XLSX/XML formula defenses |
| Transaction Set Status | ||||||||||||||
| TransactionAcknowledgmentCode | 17 | CODE | Transaction Set Status | TRANSACTION_ACK | TRANSACTION_STATUS | AK501 | AK5 | Use exact lexical AK501 from the AK5 physically closing this AK2; preserve unknown code | Blank on GROUP_SUMMARY or missing AK5; never borrow another AK5 and never derive from error presence | AK5Owner and AK5SourceIndex | SOURCE_SCALAR | 004010|004030|005010 | SCALAR | X12 transaction-set acknowledgment only; valid A|E|M|R|W|X; P is not a transaction-level AK5 code |
| TransactionAcknowledgmentDescription | 18 | STRING | Transaction Set Status | TRANSACTION_ACK | TRANSACTION_STATUS | AK501 release-aware code lookup | AK5 | Describe exact AK501 only: A=Accepted; E=Accepted, but errors were noted; M=Rejected; message authentication code failed; R=Rejected; W=Rejected; assurance failed validity tests; X=Rejected; content after decryption could not be analyzed | Blank when code is blank; bounded Unknown (<code>) for unknown source code; never reject or drop the row | TransactionAcknowledgmentCode plus resolved release | SEMANTIC_DESCRIPTION | 004010|004030|005010 | SCALAR | Never describe business acceptance, order approval, invoice payment, shipment success, delivery, partner compliance, or downstream success |
| AK5Owner | 19 | STRING | Transaction Set Status | TRANSACTION_ACK | TRANSACTION_STATUS | AK5 owner token | AK5 | Format TRANSACTION_STATUS@<AK5SourceIndex> for the AK5 physically closing this AK2 | Blank on GROUP_SUMMARY or missing AK5; no sibling fallback | AK5SourceIndex plus physical AK2 interval | DERIVED_PROVENANCE | 004010|004030|005010 | SCALAR | Closed owner vocabulary token TRANSACTION_STATUS |
| AK5SourceIndex | 20 | INTEGER | Transaction Set Status | TRANSACTION_ACK | TRANSACTION_STATUS | AK5 physical index | AK5 | Use the zero-based full-file envelope-inclusive sourceIndex of this AK2's closing AK5 | Blank on GROUP_SUMMARY or missing AK5; never borrow another owner | Self-provenance; never resets per ST | SOURCE_PROVENANCE | 004010|004030|005010 | SCALAR | AK5 is required exactly once per present AK2; future 997_STRUCTURAL validation |
| TransactionSyntaxErrorCount | 21 | INTEGER | Transaction Set Status | TRANSACTION_ACK | TRANSACTION_STATUS | Populated AK502-AK506 physical slots | AK5 | Serialize the TransactionSyntaxErrorOccurrences array length; each physically populated slot increments independently, including duplicate codes | 0 on GROUP_SUMMARY or missing/blank AK5 error slots; never infer from AK501 | AK5Owner and occurrence array | DERIVED_COUNT | 004010|004030|005010 | SCALAR | Count is populated physical slot count, not distinct code count |
| TransactionSyntaxErrorOccurrences | 22 | JSON_ARRAY | Transaction Set Status | TRANSACTION_ACK | TRANSACTION_STATUS | AK502|AK503|AK504|AK505|AK506 | AK5 | Serialize one occurrence per populated AK5 element position in slot order; occurrence is compact 1..n while slotOrdinal remains exact source element position 2..6; preserve duplicates and unknown codes | [] on GROUP_SUMMARY, missing AK5, or no populated error slots; never clone or inherit | AK5Owner and AK5SourceIndex identify the physical segment and elements retain the full lexical AK5 array | SOURCE_COLLECTION | 004010|004030|005010 | Array keys in order: segment,scope,owner,occurrence,sourceIndex,elements,slotOrdinal,code,description. [] when empty; compact RFC 8259 JSON; elements is the exact lexical source element array | 004030|005010 codes: 1=Transaction set not supported; 2=Transaction set trailer missing; 3=Transaction set control number in header and trailer do not match; 4=Number of included segments does not match actual count; 5=One or more segments in error; 6=Missing or invalid transaction set identifier; 7=Missing or invalid transaction set control number; 8=Authentication key name unknown; 9=Encryption key name unknown; 10=Requested authentication or encryption service not available; 11=Unknown security recipient; 12=Incorrect message length, encryption only; 13=Message authentication code failed; 15=Unknown security originator; 16=Syntax error in decrypted text; 17=Security not supported; 18=Transaction set not in functional group; 19=Invalid transaction set implementation convention reference; 23=Transaction set control number not unique within functional group; 24=S3E security end missing for S3S start; 25=S3S security start missing for S3E end; 26=S4E security end missing for S4S start; 27=S4S security start missing for S4E end. In 004010, 1-13,15-17,23-27 retain their researched meanings while 19=S1E missing for S1S; 20=S1S missing for S1E; 21=S2E missing for S2S; 22=S2S missing for S2E; later 18/19 meanings do not apply. Unknown code is preserved with bounded Unknown (<code>) description; no mapper rejection |
| Functional Group Status | ||||||||||||||
| GroupAcknowledgmentCode | 23 | CODE | Functional Group Status | ALL | GROUP_STATUS | AK901 | AK9 | Repeat exact lexical AK901 on every canonical row; preserve unknown source code | Blank when AK9 or AK901 is missing; never derive from AK5 rows or counts | AK9Owner and AK9SourceIndex | SOURCE_SCALAR | 004010|004030|005010 | SCALAR | X12 functional-group acknowledgment only; valid A|E|M|P|R|W|X |
| GroupAcknowledgmentDescription | 24 | STRING | Functional Group Status | ALL | GROUP_STATUS | AK901 release-aware code lookup | AK9 | Describe exact AK901 only: A=Accepted; E=Accepted, but errors were noted; M=Rejected; message authentication code failed; P=Partially accepted; at least one transaction set was rejected; R=Rejected; W=Rejected; assurance failed validity tests; X=Rejected; content after decryption could not be analyzed | Blank when code is blank; bounded Unknown (<code>) for unknown source code; never reject or drop a row | GroupAcknowledgmentCode plus resolved release | SEMANTIC_DESCRIPTION | 004010|004030|005010 | SCALAR | Never convert acknowledgment status into business acceptance, partner performance, compliance, or certification |
| IncludedTransactionSetCount | 25 | STRING | Functional Group Status | ALL | GROUP_STATUS | AK902 | AK9 | Repeat exact lexical source-reported Number of Transaction Sets Included on every canonical row | Blank when AK9 or AK902 is missing; no physical AK2 count fallback | AK9Owner and AK9SourceIndex | SOURCE_SCALAR | 004010|004030|005010 | SCALAR | Source-reported control count; never numerically normalize or cross-file sum by default |
| ReceivedTransactionSetCount | 26 | STRING | Functional Group Status | ALL | GROUP_STATUS | AK903 | AK9 | Repeat exact lexical source-reported Number of Received Transaction Sets on every canonical row | Blank when AK9 or AK903 is missing; no physical AK2 count fallback | AK9Owner and AK9SourceIndex | SOURCE_SCALAR | 004010|004030|005010 | SCALAR | Future validator may compare AK904 <= AK903 only when both are valid exact nonnegative integers |
| AcceptedTransactionSetCount | 27 | STRING | Functional Group Status | ALL | GROUP_STATUS | AK904 | AK9 | Repeat exact lexical source-reported Number of Accepted Transaction Sets on every canonical row | Blank when AK9 or AK904 is missing; never derive by subtraction or physical AK2 reconciliation | AK9Owner and AK9SourceIndex | SOURCE_SCALAR | 004010|004030|005010 | SCALAR | Future validator may compare AK904 <= AK903 only; no CalculatedAK2Count, mismatch, or reconciled count |
| AK9Owner | 28 | STRING | Functional Group Status | ALL | GROUP_STATUS | AK9 owner token | AK9 | Format GROUP_STATUS@<AK9SourceIndex>; repeat on every canonical row while its collection remains anchor-only | Blank only when AK9 is recoverably missing; never construct from AK901 or counts | AK9SourceIndex disambiguates blank and duplicate visible values | DERIVED_PROVENANCE | 004010|004030|005010 | SCALAR | Closed owner vocabulary token GROUP_STATUS |
| AK9SourceIndex | 29 | INTEGER | Functional Group Status | ALL | GROUP_STATUS | AK9 physical index | AK9 | Repeat the zero-based full-file envelope-inclusive AK9 sourceIndex on every canonical row | Blank when AK9 is missing; never borrow another ST's AK9 | Self-provenance; never resets per ST | SOURCE_PROVENANCE | 004010|004030|005010 | SCALAR | AK9 required exactly once; future 997_STRUCTURAL validation |
| GroupSyntaxErrorCount | 30 | INTEGER | Functional Group Status | ALL | GROUP_STATUS | Populated AK905-AK909 physical slots | AK9 | On IsTransactionAnchor serialize the GroupSyntaxErrorOccurrences array length; each physically populated slot increments independently, including duplicate codes | 0 on non-anchor rows, missing AK9, or no populated group error slots; collection and count never clone | AK9Owner and anchor-projected occurrence array | DERIVED_COUNT | 004010|004030|005010 | SCALAR | Anchor-only count matches anchor-only collection; group scalar status/count context may repeat |
| GroupSyntaxErrorOccurrences | 31 | JSON_ARRAY | Functional Group Status | ALL | GROUP_STATUS | AK905|AK906|AK907|AK908|AK909 | AK9 | Project only on IsTransactionAnchor; serialize one occurrence per populated AK9 position in slot order; occurrence is compact 1..n while slotOrdinal remains exact source element position 5..9; preserve duplicates and unknowns | [] on non-anchor rows, missing AK9, or no populated slots; never clone across TRANSACTION_ACK rows | AK9Owner and AK9SourceIndex identify the physical segment and elements retain the full lexical AK9 array | SOURCE_COLLECTION | 004010|004030|005010 | Array keys in order: segment,scope,owner,occurrence,sourceIndex,elements,slotOrdinal,code,description. [] when empty; compact RFC 8259 JSON; elements is the exact lexical source element array | 004030|005010 codes: 1=Functional group not supported; 2=Functional group version not supported; 3=Functional group trailer missing; 4=Group control number in header and trailer do not agree; 5=Number of included transaction sets does not match actual count; 6=Group control number violates syntax; 10=Authentication key name unknown; 11=Encryption key name unknown; 12=Requested authentication or encryption service not available; 13=Unknown security recipient; 14=Unknown security originator; 15=Syntax error in decrypted text; 16=Security not supported; 17=Incorrect message length, encryption only; 18=Message authentication code failed; 19=Functional group control number not unique within interchange; 23=S3E security end missing for S3S start; 24=S3S security start missing for S3E end; 25=S4E security end missing for S4S start; 26=S4S security start missing for S4E end. In 004010, 1-6 and 10-18 retain their researched meanings while 19=S1E missing for S1S; 20=S1S missing for S1E; 21=S2E missing for S2S; 22=S2S missing for S2E; 23-26 retain S3/S4 meanings. Unknown code is preserved with bounded Unknown (<code>) description; no mapper rejection |
| Technical Provenance | ||||||||||||||
| FileName | 32 | STRING | Technical Provenance | ALL | FILE | FileName | FILE | Use exact source file name supplied to conversion and repeat on every canonical row | Blank only when caller supplies no file name; never infer from content | File identity | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Same technical meaning across tested releases |
| FileOrdinal | 33 | INTEGER | Technical Provenance | ALL | FILE | FileOrdinal | FILE | Use zero-based input-file ordinal and repeat on every canonical row | 0 for single-file input when repository caller establishes that ordinal | Input batch position | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Same technical meaning across tested releases |
| InterchangeOrdinal | 34 | INTEGER | Technical Provenance | ALL | INTERCHANGE | InterchangeOrdinal | ISA | Use one-based physical ISA interchange ordinal within the file | Blank only when no bounded interchange exists | Physical ISA order | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Same technical meaning across tested releases |
| FunctionalGroupOrdinal | 35 | INTEGER | Technical Provenance | ALL | GROUP | FunctionalGroupOrdinal | GS | Use one-based physical GS functional-group ordinal within the interchange | Blank only when no bounded group exists | Physical GS order | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Same technical meaning across tested releases |
| TransactionOrdinal | 36 | INTEGER | Technical Provenance | ALL | TRANSACTION | TransactionOrdinal | ST | Use one-based physical ST transaction ordinal within the functional group | Blank only when no bounded transaction exists | Physical ST order | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Ownership resets per ST while SourceIndex does not |
| SourceIndex | 37 | INTEGER | Technical Provenance | ALL | RECORD | Canonical row owner sourceIndex | AK2|AK9|AK1|ST | TRANSACTION_ACK uses physical AK2 sourceIndex; GROUP_SUMMARY uses AK9 sourceIndex, else AK1, else ST; zero-based, full-file, envelope-inclusive, and never resets per ST | Never use AK3, AK4, AK5, a visible control, or another transaction as row SourceIndex | Physical canonical row owner | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Exact mature repository SourceIndex convention |
| InterchangeSenderQualifier | 38 | CODE | Technical Provenance | ALL | INTERCHANGE | ISA05 | ISA | Use exact lexical ISA05 | Blank when source is absent or truncated | Physical ISA | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Same technical meaning across tested releases |
| InterchangeSenderID | 39 | IDENTIFIER | Technical Provenance | ALL | INTERCHANGE | ISA06 | ISA | Use exact lexical ISA06 including meaningful source padding policy | Blank when source is absent or truncated | Physical ISA | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | No numeric normalization |
| InterchangeReceiverQualifier | 40 | CODE | Technical Provenance | ALL | INTERCHANGE | ISA07 | ISA | Use exact lexical ISA07 | Blank when source is absent or truncated | Physical ISA | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Same technical meaning across tested releases |
| InterchangeReceiverID | 41 | IDENTIFIER | Technical Provenance | ALL | INTERCHANGE | ISA08 | ISA | Use exact lexical ISA08 including meaningful source padding policy | Blank when source is absent or truncated | Physical ISA | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | No numeric normalization |
| InterchangeControlVersion | 42 | STRING | Technical Provenance | ALL | INTERCHANGE | ISA12 | ISA | Use exact lexical ISA12 as interchange-envelope context only; never choose the 997 grammar from it | Blank when source is absent or truncated; no release fallback | Physical ISA | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | ISA12 is context only |
| InterchangeControlNumber | 43 | IDENTIFIER | Technical Provenance | ALL | INTERCHANGE | ISA13 | ISA | Use exact lexical ISA13 | Blank when source is absent or truncated | Physical ISA | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Leading zeros remain lexical |
| FunctionalGroupSenderCode | 44 | IDENTIFIER | Technical Provenance | ALL | GROUP | GS02 | GS | Use exact lexical GS02 | Blank when source is absent or truncated | Physical GS | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Same technical meaning across tested releases |
| FunctionalGroupReceiverCode | 45 | IDENTIFIER | Technical Provenance | ALL | GROUP | GS03 | GS | Use exact lexical GS03 | Blank when source is absent or truncated | Physical GS | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Same technical meaning across tested releases |
| FunctionalGroupControlNumber | 46 | IDENTIFIER | Technical Provenance | ALL | GROUP | GS06 | GS | Use exact lexical GS06 of the containing 997 group | Blank when source is absent or truncated; never substitute acknowledged AK102 | Physical containing GS | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Distinct from AcknowledgedGroupControlNumber |
| GroupVersion | 47 | STRING | Technical Provenance | ALL | GROUP | GS08 | GS | Use exact raw GS08 including implementation suffix; structurally valid GS08 is primary base-release authority | Blank when source is absent; never replace stored raw value with normalized Version | Physical containing GS | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | 005010X230 is a 997 convention; X231/X231A1 is foreign 999 authority |
| TransactionSetControlNumber | 48 | IDENTIFIER | Technical Provenance | ALL | TRANSACTION | ST02 | ST | Use exact lexical ST02 of the containing 997 transaction | Blank when source is absent or truncated; never substitute acknowledged AK202 | Physical ST | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Distinct from AcknowledgedTransactionSetControlNumber |
| ImplementationReference | 49 | STRING | Technical Provenance | ALL | TRANSACTION | ST03 | ST | Use exact raw ST03 only where structurally available: optional in 004030 and 005010; structurally absent in 004010 | Blank in 004010 and when absent later; never read an extra 004010 element as ST03 | Physical ST | TECHNICAL_PROVENANCE | 004030|005010 | SCALAR | ST03 may select convention and is fallback only when GS08 is missing or malformed; meaningful GS08/ST03 conflict fails ambiguous |
| Version | 50 | STRING | Technical Provenance | ALL | TRANSACTION | Resolved leading six release digits | GS|ST | Resolve 004010, 004030, or 005010 with structurally valid GS08 primary and structurally useful ST03 fallback; preserve raw controls separately | Blank for ambiguous, missing, unsupported release, or foreign 999 guide; never guess from ISA12 or content | VersionResolutionStatus and VersionAuthoritySource | DERIVED_CONTEXT | 004010|004030|005010 | SCALAR | X230 resolves to 005010; X231/X231A1 yields UNSUPPORTED_IMPLEMENTATION for 997 |
| VersionResolutionStatus | 51 | CODE | Technical Provenance | ALL | TRANSACTION | Frozen 997 resolver result | GS|ST | Emit RESOLVED, AMBIGUOUS_RELEASE, MISSING_RELEASE, UNSUPPORTED_RELEASE, or UNSUPPORTED_IMPLEMENTATION from the frozen 997 authority | Never coerce conflict, absence, unsupported base, or foreign guide to a tested release | Raw GS08/ST03 and normalized candidates | DERIVED_CONTEXT | 004010|004030|005010 | SCALAR | Closed exact 997 status vocabulary; this data map does not implement the resolver |
| VersionAuthoritySource | 52 | CODE | Technical Provenance | ALL | TRANSACTION | Chosen base-release authority | GS|ST | Emit GS08 or ST03 only when that physical control selected Version; ST03 cannot select 004010 | Blank when no release is resolved | Raw selected authority and sourceIndex | DERIVED_CONTEXT | 004010|004030|005010 | SCALAR | GS08 primary; ST03 fallback; disagreement fails closed |
| UsageIndicator | 53 | CODE | Technical Provenance | ALL | INTERCHANGE | ISA15 | ISA | Use exact lexical ISA15 | Blank when source is absent or truncated | Physical ISA | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Same technical meaning across tested releases |
| ElementSeparator | 54 | STRING | Technical Provenance | ALL | INTERCHANGE | ISA fixed-position element separator | ISA | Use exact parsed element separator | Blank only when delimiter extraction fails | Physical interchange syntax | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Never hard-code asterisk |
| ComponentSeparator | 55 | STRING | Technical Provenance | ALL | INTERCHANGE | ISA16 | ISA | Use exact parsed component separator | Blank only when delimiter extraction fails | Physical interchange syntax | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Never hard-code colon |
| RepetitionSeparator | 56 | STRING | Technical Provenance | ALL | INTERCHANGE | ISA11 | ISA | Use exact ISA11 only as repetition separator for resolved 004030 and 005010 | Blank for 004010 because ISA11 is the Interchange Control Standards Identifier; never reinterpret U as repetition | Resolved release plus physical ISA11 | TECHNICAL_PROVENANCE | 004030|005010 | SCALAR | 004010 ISA11=standards identifier; 004030|005010 ISA11=repetition separator |
| SegmentTerminator | 57 | STRING | Technical Provenance | ALL | INTERCHANGE | Parsed segment terminator | ISA | Use exact parsed segment terminator | Blank only when delimiter extraction fails | Physical interchange syntax | TECHNICAL_PROVENANCE | 004010|004030|005010 | SCALAR | Never hard-code tilde |
| SupportStatus | 58 | CODE | Technical Provenance | ALL | TRANSACTION | 997 support boundary and complete disposition inventory | GS|ST|ISA | Exact value CANONICAL_ONLY only after exact ST01 and unambiguous tested-release resolution; this map alone enables no runtime or public support | No KEY_FIELDS or ALL_FIELDS; unresolved, ambiguous, unsupported, wrong-family, and release-invalid evidence stays outside Smart Mapping | Exact transaction identity, selected release, and frozen disposition inventory | DERIVED_CONTEXT | 004010|004030|005010 | SCALAR | PROMOTED_SCALAR: ST/AK1/AK2/AK5/AK9 identity status counts. CANONICAL_COLLECTION: AK3/AK4 and populated AK5/AK9 error positions. RAW_ONLY: proprietary NTE/REF/ZZ/private segments inside 997 and security structures outside the tested 997 table, except envelope authority remains SHARED_X12. OUT_OF_SCOPE_RELEASE_INVALID: CTX/IK3/IK4/IK5 in 997; AK103/AK203 in 004010|004030; AK401-3 before 005010; any release-invalid segment or element. Raw Mode remains the physical parsed segment sequence. No schema, resolver, mapper, adapter, validator, summary, corpus, registry, route, page, UI, or public 997 support is created |
Authority and interpretation notes
- The downloadable CSV is the repository-shipped map authority; the page and Excel workbook are generated from that same ordered matrix.
- This data dictionary documents the product's canonical projection, not every possible X12 implementation or trading-partner companion guide.
- Source and classification metadata remain authoritative; blank cells are preserved and no map semantics are rewritten for display.
- No inventory arithmetic, availability inference, financial reconciliation, fulfillment inference, or other business fact is added by this documentation page.
- The page performs no inventory arithmetic and makes no availability inference.
Browse the other Client-Side EDI data maps and tutorials.