ESM Aggregation Guidelines (EPCIS v1.0)

See How To Use this Guide before interpreting the guidelines below.

Message Type: SOM_ESM_AGGREGATE

Info Exchange Display Name: ESM Aggregate

When sending an element in Date or DateTime format, a valid date must be given. "00" is not a valid day or month value and "0000" is not a valid year value.
NTINs must follow the GS1 Guidance standards as found on the GS1 website.
  • Ex: urn:epc:id:sgtin:415001647778.0.100000000022
  • Format: urn:epc:id:sgtin:[company prefix].[indicator digit][item ref].[serial number]
Information regarding NTINs cannot be exchanged with trade partners unless the specific format outlined above is followed. If using an NTIN without following this format, an outbound error occurs when passing data from TraceLink to a trade partner.
 
Data ElementOccurs
Length
TypeDescription
epcis:EPCISDocument[1…1]
[]
-Required. EPCIS message root element.
 @schemaVersion[1…1]
[0/*]
DecimalRequired. The version of the EPCIS schema used to populate the EPCIS document elements. *1
 @creationDate[1…1]
[1/*]
DateTimeRequired. Date the message was created in YYYY-MM-DDTHH:MM:SS:mmZ format. *2
 EPCISHeader[1…1]
[]
-Required. The XML file control header.
  sbdh:StandardBusinessDocumentHeader[1…1]
[]
-Required. Business header information including EPCIS Header Version, Sender, and Receiver information, along with the document identification.
   sbdh:HeaderVersion[1…1]
[0/*]
StringRequired. Version of the Standard Business Document Header (SBDH). The HeaderVersion must be set to 1.0. *3
   sbdh:Sender[1...*]
[]
-Required. A unique identification key for the Sender party of the message, representing the organization that created the standard business document. The Sender element must be used only once with GS1 XML messages.
    sbdh:Identifier[1…1]
[1/*]
StringRequired. The value of the Identifier element may be a GLN, SGLN, or any other supported business party type. *4
     @Authority[1…1]
[1/*]
StringRequired. The sender identifier type. The Authority was previously expected to be set to GLN for GS1 XML messages. An update made in December 2016 changed this to accept additional values.  *5
    sbdh:ContactInformation[0...*]
[]
-Not used.
   sbdh:Receiver[1...*]
[]
-Required. Indicates a unique identification key for the direct Receiver party of the message, representing the organization that receives the standard business document. The Receiver element is used only once with GS1 XML messages.
    sbdh:Identifier[1…1]
[1/*]
StringRequired. The value of the Identifier element may be a GLN, SGLN, or any other supported business party type..
     @Authority[1…1]
[1/*]
StringRequired. Defines the receiver identifier type as a GLN. Value is set to GLN for GS1 XML messages.
    sbdh:ContactInformation[0...*]
[]
-Not used.
   sbdh:DocumentIdentification[1…1]
[]
-Required. Contains the identification group for the message.
    sbdh:Standard[1…1]
[0/*]
StringRequired. Name of the document standard contained in the file or message. The standard value for this field is EPCglobal. *6
    sbdh:TypeVersion[1…1]
[0/*]
StringRequired. Reflects the version of the document included. This is the complete version of the document itself and is different from the HeaderVersion as these are hard-coded values. The TypeVersion is set to 1.0.  *7
    sbdh:InstanceIdentifier[1…1]
[1/*]
StringRequired. Reference information that uniquely identifies this instance of the Standard Business Document between the Sender and the Receiver. This identifier confirms this document as being distinct from others. *8
    sbdh:Type[1…1]
[0/*]
StringRequired. Document type. Value is set to Events for an aggregation event. *9
    sbdh:CreationDateAndTime[1…1]
[0/*]
DateTimeRequired. The date and time of the SBDH document's creation. GMT create date and time for the EPCIS message. The system expects the Z to be appended; however, if it is not included, the system assumes that the time is GMT and therefore appends the Z. *10
 EPCISBody[1…1]
[]
-Required. Contains all of the EPCIS events for the aggregation message.
  EventList[1…1]
[]
-Required. The EventList must contain one or more AggregationEvent data elements for an aggregation message.
   AggregationEvent[1...*]
[]
-Required. The AggregationEvent is used in the EventList and indicates an aggregation event when:
  • action = ADD
  • bizStep = urn:epcglobal:cbv:bizstep:packing
  • disposition = urn:epcglobal:cbv:disp:in_progress
    eventTime[1…1]
[1/*]
DateTimeRequired. The time stamp of date/time when the event occurred. Must include a time zone indicator as specified in Section 9.5 of [EPCIS1.0.1]. The system expects the Z to be appended; however if it is not included, the system assumes that the time is GMT and therefore appends the Z. *11
    recordTime[0…1]
[0/*]
DateTimeNot used.
    eventTimeZoneOffset[1…1]
[1/*]
StringRequired. The time zone offset in the place where the event occurred, consistent with what choice was made for eventTime. A time offset is an amount of time subtracted from or added to UTC (Coordinated Universal Time) to get the current civil time - whether it is standard time or daylight saving time, per Section 7.2.8 of [EPCIS1.0.1]. *12
    parentID[1…1]
[1/*]
AnyURIRequired. Identifier of the parent container in EPC Pure Identity URI format (e.g. for an item-to-case aggregation, the EPC is of the case; for a case-to-pallet aggregation, the EPC is of the pallet). See EPC Pure Identifier Format Examples. *13
    childEPCs[1…1]
[]
-Required. Contains a list of identifiers, including the child items, in the parent container in EPC Pure Identity URI format (e.g. for an item-to-case aggregation, the EPCs is of the items; for a case-to-pallet aggregation, the EPCs is of the cases).
     epc[1...*]
[1/*]
StringRequired. Identifier of the child items in the parent container in EPC Pure Identity URI format. See EPC Pure Identifier Format Examples. *14
    action[1…1]
[1/*]
StringRequired. The action taken in the message. The action value must equal ADD for an aggregation event. *15

See the ActionType enumeration list for valid values.

    bizStep[0…1]
[0/*]
AnyURIThe business step taken in the event. The bizStep value must equal urn:epcglobal:cbv:bizstep:packing for an aggregation event. *16
    disposition[1…1]
[0/*]
AnyURIRequired. Status of the transaction and is grouped with the bizStep and action fields to define the message event. The disposition value must equal urn:epcglobal:cbv:disp:in_progress for an aggregation event. *17
    readPoint[0…1]
[]
-Location where the event occurred, i.e. the warehouse GLN location ID and storage location (shelf, bin, etc.) in URN format, that recorded the aggregation event.
     id[1…1]
[0/*]
AnyURIRequired. The SGLN EPC of the location from where the event occurred. This may be a site-level SGLN, or a finer-grain location identifier. *18
     extension[0…1]
[]
-Not used - GS1 Reserved.
    bizLocation[1…1]
[]
-Required. The SGLN EPC of the location from where the event occurred. This may be a site-level SGLN, or a finer-grain location identifier.
     id[1…1]
[1/*]
AnyURIRequired. The SGLN EPC of the location from where the event occurred. This may be a site-level SGLN or a finer-grain location identifier.
     extension[0…1]
[]
-Not used - GS1 Reserved.
    extension[0…1]
[]
-Not used - GS1 Reserved.
    tl:locationId[0…1]
[0/*]
StringLocation to associate the Aggregation. *19
     @type[1…1]
[0/*]
StringRequired. Attribute identifies the location types. *20

See the LocationIdType enumeration list for valid values.

    tl:aggregationEventExtensions[0…1]
[]
-Contains the extensions used for the aggregation event.
     tl:packedStatus[0…1]
[0/*]
StringPacked status of the item or container using the supported enumeration values.

See the PackedStatus enumeration list for valid values.

     tl:quantity[0…1]
[]
IntThe quantity of child serial numbers aggregated to the parent container in this aggregation event. *21
     tl:resetContainerAggregation[0…1]
[]
BooleanTriggers backend processing on aggregation that will disaggregate existing child items from parent container that are not present in the new childEPC list, and aggregate new child items that are present in the new childEPC list.

Default value is false.

If this field is not populated, TL will not trigger the backend reset of the aggregation. The logic will only be triggered if resetContainerAggregation is set to true.