X12 Implementation Guidelines For Inbound Functional Acknowledgement (997i)
997 Functional Acknowledgment Functional Group ID=FA Introduction: The purpose of this standard is 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. Pos. Seg. Req. Loop Notes and No. ID Name Des. Max.Use Repeat Comments M 010 ST Transaction Set Header M 1 M 020 AK1 Functional Group Response Header M 1 LOOP ID - AK2 999999 030 AK2 Transaction Set Response Header O 1 LOOP ID - AK3 999999 040 AK3 Data Segment Note O 1 050 AK4 Data Element Note O 1 060 AK5 Transaction Set Response Trailer O 1 M 070 AK9 Functional Group Response Trailer M 1 M 080 SE Transaction Set Trailer M 1 FD997I (002002) 2 October 5, 2001
Segment: ST Transaction Set Header Position: 010 Loop: Usage: Mandatory Purpose: To indicate the start of a transaction set and to assign a control number Notes: ST*997*0001 M ST01 143 Transaction Set Identifier Code M ID 3/3 Code uniquely identifying a Transaction Set 997 X12.20 Functional Acknowledgment M ST02 329 Transaction Set Control Number M AN 4/9 Identifying control number assigned by the originator for a Transaction Set. Also see: Data Interchange Control Number (28.) This number must match the value in SE02. FD997I (002002) 3 October 5, 2001
Segment: AK1 Functional Group Response Header Position: 020 Loop: Usage: Mandatory Purpose: To start acknowledgment of a functional group Notes: AK1*PO*12345 M AK101 479 Functional Identifier Code M ID 2/2 Code identifying a group of application related transaction sets This value must match the functional group identifier GS01 or the group being acknowledged. M AK102 28 Data Interchange Control Number M N0 1/9 Assigned number originated and maintained by the sender Control number must match number of GS06 of group being acknowledged. FD997I (002002) 4 October 5, 2001
Segment: AK2 Transaction Set Response Header Position: 030 Loop: AK2 Optional Usage: Optional Purpose: To start acknowledgment of a single transaction set Notes: AK2*850*0002 M AK201 143 Transaction Set Identifier Code M ID 3/3 Code uniquely identifying a Transaction Set Must match the value in ST01 of transaction being acknowledged. M AK202 329 Transaction Set Control Number M AN 4/9 Identifying control number assigned by the originator for a Transaction Set. Also see: Data Interchange Control Number (28.) Must match the value in ST02 of transaction being acknowledged. FD997I (002002) 5 October 5, 2001
Segment: AK3 Data Segment Note Position: 040 Loop: AK3 Optional Usage: Optional Purpose: To report errors in a data segment and identify the location of the data segment Notes: AK3*FST*10**2 M AK301 721 Segment ID Code M ID 2/3 Code defining the segment ID of the data segment in error. See Segment Directory. M AK302 719 Segment Position in Transaction Set M N0 1/6 The numerical count position of this data segment from the start of the transaction set: the transaction set header is count position 1 AK303 447 Loop Identifier Code O ID 1/4 Code identifying a loop within the transaction set which is bounded by the related LS and LE segments (corresponding LS and LE segments must have the same value for loop identifier). (Note: The loop ID number given on the transaction set diagram is recommended as the value for this data element in segments LS and LE.) AK304 720 Segment Note Code O ID 1/3 Code indicating the error found processing the data segment. AK305 720 Segment Note Code O ID 1/3 Code indicating the error found processing the data segment. AK306 720 Segment Note Code O ID 1/3 Code indicating the error found processing the data segment. AK307 720 Segment Note Code O ID 1/3 Code indicating the error found processing the data segment. AK308 720 Segment Note Code O ID 1/3 Code indicating the error found processing the data segment. FD997I (002002) 6 October 5, 2001
Segment: AK4 Data Element Note Position: 050 Loop: AK3 Optional Usage: Optional Purpose: To report errors in a data element and identify the location of the data element Notes: AK4*2*680*1 M AK401 722 Element Position in Segment M N0 1/2 This is used to indicate the relative position of the data element in error in this data segment. The count starts with 1 for the data element immediately following the segment ID. This value is 0 for an error in the segment ID. AK402 725 Data Element Reference Number O N0 1/4 Reference number used to locate the Data Element Dictionary. M AK403 723 Data Element Syntax Error Code M ID 1/3 Code indicating the error found after syntax edits of a data element AK404 724 Copy of Bad Data Element O AN 1/99 This is a copy of the data element in error FD997I (002002) 7 October 5, 2001
Segment: AK5 Transaction Set Response Trailer Position: 060 Loop: AK2 Optional Usage: Optional Purpose: To acknowledge acceptance or rejection and report errors in a transaction set Notes: AK5*E*2 M AK501 717 Set Acknowledge Code M ID 1/1 Code indicating if the transaction set is accepted or rejected after transfer. AK502 718 Transaction Set Note Code O ID 1/3 Code indicating the error found in processing the transaction set. AK503 718 Transaction Set Note Code O ID 1/3 Code indicating the error found in processing the transaction set. AK504 718 Transaction Set Note Code O ID 1/3 Code indicating the error found in processing the transaction set. AK505 718 Transaction Set Note Code O ID 1/3 Code indicating the error found in processing the transaction set. AK506 718 Transaction Set Note Code O ID 1/3 Code indicating the error found in processing the transaction set. FD997I (002002) 8 October 5, 2001
Segment: AK9 Functional Group Response Trailer Position: 070 Loop: Usage: Mandatory Purpose: Notes: 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 AK9*A*1*1*1 M AK901 715 Functional Group Acknowledge Code M ID 1/1 This indicates if the full or partial functional group is accepted or rejected after transfer. M AK902 97 Number of Transaction Sets Included M N0 1/6 Total number of transaction sets included in the functional group or interchange (transmission) group terminated by the trailer containing this data element M AK903 123 Number of Received Transaction Sets M N0 1/6 Number of Transaction Sets received M AK904 2 Number of Accepted Transaction Sets M N0 1/6 Number of accepted Transaction Sets in a Functional Group AK905 716 Functional Group Note Code O ID 1/3 Code indicating the error found processing the functional group. AK906 716 Functional Group Note Code O ID 1/3 Code indicating the error found processing the functional group. AK907 716 Functional Group Note Code O ID 1/3 Code indicating the error found processing the functional group. AK908 716 Functional Group Note Code O ID 1/3 Code indicating the error found processing the functional group. AK909 716 Functional Group Note Code O ID 1/3 Code indicating the error found processing the functional group. FD997I (002002) 9 October 5, 2001
Segment: SE Transaction Set Trailer Position: 080 Loop: Usage: Mandatory Purpose: Notes: To indicate the end of the transaction set and provide the count of the transmitted segments (including the beginning (ST) and ending (SE) segments) SE*6*0001 M SE01 96 Number of Included Segments M N0 1/6 Total number of segments included in a transaction set including ST and SE segments M SE02 329 Transaction Set Control Number M AN 4/9 Identifying control number assigned by the originator for a Transaction Set. Also see: Data Interchange Control Number (28.) FD997I (002002) 10 October 5, 2001
Data Element Dictionary 715 Functional Group Acknowledge Code REPRESENTATION = ID 1/1 This indicates if the full or partial functional group is accepted or rejected after transfer. CODE A E P R DEFINITION The transmitted functional group is accepted. An acceptance of a functional group is an acceptance of all transaction sets in that functional group. The transmitted functional group is accepted, but errors are noted. This means that the sender must not resend this data. Part of the transmitted functional group is accepted by transaction set. The transmitted functional group is rejected. A rejection of a functional group is a rejection of all transaction sets in that functional group. Depending on the error reason, the sender may resend this data. 716 Functional Group Note Code REPRESENTATION = ID 1/3 Code indicating the error found processing the functional group. CODE DEFINITION 1 Functional Group Not Supported 2 Functional Group Version Not Supported 3 Functional Group Trailer Missing 4 The data interchange control number in the header and trailer do not match. The value from the header is used in the acknowledgment. 5 Number of Included Transaction Sets Does Not Match Actual Count 717 Set Acknowledge Code REPRESENTATION = ID 1/1 Code indicating if the transaction set is accepted or rejected after transfer. CODE A E R DEFINITION The transmitted transaction set is accepted. The transmitted transaction set is accepted, but errors are noted. This means that the sender must not resend this data. The transmitted transaction set is rejected. Depending on the error reason, the sender may resend this data. 718 Transaction Set Note Code REPRESENTATION = ID 1/3 Code indicating the error found in processing the transaction set. CODE DEFINITION 1 Transaction Set Not Supported 2 Transaction Set Trailer Missing 3 The transaction set control number in the header and trailer do not match. The value from the header is used in the acknowledgment. 4 Number of Included Segments Does Not Match Actual Count 5 One or More Segments in Error FD997I (002002) 11 October 5, 2001
720 Segment Note Code REPRESENTATION = ID 1/3 Code indicating the error found processing the data segment. CODE DEFINITION 1 Unrecognized segment ID 2 Unexpected segment 3 Mandatory segment missing 4 Loop Occurs Over Maximum Times 5 Segment Within Loop Exceeds Maximum Use 723 Data Element Syntax Error Code REPRESENTATION = ID 1/3 Code indicating the error found after syntax edits of a data element CODE DEFINITION 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 FD997I (002002) 12 October 5, 2001
Example GS~FA~CESWA~AP13A~011008~0802~000000176~X~002002 ST~997~0001 AK1~SS~000000176 AK2~862~0001 AK5~A AK9~A~1~1~1 SE~6~0001 GE~1~000000176IEA~1~000000176 GS*FA*V3F1A*F159B*011005*1012*000001774*X*002002\ ST*997*0001\ AK1*FA*1909\ AK2*997*19090001\ AK3*AK1*2\ AK4*3**6*000001502\ AK5*R*5\ AK2*997*19090002\ AK3*AK1*2\ AK4*3**6*000001510\ AK5*R*5\ AK9*R*2*2*0\ SE*12*0001\ GE*1*000001774\ FD997I (002002) 13 October 5, 2001