Canadian National Railway
/
Functional Acknowledgment
  • Specification
  • EDI Inspector
Import guide into your account
Stedi maintains this guide based on public documentation from Canadian National Railway. Contact Canadian National Railway for official EDI specifications. To report any errors in this guide, please contact us.
Go to Stedi Network
Canadian National Railway logo

X12 997 Functional Acknowledgment

X12 Release 7030

This X12 Transaction Set contains the format and establishes the data contents of the Functional Acknowledgment Transaction Set (997) for use within the context of an Electronic Data Interchange (EDI) environment. The transaction set can be used to define the control structures for a set of acknowledgments to indicate the results of the syntactical analysis of the electronically encoded documents. The encoded documents are the transaction sets, which are grouped in functional groups, used in defining transactions for business data interchange. This standard does not cover the semantic meaning of the information encoded in the transaction sets.

Delimiters
  • ~ Segment
  • * Element
  • > Component
  • ^ Repetition
EDI sample
    View the latest version of this implementation guide as an interactive webpage
    Powered by
    Build EDI implementation guides at stedi.com
    Overview
    ISA
    -
    Interchange Control Header
    Max use 1
    Required
    GS
    -
    Functional Group Header
    Max use 1
    Required
    heading
    ST
    0100
    Transaction Set Header
    Max use 1
    Required
    AK1
    0200
    Functional Group Response Header
    Max use 1
    Required
    AK2 Loop
    AK9
    0700
    Functional Group Response Trailer
    Max use 1
    Required
    SE
    0800
    Transaction Set Trailer
    Max use 1
    Required
    GE
    -
    Functional Group Trailer
    Max use 1
    Required
    IEA
    -
    Interchange Control Trailer
    Max use 1
    Required
    ISA

    Interchange Control Header

    RequiredMax use 1

    To start and identify an interchange of zero or more functional groups and interchange-related control segments

    Example
    ISA-01
    I01
    Authorization Information Qualifier
    Required

    Code identifying the type of information in the Authorization Information

    00
    No Authorization Information Present (No Meaningful Information in I02)
    ISA-02
    I02
    Authorization Information
    Required
    Min 10Max 10

    Information used for additional identification or authorization of the interchange sender or the data in the interchange; the type of information is set by the Authorization Information Qualifier (I01)

    ISA-03
    I03
    Security Information Qualifier
    Required

    Code identifying the type of information in the Security Information

    00
    No Security Information Present (No Meaningful Information in I04)
    ISA-04
    I04
    Security Information
    Required
    Min 10Max 10

    This is used for identifying the security information about the interchange sender or the data in the interchange; the type of information is set by the Security Information Qualifier (I03)

    ISA-05
    I05
    Interchange ID Qualifier
    Required
    Min 2Max 2

    Code indicating the system/method of code structure used to designate the sender or receiver ID element being qualified

    Codes
    ISA-06
    I06
    Interchange Sender ID
    Required
    Min 15Max 15

    Identification code published by the sender for other parties to use as the receiver ID to route data to them; the sender always codes this value in the sender ID element

    ISA-07
    I05
    Interchange ID Qualifier
    Required
    Min 2Max 2

    Code indicating the system/method of code structure used to designate the sender or receiver ID element being qualified

    Codes
    ISA-08
    I07
    Interchange Receiver ID
    Required
    Min 15Max 15

    Identification code published by the receiver of the data; When sending, it is used by the sender as their sending ID, thus other parties sending to them will use this as a receiving ID to route data to them

    ISA-09
    I08
    Interchange Date
    Required
    YYMMDD format

    Date of the interchange

    ISA-10
    I09
    Interchange Time
    Required
    HHMM format

    Time of the interchange

    ISA-11
    I65
    Repetition Separator
    Required
    Min 1Max 1

    Type is not applicable; the repetition separator is a delimiter and not a data element; this field provides the delimiter used to separate repeated occurrences of a simple data element or a composite data structure; this value must be different than the data element separator, component element separator, and the segment terminator

    ^
    Repetition Separator
    ISA-12
    I11
    Interchange Control Version Number Code
    Required

    Code specifying the version number of the interchange control segments

    00703
    Standards Approved for Publication by ASC X12 Procedures Review Board through October 2014
    ISA-13
    I12
    Interchange Control Number
    Required
    Min 9Max 9

    A control number assigned by the interchange sender

    ISA-14
    I13
    Acknowledgment Requested Code
    Required
    Min 1Max 1

    Code indicating sender's request for an interchange acknowledgment

    0
    No Interchange Acknowledgment Requested
    1
    Interchange Acknowledgment Requested (TA1)
    2
    Interchange Acknowledgment Requested only when Interchange is "Rejected Because Of Errors"
    3
    Interchange Acknowledgment Requested only when Interchange is "Rejected Because Of Errors" or "Accepted but Errors are Noted"
    ISA-15
    I14
    Interchange Usage Indicator Code
    Required
    Min 1Max 1

    Code indicating whether data enclosed by this interchange envelope is test, production or information

    I
    Information
    P
    Production Data
    T
    Test Data
    ISA-16
    I15
    Component Element Separator
    Required
    Min 1Max 1

    Type is not applicable; the component element separator is a delimiter and not a data element; this field provides the delimiter used to separate component data elements within a composite data structure; this value must be different than the data element separator and the segment terminator

    >
    Component Element Separator

    Functional Group Header

    RequiredMax use 1

    To indicate the beginning of a functional group and to provide control information

    Example
    GS-01
    479
    Functional Identifier Code
    Required

    Code identifying a group of application related transaction sets

    FA
    Functional or Implementation Acknowledgment Transaction Sets (997, 999)
    GS-02
    142
    Application Sender's Code
    Required
    Min 2Max 15

    Code identifying party sending transmission; codes agreed to by trading partners

    GS-03
    124
    Application Receiver's Code
    Required
    Min 2Max 15

    Code identifying party receiving transmission; codes agreed to by trading partners

    GS-04
    373
    Date
    Required
    CCYYMMDD format

    Date expressed as CCYYMMDD where CC represents the first two digits of the calendar year

    GS-05
    337
    Time
    Required
    HHMM, HHMMSS, HHMMSSD, or HHMMSSDD format

    Time expressed in 24-hour clock time as follows: HHMM, or HHMMSS, or HHMMSSD, or HHMMSSDD, where H = hours (00-23), M = minutes (00-59), S = integer seconds (00-59) and DD = decimal seconds; decimal seconds are expressed as follows: D = tenths (0-9) and DD = hundredths (00-99)

    GS-06
    28
    Group Control Number
    Required
    Min 1Max 9

    Assigned number originated and maintained by the sender

    GS-07
    455
    Responsible Agency Code
    Required
    Min 1Max 2

    Code identifying the issuer of the standard; this code is used in conjunction with Data Element 480

    T
    Transportation Data Coordinating Committee (TDCC)
    X
    Accredited Standards Committee X12
    GS-08
    480
    Version / Release / Industry Identifier Code
    Required

    Code indicating the version, release, subrelease, and industry identifier of the EDI standard being used, including the GS and GE segments; if code in DE455 in GS segment is X, then in DE 480 positions 1-3 are the version number; positions 4-6 are the release and subrelease, level of the version; and positions 7-12 are the industry or trade association identifiers (optionally assigned by user); if code in DE455 in GS segment is T, then other formats are allowed

    007030
    Standards Approved for Publication by ASC X12 Procedures Review Board through October 2015

    Heading

    ST
    0100

    Transaction Set Header

    RequiredMax use 1

    To indicate the start of a transaction set and to assign a control number

    • These acknowledgments shall not be acknowledged, thereby preventing an endless cycle of acknowledgments of acknowledgments. Nor shall a Functional Acknowledgment be sent to report errors in a previous Functional Acknowledgment.
    • There is only one Functional Acknowledgment Transaction Set per acknowledged functional group.
    • Only one acknowledgement can be sent for each functional group. The acknowledgment can be either a single Transaction Set 997 or a single Transaction Set 999 as mutually agreed upon by the trading partners. Different Functional Groups may have different acknowledgements, e.g. some Functional Groups, within the same interchange, may be acknowledged with the 997 and others with the 999.
    Example
    ST-01
    143
    Transaction Set Identifier Code
    Required

    Code identifying a Transaction Set

    • The transaction set identifier (ST01) is used by the translation routines of the interchange partners to select the appropriate transaction set definition (e.g., 810 selects the Invoice Transaction Set).
    997
    Functional Acknowledgment
    ST-02
    329
    Transaction Set Control Number
    Required
    Min 4Max 9

    Identifying control number that must be unique within the transaction set functional group assigned by the originator for a transaction set

    AK1
    0200

    Functional Group Response Header

    RequiredMax use 1

    To start acknowledgment of a functional group

    • AK1 is used to respond to the functional group header and to start the acknowledgment for a functional group. There shall be one AK1 segment for the functional group that is being acknowledged.
    • The Functional Acknowledgement is generated at the point of translation, intended for the originator (not any intermediate parties).
    • The Functional Group Header Segment (GS) is used to start the envelope for the Functional Acknowledgment Transaction Sets. In preparing the functional group of acknowledgments, the application sender's code and the application receiver's code, taken from the functional group being acknowledged, are exchanged; therefore, one acknowledgment functional group responds to only those functional groups from one application receiver's code to one application sender's code.
    Usage notes

    Example: AK1SR11356

    Example
    AK1-01
    479
    Functional Identifier Code
    Required

    Code identifying a group of application related transaction sets

    • AK101 is the functional ID found in the GS segment (GS01) in the functional group being acknowledged.
    SR
    Rail Carrier Shipment Information (404, 419)
    AK1-02
    28
    Group Control Number
    Required
    Min 1Max 9

    Assigned number originated and maintained by the sender

    • AK102 is the functional group control number found in the GS segment in the functional group being acknowledged.
    AK2 Loop
    OptionalMax >1
    AK2
    0300

    Transaction Set Response Header

    RequiredMax use 1

    To start acknowledgment of a single transaction set

    • AK2 is used to start the acknowledgment of a transaction set within the received functional group. The AK2 segments shall appear in the same order as the transaction sets in the functional group that has been received and is being acknowledged.
    Usage notes

    Example: AK2404113560001

    Example
    AK2-01
    143
    Transaction Set Identifier Code
    Required

    Code identifying a Transaction Set

    • AK201 is the transaction set ID found in the ST segment (ST01) in the transaction set being acknowledged.
    404
    Rail Carrier Shipment Information
    AK2-02
    329
    Transaction Set Control Number
    Required
    Min 4Max 9

    Identifying control number that must be unique within the transaction set functional group assigned by the originator for a transaction set

    • AK202 is the transaction set control number found in the ST segment in the transaction set being acknowledged.
    AK5
    0600

    Transaction Set Response Trailer

    RequiredMax use 1

    To acknowledge acceptance or rejection and report errors in a transaction set

    Usage notes

    Example: AK5*A

    Example
    AK5-01
    717
    Transaction Set Acknowledgment Code
    Required

    Code indicating accept or reject condition based on the syntax editing of the transaction set

    A
    Accepted
    AK9
    0700

    Functional Group Response Trailer

    RequiredMax use 1

    To acknowledge acceptance or rejection of a functional group and report the number of included transaction sets from the original trailer, the accepted sets, and the received sets in this functional group

    Usage notes

    Example: AK9A111

    Example
    AK9-01
    715
    Functional Group Acknowledge Code
    Required

    Code indicating accept or reject condition based on the syntax editing of the functional group

    • If AK901 contains the value "A" or "E", then the transmitted functional group is accepted.
    A
    Accepted
    AK9-02
    97
    Number of Transaction Sets Included
    Required
    Min 1Max 6

    Total number of transaction sets included in the functional group or interchange (transmission) group terminated by the trailer containing this data element

    AK9-03
    123
    Number of Received Transaction Sets
    Required
    Min 1Max 6

    Number of Transaction Sets received

    AK9-04
    2
    Number of Accepted Transaction Sets
    Required
    Min 1Max 6

    Number of accepted Transaction Sets in a Functional Group

    SE
    0800

    Transaction Set Trailer

    RequiredMax use 1

    To indicate the end of the transaction set and provide the count of the transmitted segments (including the beginning (ST) and ending (SE) segments)

    Example
    SE-01
    96
    Number of Included Segments
    Required
    Min 1Max 10

    Total number of segments included in a transaction set including ST and SE segments

    SE-02
    329
    Transaction Set Control Number
    Required
    Min 4Max 9

    Identifying control number that must be unique within the transaction set functional group assigned by the originator for a transaction set

    Functional Group Trailer

    RequiredMax use 1

    To indicate the end of a functional group and to provide control information

    Example
    GE-01
    97
    Number of Transaction Sets Included
    Required
    Min 1Max 6

    Total number of transaction sets included in the functional group or interchange (transmission) group terminated by the trailer containing this data element

    GE-02
    28
    Group Control Number
    Required
    Min 1Max 9

    Assigned number originated and maintained by the sender

    Interchange Control Trailer

    RequiredMax use 1

    To define the end of an interchange of zero or more functional groups and interchange-related control segments

    Example
    IEA-01
    I16
    Number of Included Functional Groups
    Required
    Min 1Max 5

    A count of the number of functional groups included in an interchange

    IEA-02
    I12
    Interchange Control Number
    Required
    Min 9Max 9

    A control number assigned by the interchange sender

    EDI Samples

    Sample

    ST*997*0001
    AK1*SR*11356
    AK2*404*113560001
    AK5*A
    AK9*A*1*1*1
    SE*6*0001

    Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on this page are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.