Update serial number status APIs
Serial number status update messages allow Owners and Partners to deactivate or encode provisioned serial numbers and to destroy or decommission commissioned serial numbers. The status of a serial number indicates its place in the serial number life cycle and which processes the serial number can undergo next (e.g. a provisioned serial number can be commissioned, deactivated, or encoded).
Disposition Updated
This message uses the Park and Retry functionality. If Tracelink detects that the serial numbers included have not been provisioned yet, TraceLink stops processing the message, returns the message to the queue, and then tries to process the message again every 15 minutes for up to 2 hours.

This message supports 4 types of serial number status update:
- Communicate to TraceLink that previously requested serial numbers are no longer in use by updating their status to
DEACTIVATED
. Deactivated serial numbers cannot be reused. - Permanently disassociate serial numbers from items due to an exception (e.g. damage, packaging error, commissioning data error) by updating their status to
DESTROYED
if they cannot be reused orDECOMMISSIONED
if they can be reused. - Communicate that Third Party Printers printed serial numbers onto packaging labels or cartons by updating their status to
ENCODED
.
Guidelines
- Message Type: SNX_DISPOSITION_UPDATED
- Info Exchange Display Name: Serial Number Disposition Updated
- Map Version: TL_XML_SNX_SerialNumberDispositionUpdated_1_0_IB_V1_6
Element | Occurs Length |
Type | Description | |||||
---|---|---|---|---|---|---|---|---|
snx:DispositionUpdatedMessage | - |
1...1- | Required. The XML message root element. | |||||
snx:ControlFileHeader | - |
1...1- | Required. The XML file control header. | |||||
cmn:FileSenderNumber | 1/20 |
1...1String |
Required. The unique identifier for the company sending the message (e.g. 7777776067344). |
|||||
cmn:FileReceiverNumber | 1/20 |
1...1String | Required. The unique identifier for the company receiving the message (e.g. 8888884043588). | |||||
cmn:FileControlNumber | 1/* |
1...1String | Required. The unique file identifier assigned by the message sender. | |||||
cmn:FileDate | 10/10 |
1...1Date |
Required. The date the file was generated in YYYY-MM-DD format (e.g. 2023-06-30). |
|||||
cmn:FileTime | 8/8 |
1...1Time | Required. The time the file was generated in HH:MM:SSZ format (e.g. 06:30:32Z). | |||||
snx:MessageBody | - |
1...1- | Required. The body of the XML message. | |||||
snx:EventSummary | - |
0...1- | The summary information associated with the events detailed in the message. TraceLink does not use this information, but a Pharmaceutical Manufacturer might request it. | |||||
cmn:InternalMaterialCode | 1/* |
1...1String | Required. The internal system number for the serialized product (e.g. 99586). Typically provided by the Pharmaceutical Manufacturer. | |||||
cmn:LotNumber | 1/20 |
1...1String | Required. The lot or batch number for the commissioned products (e.g. A312101). | |||||
snx:SerialNumberCount | 0/* |
0...1String | Conditionally required if the updated status is set to ENCODED . The packaging level information and serial number counts. |
|||||
cmn:PackagingLevelItemCode | 1/* |
1...1String | Required. The identifier value associated with a specific packaging level of the product (e.g. 50300694220667). | |||||
@type | 1/* |
1...1String |
Required. The type of packaging code. Valid values:
|
|||||
cmn:PackagingLevel | 1/* |
1...1String |
Required. The packaging level of the commissioned serial numbers. Valid values:
|
|||||
cmn:Quantity | 1/* |
1...1Integer |
Required. The quantity of commissioned serial numbers at this packaging level in the lot. |
|||||
snx:TotalSerialNumberCount | 0/* |
0...1Integer | The total number of commissioned child and parent serial numbers reported in this message. | |||||
snx:TotalAggregationEventCount | 0/* |
0...1Integer | The total number of aggregation events in the batch. | |||||
cmn:ExtensionField | - |
0...*- | The customer extension point to pass additional name and value pairs not already supported in this message. These extensions are not stored by TraceLink and are used only for outbound mapping purposes when a trade partner requires additional data for this message (e.g. when a CMO is required to provide additional data fields to the Pharmaceutical Manufacturer). | |||||
cmn:FieldName | 1/* |
1...1String | Required. The exact field name provided by the Owner or Partner receiving the message. | |||||
cmn:FieldValue | 1/* |
1...1String | Required. The corresponding value for the requested extension field. | |||||
cmn:EventDateTime | 1/34 |
1...1String | Required. The date and time the serial number was updated in YYYY-MM-DDTHH:MM:SSZ format (e.g. 2023-03-31T12:40:21.140Z). Milliseconds default to zero for efficiency and smaller file sizes because serial numbers can be grouped together when the event times are the same. | |||||
cmn:EventTimeZoneOffset | 6/6 |
1...1String | Required. The time zone offset in effect at the time and place where the event occurred (e.g. -05:00). | |||||
snx:SerialNumbers | - |
1...1- | Required. The list of serial numbers being updated. | |||||
cmn:Serial | 1/* |
1...*String |
Required. The serial number in barcode readable format. Express values in the GS1 Application Identifier format without parentheses for the AI keys. Examples:
|
|||||
@format | 0/* |
0...1String |
The serial number encoding type. Valid values:
|
|||||
cmn:PackagingItemCode | 0/* |
0...1String | Conditionally required if the updated status is set to ENCODED . The packaging code value associated with the serial number to identify a product at a specific packaging level (e.g. 50300694220667). |
|||||
@type | 1/* |
1...1String |
Required. The type of packaging code. Valid values:
|
|||||
cmn:PackagingSerialNumberStatus | 1/* |
1...1String |
Required. The updated status assigned to the serial numbers. Valid values:
|
|||||
cmn:ItemAttribute | 0/* |
0...1String |
Conditionally required if the updated status is set to ![]()
|
|||||
cmn:EventLocation | 1/34 |
1...1String |
Required. The SGLN of the location where updating occurred, with the urn prefix omitted (e.g. 8888882.02867.0 instead of urn:epc:id:sgln:8888882.02867.0). |
|||||
cmn:DisaggregateFromParent | - |
0...1Boolean |
Available if the updated status is set to
|
|||||
cmn:ProductionLineId | 0/* |
0...1String | Conditionally required if the updated status is set to DEACTIVATED or ENCODED and the serial number encoding format is CN-EDMC . The internal system identifier of the production line where the update occurred (e.g. L009). |
|||||
cmn:LineManagerName | 0/* |
0...1String | Conditionally required if the serial number encoding format is CN-EDMC . The name of the person who managed the production line where the update occurred. |
|||||
cmn:ReferenceDocuments | - |
0...1- | Conditionally required if the updated status is set to either DEACTIVATED or DESTROYED and the serial number encoding format is CN-EDMC , or if the updated status is set to ENCODED . The business documents associated with the event. |
|||||
cmn:PONumber | 0/* |
0...1String | Conditionally required if cmn:POLine is populated. The number of the purchase order (PO) issued by the manufacturer for the lot production (e.g. 1001764). | |||||
cmn:POLine | 0/* |
0...1String | The line number for the lot production from the PO issued by the manufacturer (e.g. 001). | |||||
cmn:WorkOrderNumber | 0/* |
0...1String | The work order associated with the production of this lot (e.g. 1001764-00). | |||||
cmn:ReferenceIdentifier | 0/* |
0...1String | Conditionally required if the serial number encoding format is CN-EDMC . The internal business identifier associated with the production of this lot (e.g. A100352). |
|||||
cmn:ReasonDescription | 0/100 |
0...1String |
Conditionally required if the updated status is set to |
Examples

<?xml version="1.0" encoding="UTF-8"?>
<snx:SNXDispositionUpdatedMessage xmlns="urn:tracelink:mapper:sl:serial_number_exchange" xmlns:snx="urn:tracelink:mapper:sl:serial_number_exchange" xmlns:cmn="urn:tracelink:mapper:sl:commontypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<snx:ControlFileHeader>
<cmn:FileSenderNumber>8888882028677</cmn:FileSenderNumber>
<cmn:FileReceiverNumber>8888882028655</cmn:FileReceiverNumber>
<cmn:FileControlNumber>0000000001</cmn:FileControlNumber>
<cmn:FileDate>2020-08-18</cmn:FileDate>
<cmn:FileTime>06:30:32Z</cmn:FileTime>
</snx:ControlFileHeader>
<snx:MessageBody>
<snx:EventSummary>
<cmn:InternalMaterialCode>133661</cmn:InternalMaterialCode>
<cmn:LotNumber>LOT18</cmn:LotNumber>
<snx:SerialNumberCount>
<cmn:PackagingLevelItemCode type="GTIN-14">00992326050107</cmn:PackagingLevelItemCode>
<cmn:PackagingLevel>EA</cmn:PackagingLevel>
<cmn:Quantity>2</cmn:Quantity>
</snx:SerialNumberCount>
<snx:TotalSerialNumberCount>53</snx:TotalSerialNumberCount>
</snx:EventSummary>
<cmn:EventDateTime>2020-08-17T06:30:32Z</cmn:EventDateTime>
<cmn:EventTimeZoneOffset>-05:00</cmn:EventTimeZoneOffset>
<snx:SerialNumbers>
<cmn:Serial>015088202501033321100000060001</cmn:Serial>
<cmn:Serial>015088202501033321100000060002</cmn:Serial>
</snx:SerialNumbers>
<cmn:PackagingSerialNumberStatus>DEACTIVATED</cmn:PackagingSerialNumberStatus>
<cmn:EventLocation>9297187.01994.0</cmn:EventLocation>
<cmn:ProductionLineId>WILB007</cmn:ProductionLineId>
<cmn:LineManagerName>Jess Smith</cmn:LineManagerName>
<cmn:ReasonDescription>Skipped numbers and discards</cmn:ReasonDescription>
</snx:MessageBody>
</snx:SNXDispositionUpdatedMessage>

<<?xml version="1.0" encoding="UTF-8"?>
<snx:SNXDispositionUpdatedMessage xmlns="urn:tracelink:mapper:sl:serial_number_exchange" xmlns:snx="urn:tracelink:mapper:sl:serial_number_exchange" xmlns:cmn="urn:tracelink:mapper:sl:commontypes">
<snx:ControlFileHeader>
<cmn:FileSenderNumber>8888882028677</cmn:FileSenderNumber>
<cmn:FileReceiverNumber>8888882028655</cmn:FileReceiverNumber>
<cmn:FileControlNumber>0000000001</cmn:FileControlNumber>
<cmn:FileDate>2020-08-18</cmn:FileDate>
<cmn:FileTime>06:30:32Z</cmn:FileTime>
</snx:ControlFileHeader>
<snx:MessageBody>
<cmn:EventDateTime>2020-08-17T06:30:32Z</cmn:EventDateTime>
<cmn:EventTimeZoneOffset>-05:00</cmn:EventTimeZoneOffset>
<snx:SerialNumbers>
<cmn:Serial>015088202501033321100000060003</cmn:Serial>
<cmn:Serial>015088202501033321100000060004</cmn:Serial>
</snx:SerialNumbers>
<cmn:PackagingSerialNumberStatus>DECOMMISSIONED</cmn:PackagingSerialNumberStatus>
<cmn:ItemAttribute>DAMAGED</cmn:ItemAttribute>
<cmn:EventLocation>9297187.01994.0</cmn:EventLocation>
<cmn:DisaggregateFromParent>true</cmn:DisaggregateFromParent>
<cmn:ProductionLineId>WILB007</cmn:ProductionLineId>
<cmn:LineManagerName>Jess Smith</cmn:LineManagerName>
<cmn:ReferenceDocuments>
<cmn:PONumber>PO007</cmn:PONumber>
<cmn:POLine>001</cmn:POLine>
<cmn:WorkOrderNumber>1001763-00</cmn:WorkOrderNumber>
</cmn:ReferenceDocuments>
<cmn:ReasonDescription>Damaged in warehouse</cmn:ReasonDescription>
</snx:MessageBody>
</snx:SNXDispositionUpdatedMessage>

<?xml version="1.0" encoding="UTF-8"?>
<snx:SNXDispositionUpdatedMessage xmlns="urn:tracelink:mapper:sl:serial_number_exchange"
xmlns:cmn="urn:tracelink:mapper:sl:commontypes" xmlns:snx="urn:tracelink:mapper:sl:serial_number_exchange" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<snx:ControlFileHeader>
<cmn:FileSenderNumber>8888882028677</cmn:FileSenderNumber>
<cmn:FileReceiverNumber>8888882028655</cmn:FileReceiverNumber>
<cmn:FileControlNumber>0000000001</cmn:FileControlNumber>
<cmn:FileDate>2020-08-18</cmn:FileDate>
<cmn:FileTime>06:30:32Z</cmn:FileTime>
</snx:ControlFileHeader>
<snx:MessageBody>
<cmn:EventDateTime>2020-08-17T06:30:32Z</cmn:EventDateTime>
<cmn:EventTimeZoneOffset>-05:00</cmn:EventTimeZoneOffset>
<snx:SerialNumbers>
<cmn:Serial>015088202501033321100000060005</cmn:Serial>
<cmn:Serial>015088202501033321100000060006</cmn:Serial>
</snx:SerialNumbers>
<cmn:PackagingSerialNumberStatus>DESTROYED</cmn:PackagingSerialNumberStatus>
<cmn:ItemAttribute>DAMAGED</cmn:ItemAttribute>
<cmn:EventLocation>9297187.01994.0</cmn:EventLocation>
<cmn:ProductionLineId>WILB007</cmn:ProductionLineId>
<cmn:LineManagerName>Jess Smith</cmn:LineManagerName>
<cmn:ReferenceDocuments>
<cmn:PONumber>PO008</cmn:PONumber>
<cmn:POLine>001</cmn:POLine>
<cmn:WorkOrderNumber>1001764-00</cmn:WorkOrderNumber>
</cmn:ReferenceDocuments>
<cmn:ReasonDescription>Damaged in warehouse</cmn:ReasonDescription>
</snx:MessageBody>
</snx:SNXDispositionUpdatedMessage>

<?xml version="1.0" encoding="UTF-8"?>
<snx:SNXDispositionUpdatedMessage xmlns="urn:tracelink:mapper:sl:serial_number_exchange"
xmlns:cmn="urn:tracelink:mapper:sl:commontypes" xmlns:snx="urn:tracelink:mapper:sl:serial_number_exchange" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<snx:ControlFileHeader>
<cmn:FileSenderNumber>8888882028677</cmn:FileSenderNumber>
<cmn:FileReceiverNumber>8888882028655</cmn:FileReceiverNumber>
<cmn:FileControlNumber>0000000001</cmn:FileControlNumber>
<cmn:FileDate>2020-08-18</cmn:FileDate>
<cmn:FileTime>06:30:32Z</cmn:FileTime>
</snx:ControlFileHeader>
<snx:MessageBody>
<cmn:EventDateTime>2020-08-17T06:30:32Z</cmn:EventDateTime>
<cmn:EventTimeZoneOffset>-05:00</cmn:EventTimeZoneOffset>
<snx:SerialNumbers>
<cmn:Serial>015088202501033321100000060007</cmn:Serial>
<cmn:Serial>015088202501033321100000060008</cmn:Serial>
</snx:SerialNumbers>
<cmn:PackagingItemCode type="GTIN-14">00992326050107</cmn:PackagingItemCode>
<cmn:PackagingSerialNumberStatus>ENCODED</cmn:PackagingSerialNumberStatus>
<cmn:EventLocation>9297187.01994.0</cmn:EventLocation>
<cmn:ProductionLineId>WILB007</cmn:ProductionLineId>
<cmn:LineManagerName>Jess Smith</cmn:LineManagerName>
<cmn:ReferenceDocuments>
<cmn:WorkOrderNumber>1001765-00</cmn:WorkOrderNumber>
</cmn:ReferenceDocuments>
</snx:MessageBody>
</snx:SNXDispositionUpdatedMessage>
Errors
Element | Error message | Description |
---|---|---|
Class 1 | ||
@format | Serial format attribute is not one of the allowed enumeration values!!! | This element must be specified as one of the valid values. |
cmn:PackagingLevelItemCode | PackagingItemCode required when PackagingSerialNumberStatus = ENCODED!!! | If the updated status is ENCODED , then the packaging code of the serial numbers must be specified. |
cmn:PackagingItemCode | @type | PackagingItemcode type attribute is required when source PackagingItemcode is populated !!! | If the packaging code value is present, then the packaging code type must be specified. |
cmn:PackagingItemcode is not one of the allowed enumeration values!!! | This element must be specified as one of the valid values. | |
cmn:PackagingSerialNumberStatus | PackagingSerialNumberStatus is not one of the allowed enumeration values!!! | This element must be specified as one of the valid values. |
cmn:ItemAttribute | ItemAttributes can only be set when PackagingSerialNumberStatus = DECOMMISSIONED or DESTROYED!!! | If the updated status is DEACTIVATED or ENCODED , then an item attribute must not be present. |
ItemAttribute is not one of the allowed enumeration values!!! | This element must be specified as one of the valid values. | |
cmn:ReferenceDocuments | A PONumber, WorkOrderNumber or ReferenceIdentifier is required when PackagingSerialNumberStatus = ENCODED!!! | If the updated status is ENCODED , then at least one of the PO number, work order number, or reference identifier must be specified. |
cmn:ReasonDescription | ReasonDescription is required when PackagingSerialNumberStatus = DECOMMISSIONED or DESTROYED!!! | If the updated status is DECOMMISSIONED or DESTROYED , then a reason description must be present. |
Class 2 | ||
cmn:FileSenderNumber | senderCompanyID must not be null. | This element must have a value specified. |
cmn:FileSenderNumber or cmn:FileReceiverNumber | Unable to find product entry record for pool id [pool ID]. | TraceLink cannot find the pool of serial numbers at this company for the packaging code entered. |
Unable to find profile for serviceId [serviceId] and subscriber company [Partner company ID]. | The sender or receiver identifier does not have a Serial Number Exchange profile associated with it. | |
cmn:PackagingLevelItemCode | Standard error message for serial number does not match packaging code and should be generated as an Info Exchange Error. | The packaging code must match the serial number packaging code in Product Master Data. |
MIXED_PACKAGE_CODES for invalid packaging code. | The serial numbers have different packaging codes. | |
PackagingItemCode must be specified. | This element must have a value specified. | |
cmn:PackagingLevelItemCode | @type | Bad value for PackagingItemCode.Type: [packaging code]. | This element must be specified as one of the valid values. |
cmn:EventDateTime | Standard invalid event time sequence error message | The time must be later than the last event, and sooner than 5 minutes from the current time. |
cmn:SerialNumber | Standard invalid serial number state error message. | The updated status is not available to items with this serial number's current status. |
BADSERIALNUMBERSTATE. | ||
Serial number [serial number] has already been encoded. | The serial number already has a status of ENCODED . |
|
Serial Number [serial number] status cannot be updated because no associated Company Prefix could be found in [Owner]’s Product Master Data or Serial Number Exchange Profile. | This element must match the company prefix found in Product Master Data or Serial Number Exchange. | |
Serial Number [serial number] status cannot be updated because no associated serial number format could be found in [Owner]’s Serial Number Manager or Serial Number Exchange Profile | The format of this serial number is not configured in either the Serial Number Manager template or Serial Number Exchange profile. | |
cmn:PackagingSerialNumberStatus | getPackagingSerialNumberStatus must be specified. | This element must be specified as one of the valid values. |
cmn:ItemAttribute | Invalid item attribute [item attribute] for serial number set to status [updated status]. | This element must be specified as one of the valid values. |
cmn:DisaggregateFromParent | CANNOTBEAGGREGATED for [serial number]. | The serial number is currently aggregated, and cmn:DisaggregateFromParent is set to false or not present, so the status of the child serial number cannot be changed. |
cmn:ReasonDescription | reasonDescription must be specified. | This element must have a value specified. |
Class 3 | ||
The following is thrown for all Class 3 errors: “INTERNALERROR=Internal error from server [server details].” Please contact Support if this error is encountered. |

This message supports 2 types of serial number status update: destroying and decommissioning. Disassociate serial numbers from an item due to an exception (e.g. damage, packaging error, commissioning data error) by destroying them if they cannot be reused or decommissioning them if they can be reused.
Guidelines
- Message Type: SNX_DISPOSITION_UPDATED
- Info Exchange Display Name: Serial Number Disposition Updated
- Map Version: TL_EPCIS_SNX_DispositionUpdated_1_2_IB_V1_2
Element | Occurs Length |
Type | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
epcis:EPCISDocument | - |
1...1- | Required. The EPCIS message root element. | ||||||
@schemaVersion | 1/* |
1...1Decimal | Required. The version of the EPCIS schema used to populate the EPCIS document elements. Valid value is 1.2 . |
||||||
@creationDate | 1/* |
1...1DateTime | Required. The date and time the EPCIS message was created in YYYY-MM-DDTHH:MM:SSZ format (e.g. 2023-03-25T22:08:02Z). | ||||||
EPCISHeader | - |
1...1- |
Required. The XML file control header record providing message identification and routing information. This message supports the following use cases:
|
||||||
sbdh:StandardBusinessDocumentHeader | - |
1...1- | Required. The business header information, including the EPCIS header version, sender and receiver information, and the document identification. | ||||||
sbdh:HeaderVersion | 1/* |
1...1String | The version of the EPCIS schema used to populate the EPCIS document elements. Valid value is 1.0 . |
||||||
sbdh:Sender | - |
1...1- | Required. The unique identification key for the organization that created the standard business document. | ||||||
sbdh:Identifier | 1/* |
1...1String | Required. The GLN, SGLN, or any other supported company identifier (e.g. 1100001014507). All identifier types except GLNs must have a GS1-conformant uri prefix (e.g. urn:epc:id:sgln:088202.867701.0). | ||||||
@Authority | 1/* |
1...1String |
Required. The sender identifier type. ![]()
|
||||||
sbdh:Receiver | - |
1...1- | Required. The unique identification key for the organization that receives the standard business document. | ||||||
sbdh:Identifier | 1/* |
1...1String | Required. The GLN, SGLN, or any other supported company identifier (e.g. 1100001014507). All identifier types except GLNs must have a GS1-conformant uri prefix (e.g. urn:epc:id:sgln:088202.867701.0). | ||||||
@Authority | 1/* |
1...1String |
Required. The receiver identifier type. ![]()
|
||||||
sbdh:DocumentIdentification | - |
1...1- | Required. The document identification and standard. | ||||||
sbdh:Standard | 1/* |
1...1String | Required. The document standard. Valid value is EPCglobal . |
||||||
sbdh:TypeVersion | 1/* |
1...1String | Required. The version of the document included in the payload. This is the complete version and is different than the sbdh:HeaderVersion. Valid value is 1.0 . |
||||||
sbdh:InstanceIdentifier | 1/* |
1...1String | Required. The reference identifier that uniquely identifies this instance of the Standard Business Document between the sender and the receiver. | ||||||
sbdh:Type | 1/* |
1...1String | Required. The type of document. Valid value is Events . |
||||||
sbdh:CreationDateAndTime | 1/* |
1...1DateTime | Required. The date and time the file was created in YYYY-MM-DDTHH:MM:SS.ssZ format (e.g. 2023-03-25T22:08:02Z). Milliseconds default to zero. | ||||||
EPCISBody | - |
1...1- | Required. The body of the message with the EPCIS events. | ||||||
EventList | - |
1...1- |
Required. The EventList has the following structure:
|
||||||
ObjectEvent | - |
1...1- |
Required. Choice 1 for the EventList, representing the decommissioning or destroying event. Set the following values to indicate that the ObjectEvent is for decommissioning:
Set the following values to indicate that the ObjectEvent is for destroying:
|
||||||
eventTime | 1/* |
1...1DateTime | Required. The date and time the serial number was updated in YYYY-MM-DDTHH:MM:SSZ format (e.g. 2023-03-31T12:40:21.140Z). Milliseconds default to zero for efficiency and smaller file sizes because serial numbers can be grouped together when the event times are the same. | ||||||
eventTimeZoneOffset | 1/* |
1...1String | Required. The time zone offset in effect at the time and place where the event occurred (e.g. -05:00). | ||||||
epcList | - |
1...1- | Required. The serial numbers being updated. | ||||||
epc | 1/* |
1...1String |
Required. The EPC identifier for the serial number in EPC Pure Identity URI format. ![]()
|
||||||
action | 1/* |
1...1String | Required. The standard GS1 action for the event. Valid value is DELETE . |
||||||
bizStep | 1/* |
1...1AnyURI |
Required. The standard GS1 business step for the event. Valid values:
|
||||||
disposition | 1/* |
1...1AnyURI |
Required. The standard GS1 disposition for the event. Valid values:
|
||||||
readPoint | - |
0...1- |
The location where the update occurred, specifically where the barcode was scanned, if applicable. The message must include readpoint or bizLocation, or both. |
||||||
id | 1/* |
1...1AnyURI |
Required. The SGLN EPC of the location where the update occurred (e.g. urn:epc:id:sgln:0614141.12345.RP1). This SGLN can be at the location level or a more specific storage space (e.g. a specific shelf within the warehouse). This ID must follow the structure: |
||||||
bizLocation | - |
0...1- | The business location where the update occurred. The message must include readpoint or bizLocation, or both. | ||||||
id | 1/* |
1...1AnyURI |
Required. The SGLN EPC of the location where the update occurred (e.g. urn:epc:id:sgln:0614141.12345.RP1). This SGLN can be at the location level or a more specific storage space (e.g. a specific shelf within the warehouse). This ID must follow the structure: |
||||||
tl:dispositionUpdatedEventExtensions | - |
1...1- | Required. The TraceLink extension elements used for the update event. | ||||||
tl:disaggregateFromParent | - |
0...1Boolean |
Indicates whether to disaggregate the updated serial numbers from their parent container:
|
||||||
tl:packagingSerialNumberStatus | 1/* |
1...1String |
Required. The updated status assigned to the serial numbers. Valid values:
|
||||||
tl:itemAttribute | 1/* |
1...*String |
Required. The reason for the serial number status update. ![]()
|
||||||
tl:productionLineId | 0/* |
0...1String | The internal system identifier of the production line where the update occurred (e.g. L009). | ||||||
tl:lineManagerName | 0/* |
0...1String | Conditionally required if the serial number encoding format is CN-EDMC . The name of the person who managed the production line where the update occurred. |
||||||
tl:reasonDescription | 1/* |
1...1String | Required. The text description of the reason for the serial number status update. | ||||||
tl:extensionField | - |
0...*- | The customer extension point to pass additional name and value pairs not already supported in this message. These extensions are not stored by TraceLink and are used only for outbound mapping purposes when a trade partner requires additional data for this message (e.g. when a CMO is required to provide additional data fields to the Pharmaceutical Manufacturer). | ||||||
tl:fieldName | 1/* |
1...1String | Required. The exact field name provided by the Owner or Partner receiving the message. | ||||||
tl:fieldValue | 1/* |
1...1String | Required. The corresponding value for the requested extension field. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<epcis:EPCISDocument xmlns:epcis="urn:epcglobal:epcis:xsd:1" xmlns:sbdh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader"
xmlns:cbvmda="urn:epcglobal:cbv:mda" xmlns:tl="http://epcis.tracelink.com/ns"
creationDate="2017-04-11T07:15:00Z" schemaVersion="1.2">
<EPCISHeader>
<sbdh:StandardBusinessDocumentHeader>
<sbdh:HeaderVersion>1.0</sbdh:HeaderVersion>
<sbdh:Sender>
<sbdh:Identifier Authority="GLN">8888882028677</sbdh:Identifier>
</sbdh:Sender>
<sbdh:Receiver>
<sbdh:Identifier Authority="GLN">8888882028655</sbdh:Identifier>
</sbdh:Receiver>
<sbdh:DocumentIdentification>
<sbdh:Standard>EPCglobal</sbdh:Standard>
<sbdh:TypeVersion>1.0</sbdh:TypeVersion>
<sbdh:InstanceIdentifier>00699999999990000000283944908</sbdh:InstanceIdentifier>
<sbdh:Type>Events</sbdh:Type>
<sbdh:CreationDateAndTime>2020-08-18T07:15:00Z</sbdh:CreationDateAndTime>
</sbdh:DocumentIdentification>
</sbdh:StandardBusinessDocumentHeader>
</EPCISHeader>
<EPCISBody>
<EventList>
<ObjectEvent>
<eventTime>2020-08-18T07:15:00Z</eventTime>
<eventTimeZoneOffset>-05:00</eventTimeZoneOffset>
<epcList>
<epc>urn:epc:id:sgtin:068202.0401034.11220207026272</epc>
</epcList>
<action>DELETE</action>
<bizStep>urn:epcglobal:cbv:bizstep:decommissioning</bizStep>
<disposition>urn:epcglobal:cbv:disp:inactive</disposition>
<readPoint>
<id>urn:epc:id:sgln:9297187.01994.0</id>
</readPoint>
<bizLocation>
<id>urn:epc:id:sgln:9297187.01994.0</id>
</bizLocation>
<tl:dispositionUpdatedEventExtensions>
<tl:disaggregateFromParent>false</tl:disaggregateFromParent>
<tl:packagingItemCode type="GTIN-14">00992326050107</tl:packagingItemCode>
<tl:packagingSerialNumberStatus>DECOMMISSIONED</tl:packagingSerialNumberStatus>
<tl:itemAttribute>DAMAGED</tl:itemAttribute>
<tl:itemAttribute>DISPOSED</tl:itemAttribute>
<tl:productionLineId>WILB007</tl:productionLineId>
<tl:lineManagerName>Jess Smith</tl:lineManagerName>
<tl:reasonDescription>Skipped numbers and discards</tl:reasonDescription>
</tl:dispositionUpdatedEventExtensions>
</ObjectEvent>
</EventList>
</EPCISBody>
</epcis:EPCISDocument>
Errors
Element | Error message | Description |
---|---|---|
Class 1 | ||
ObjectEvent | Only one instance of either ObjectEvent Destroying OR Decommissioning is required !!! | The element must occur exactly once in the message. |
ObjectEvent | epcList | epc | Invalid EPC format !!! | This element must have a value specified. |
This element must be specified in one of the valid formats. | ||
ObjectEvent | bizStep | bizStep "urn:epcglobal:cbv:bizstep:decommissioning" is required for ObjectEvent decommissioning !!! | This element must be specified as the valid value for the type of serial number update. |
bizStep "urn:epcglobal:cbv:bizstep:destroying" is required for destroying !!! | ||
ObjectEvent | disposition | Disposition "urn:epcglobal:cbv:disp:inactive" is required for ObjectEvent decommissioning !!! | This element must be specified as the valid value for the type of serial number update. |
Disposition "urn:epcglobal:cbv:disp:destroyed" is required for destroying !!! | ||
ObjectEvent | bizLocation | id | Event location in the decommissioning event is required !!! | This element must have a value specified. |
Event location in the destroying event is required !!! | ||
ObjectEvent | tl:packagingSerialNumberStatus | PackagingSerialNumberStatus is not one of the allowed enumeration values!!! | This element must have a value specified. |
Value [source] is not on the restriction list of the field !!! | This element must be specified as one of the valid values. | |
ObjectEvent | tl:itemAttribute | ItemAttribute is not one of the allowed enumeration values!!! | This element must be specified as one of the valid values. |
ItemAttribute can only be set when PackagingSerialNumberStatus = DECOMMISSIONED or DESTROYED !!! | This element can only be specified if the updated serial number status is DECOMMISSIONED or DESTROYED . |
|
ObjectEvent | tl:reasonDescription | ReasonDescription is required when PackagingSerialNumberStatus = DECOMMISSIONED or DESTROYED!!! | This element must have a value specified. |
Class 2 | ||
epc | Serial Number [serial number] status cannot be updated because no associated Company Prefix could be found in [Owner]’s Product Master Data or Serial Number Exchange Profile. | This element must match the company prefix found in Product Master Data or Serial Number Exchange. |
Serial Number [serial number] status cannot be updated because no associated serial number format could be found in [Owner]’s Serial Number Manager or Serial Number Exchange Profile | The format of this serial number is not configured in either the Serial Number Manager template or Serial Number Exchange profile. | |
tl:itemAttribute | Invalid item attribute [attribute] for serial number set to status [updated status]. | This element must be specified as one of the valid values. |
Class 3 | ||
The following is thrown for all Class 3 errors: “INTERNALERROR=Internal error from server [server details].” Please contact Support if this error is encountered. |

Use this message to integrate a Systech line management system with Serial Number Exchange.
Guidelines
- Message type: SNX_DISPOSITION_UPDATED
- Info Exchange display name: Serial Number Disposition Updated
- Map version: Systech_SNX_PML_DispositionUpdated_1_0_IB_V1_0
Element |
Occurs Length |
Type | Description | |||||||
---|---|---|---|---|---|---|---|---|---|---|
pmlcore:Sensor | - |
1…1- | Required. The PML message root element. | |||||||
pmluid:ID | 0/* |
1…1String | Required. The device controller, which is the Guardian service name (e.g. AMRNDHW3256). This value must match the file sender number in TraceLink. | |||||||
pmlcore:Observation | - |
1…1- |
Required. The event being observed. Only one event can be present. |
|||||||
pmlcore:DateTime | 0/* |
1…1DateTime |
Required. The date and time of the event in YYYY-MM-DDTHH:MM:SSZ format (e.g. 2023-03-31T12:40:21.140Z). Milliseconds default to zero for efficiency and smaller file sizes because serial numbers can be grouped together when the event times are the same. |
|||||||
pmlcore:Command | 0/* |
1…1String |
Required. The type of event recorded in this PML observation. Valid values:
|
|||||||
pmlcore:Tag | - |
1…*- | Required. The serial numbers being updated. | |||||||
pmluid:ID | 0/* |
1…1String |
Required. The serial number. Express values in the GS1 Application Identifier format without parenthesis for the AI keys. Examples:
|
|||||||
@schemeID | 0/* |
0…1String |
The encoding type of the serial numbers. Valid value is |
|||||||
pmlcore:Data | - |
0…1- |
The details of the updated serial numbers. |
|||||||
pmlcore:XML | - |
0…1- | The wrapper for the details. | |||||||
EPCStatus | 0/* |
0…1String | The status of the serial numbers (e.g. WS). | |||||||
Memory | - |
0…1- |
The Systech PML data attributes about the commission event. The DataField and its value must use the following format:
|
|||||||
DataField | 1/* |
0…*String |
Required. The value of the data attribute. See @fieldname for requirements and valid values. |
|||||||
@fieldName | 1/* |
0…*String |
Required. The type of data attribute. ![]()
|
|||||||
pmlcore:Data | - |
1…*- |
Required. Additional information about the event. |
|||||||
pmlcore:XML | - |
1…1- |
Required. The wrapper for the additional information. |
|||||||
|
ReaderID | 1/40 |
1…1String | Required. The identifier for the packaging line where the serial numbers were updated (e.g. SDTest08). | ||||||
LogicalDeviceID | 1/40 |
0…1String |
The identifier for the company receiving the message, which must match a company identifier configured in TraceLink (e.g. 0069999999999). |
|||||||
ContainerID | 0/* |
0…1String | The serial number of the parent container for the updated serial numbers. Express values in the GS1 Application Identifier format without parentheses for the AI keys. Examples:
|
|||||||
DOCUMENT_NO | 0/* |
0…1String |
The internal Systech document identifier (e.g. Doc17). |
Example
<?xml version="1.0" encoding="UTF-8"?>
<pmlcore:Sensor xmlns:pmlcore="urn:autoid:specification:interchange:PMLCore:xml:schema:1" xmlns:pmluid="urn:autoid:specification:universal:Identifier:xml:schema:1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<pmluid:ID>AMRNDHW3256</pmluid:ID>
<pmlcore:Observation>
<pmlcore:DateTime>2020-08-18T13:25:55.141Z</pmlcore:DateTime>
<pmlcore:Command>MANU_PACK</pmlcore:Command>
<pmlcore:Tag>
<pmluid:ID schemeID="GS1">010088202501033821100000880051</pmluid:ID>
<pmlcore:Data>
<pmlcore:XML>
<EPCStatus>WS</EPCStatus>
<Memory>
<DataField fieldName="ZCOMPANYPREFIX">000001</DataField>
<DataField fieldName="ZFILTERVALUE">3</DataField>
<DataField fieldName="ZPLANTLOCATIONID">US_P_CMO_101</DataField>
<DataField fieldName="ZLINENAME">WILB007</DataField>
<DataField fieldName="ZLINEOPERATOR">Jess Smith</DataField>
<DataField fieldName="ZEPCCONFIGTYPE">Pallet</DataField>
<DataField fieldName="ZEVENTDATE">2020-08-18T08:56:10.723Z</DataField>
<DataField fieldName="Z_NDC">05552-5500-10</DataField>
<DataField fieldName="BATCH_NO">A12345</DataField>
<DataField fieldName="ZEXPIRATIONDATE">20250831</DataField>
<DataField fieldName="ZINTERNALMATERIALCODE">133661</DataField>
<DataField fieldName="ZPRODDATE">20180818</DataField>
<DataField fieldName="ZITEMS">3</DataField>
<DataField fieldName="SGLN">9997777.01994.0</DataField>
<DataField fieldName="PO">1001764</DataField>
<DataField fieldName="POLINE">001</DataField>
<DataField fieldName="WORKORDER">1001764-00</DataField>
<DataField fieldName="REFERENCEID">A100352</DataField>
</Memory>
</pmlcore:XML>
</pmlcore:Data>
</pmlcore:Tag>
<pmlcore:Tag>
<pmluid:ID schemeID="GS1">015030069420030021200000080591</pmluid:ID>
<pmlcore:Data>
<pmlcore:XML>
<EPCStatus>WS</EPCStatus>
<Memory>
<DataField fieldName="ZCOMPANYPREFIX">000001</DataField>
<DataField fieldName="ZFILTERVALUE">3</DataField>
<DataField fieldName="ZPLANTLOCATIONID">US_P_CMO_101</DataField>
<DataField fieldName="ZLINENAME">WILB007</DataField>
<DataField fieldName="ZLINEOPERATOR">Jess Smith</DataField>
<DataField fieldName="ZEPCCONFIGTYPE">Case</DataField>
<DataField fieldName="ZEVENTDATE">2014-01-21T08:55:22.787Z</DataField>
<DataField fieldName="Z_NDC">05552-5500-10</DataField>
<DataField fieldName="BATCH_NO">A12345</DataField>
<DataField fieldName="ZEXPIRATIONDATE">20250831</DataField>
<DataField fieldName="ZINTERNALMATERIALCODE">133661</DataField>
<DataField fieldName="ZPRODDATE">20180818</DataField>
<DataField fieldName="ZITEMS">3</DataField>
<DataField fieldName="SGLN">9997777.01994.0</DataField>
<DataField fieldName="PO">1001764</DataField>
<DataField fieldName="POLINE">001</DataField>
<DataField fieldName="WORKORDER">1001764-00</DataField>
<DataField fieldName="REFERENCEID">A100352</DataField>
</Memory>
</pmlcore:XML>
</pmlcore:Data>
</pmlcore:Tag>
<pmlcore:Data>
<pmlcore:XML>
<ReaderID>9997777.01994.0</ReaderID>
<LogicalDeviceID>9297187.01994.0</LogicalDeviceID>
<DOCUMENT_NO>Doc17</DOCUMENT_NO>
</pmlcore:XML>
</pmlcore:Data>
</pmlcore:Observation>
</pmlcore:Sensor>
Errors
Element | Error message | Description |
---|---|---|
Class 1 | ||
pmlcore:Observation | Only one Observation event is required for Decommissioning Notification !!! | This element can only occur once within the message. |
pmluid:ID | Serial number is required !!! | This element must have a value specified. |
ReaderID | Event location SGLN identifier in ReaderID is required !!! | This element must have a value specified. |
Class 3 | ||
The following is thrown for all Class 3 errors: “INTERNALERROR=Internal error from server [server details].” Please contact Support if this error is encountered. |