Line Item Part Three, The ACK

ACK Block Line Item Part Three, The ACKACK is an Acknowledgement segment. It is commonly found on response transactions to Purchase Orders or 855. It is one of the lines found in the PO1 loop or group.  As this line modifies the PO1 line data from the Purchase Order, what it can contain and how that data is handled is important for the stability of the supply chain integration.  For clarity, we are going to use the 4010 x12 standard.

Parts of ACK

Here is a diagram of a sample ACK segment:

ACK Diagram Line Item Part Three, The ACK

Like any other segment in EDI, the ACK segment is composed of elements.  Here is a list, element by element and what it contains.

ACK_01 This is the Line Item Status Code.  This code can be the entire purpose of the ACK line if it indicates that the line is cancelled, or it can indicate that something has changed.  The Diagram above has a Status Code of “IP” indicating that the price from the Order has changed.  The ACK should then reflect the changed price here.  In the case of an 855 that indicates the part number has changed or substituted the status will be “IS” and the new part number will be listed in the Product or Service ID element.  The PO1 line that this ACK is a part of should contain the original part number, price, quantity, or whatever was on the order, and the ACK will contain the modification.
ACK_02 This is the quantity modified.  This is not required, but is very important.  If the order was for 10 items, and there is a change, substitution or delay in 5 of them, a PO1 group should contain 2 ACK lines one with the accepted status on the 5 that are ok, and another for the 5 that are
ACK_03 This is the Unit of Measure.  It is a 2 character, Alpha-Numeric value.  It is also an encoded value.  Being “encoded” means that there is a list of acceptable values for this element, any value outside of that set is invalid and will cause an exception.When the ACK_02 and ACK_03 are used together, we can tell how much of something is being modified or acknowledged
ACK_04 This is the date Qualifier.  This is not required, even if ACK_05 is present, this element may be empty.  When it is present, it is an encoded value that identifies what type of data is in the ACK_05.  In the case of our example, it is the PO date.
ACK_05 This is a Date element.  It is required if ACK_04 is populated.  The format is CCYYMMDD.  This element is always 8 characters long when it is populated.
ACK_06 This is a reference number.  I have never seen this used, but if you have a use for it, go ahead.
ACK_07 This is a Product or Service Qualifier.  This element is a 2 character, encoded value.  All of the “Qualifier” defined elements are encoded values.  This, again, means that there is a list of acceptable values for this element, any value outside of that set is invalid and will cause an exception.This qualifier defines what type of value is found in the next element, the ACK_08.  So if the ACK_07 has a “VC”, then the ACK_08 contains a Vendor’s Catalog Number.  (This means it is a part number as found in the Vendor Catalog.)
ACK_08 This is a Product or Service ID.  It is Alpha-Numeric, and can be from 1 to 48 characters in length.  It is conditional with the ACK_07, if one is present, the other must be present.  This value is an identifier like a part number or other type of line item data.
ACK_09 to ACK_26 This pattern continues all way to ACK_25 and ACK_26. All of the segment pairs from ACK_07 to ACK_26 that have the same potential values for each pair.
ACK_27 This is Agency Qualifier Code.  It is an 2 character encoded value to designate what agency, state or entity is being referenced.  It is not required and I have never seen this used.
ACK_28 This is Source SubQualifier.  It is an 15 character Alpha-Numeric value that references the source table being used.  It is not required and I have never seen this used.
ACK_29 This is Industry Code.  It is an 30 character Alpha-Numeric value that references an industry code list.  It is not required and I have never seen this used.

Best Practices

With the ACK the best practices are more in how to implement and what to expect.  So here are some things to remember when implementing this segment.

  1. An ACK is part of a PO1 line for a response to another PO1 line transaction.  This segment supplies a status, and can modify the line item contents.
  2. There can be more than one ACK segment for a line item.  (4010 855s allow 104 repetitions of the ACK)
  3. When an ACK explicitly changes the line item it can only change that one type.
  4. There is a status called Accepted With Changes.  “AC”  For this, you will need to parse the ACK and see if any of the values have changed.

Subscribe to "The Integration Engineer" by Email

Related Articles:

Leave a Reply