GS1 EPCIS Implementation Guidelines

OpenEPCIS solution to generate a large set of EPCIS test data events for all use cases/supply chain requirements.

Introduction

EPCIS is an ISO (International Organisation for Standardization), IEC (International Electrotechnical Commission), and GS1 Standard that helps to generate and exchange visibility data within an organization or across multiple organizations based on the business context. The GS1-based implementation guidelines for EPCIS, available at https://ref.gs1.org/guidelines/epcis-cbv/2.0.0/, provide comprehensive information on implementing the standard in supply chain systems.

Various End users like supply chain data practitioners, solution providers, research institutions, and other parties frequently need test data to generate/simulate supply chain scenarios, load/performance tests, PoCs/research projects (for example, to populate test databases), initiating data interchange between business partners, and more. Unfortunately, creating EPCIS test data is often time-consuming and tedious, taking days of effort. However, with our advanced test data generator tool, we assure you that you will save a lot of time in simulating the supply chain or any other scenario. Don’t waste valuable time on tedious tasks - let our tool do the work for you. The OpenEPCIS test data generator tool offers a flexible and potent solution for creating test events regardless of the industry, use case, or application domain, the generated events adhere to the most recent EPCIS specification, i.e. EPCIS 2.0.

Let’s go through our OpenEPCIS test data generator tool to generate our first EPCIS test data

EPCIS implementation guidelines include numerous supply chain examples that illustrate the standard in action. To showcase the usage and generation of events, these supply chain systems have been designed using the OpenEPCIS Test Data Generator https://openepcis.io/docs/test-data-generator/, to demonstrate the usage and generation of the events.

Example 1: Assignment of Identifiers for EPCIS Event

To illustrate, here is a business process

  1. A manufacturer ships a pallet identified by an SSCC to shipping dock no.2 of building 10, noting the retailer’s purchase order and the manufacturer’s invoice
DimData ElementDesign Choice (Section 4.6)Actual EPCIS Event Contents
Event TypeObject Event
ActionOBSERVEOBSERVE
WhatEPC ListA list containing one element: the SSCC of the pallet (instance-levelidentification)urn:epc:id:sscc:9521141.0123456789
or
https://id.gs1.org/00/095211411234567892
WhenEvent TimeThe date and time at which the pallet is shipped2014-03-15T10:11:12Z
Event Time Zone OffsetThe time zone offset in effect where the pallet was shipped-05:00
WhereRead PointShipping dock #2 of building 10urn:epc:id:sgln:9521141.11111.2
or
https://id.gs1.org/414/9521141111116/254/2
Business Location(omitted)(omitted)
WhyBusiness StepShipping (from CBV)shipping
DispositionIn Transit (from CBV)in_transit
Business Transaction ListA list containing two business transaction references: the Retailer’s purchase order and the Manufacturer’s invoice.Type po
urn:epcglobal:cbv:bt:5012345678900:1234
Type inv
urn:epcglobal:cbv:bt:0614141111114:9876
Source ListA list containing one source of type “owning party,” indicating the Manufacturer as the owning party at the sourceType owning_party

as SGLN:
urn:epc:id:sgln:9521141.11111.0
or
https://id.gs1.org/414/9521141111116

as PGLN:
urn:epc:id:pgln:9521141.11111
or
https://id.gs1.org/417/9521141111116
Destination ListA list containing one source of type “owning party,” indicating the Retailer as the intended owning party at the destinationType owning_party

as SGLN:
urn:epc:id:sgln:9521345.67890.0
or
https://id.gs1.org/414/9521345678903

as PGLN:
urn:epc:id:pgln:9521345.67890
or
https://id.gs1.org/417/9521345678903

Design Template

Generated Event

EPCIS event for Assignment of Identifiers
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T16:14:41.26Z",
    "epcisBody": {
        "eventList": [{
            "type": "ObjectEvent",
            "eventTime": "2014-03-15T10:11:12+01:00",
            "eventTimeZoneOffset": "+01:00",
            "epcList": [
                "https://id.gs1.org/00/095211410123456789"
            ],
            "action": "OBSERVE",
            "bizStep": "shipping",
            "disposition": "in_transit",
            "readPoint": {
                "id": "https://id.gs1.org/414/9521141111116/254/2"
            },
            "bizTransactionList": [{
                    "type": "po",
                    "bizTransaction": "urn:epcglobal:cbv:bt:5012345678900:1234"
                },
                {
                    "type": "inv",
                    "bizTransaction": "urn:epcglobal:cbv:bt:0614141111114:9876"
                }
            ],
            "sourceList": [{
                "type": "owning_party",
                "source": "https://id.gs1.org/414/9521141111116"
            }],
            "destinationList": [{
                "type": "owning_party",
                "destination": "https://id.gs1.org/414/9521345678903"
            }]
        }]
    }
}

Example 2: Visibility Data Matrix

To illustrate, here is a business process

  1. Print and apply label (identified by an SGTIN)
  2. Print the pallet label (identified by an SSCC)
  3. Pack cases into pallet (Identified as parent SSCC of palletn,Children: SGTINs of cases)
  4. Ship the pallet (identified by an SSCC)
DimData ElementV1V2V3V4
DescriptionPrint and apply case labelPrint the pallet labelPack cases into palletShip the pallet
Event TypeObject EventObject EventAggregation EventObject Event
ActionADDADDADDOBSERVE
WhatEPC ListSGTIN of caseSSCC of palletParent: SSCC of
pallet
Children: SGTINs of
cases
SSCC of Pallet
WhenEvent TimeCurrent date/timeCurrent date/timeCurrent date/timeCurrent date/time
Event Time Zone OffsetLocal timezone
offset
Local timezone
offset
Local timezone
offset
Local timezone offset
WhereRead PointSGLN of packaging lineSGLN of packaging lineSGLN of packaging
line
SGLN of loading dock door
Business LocationGLN of factoryGLN of factoryGLN of factory(omitted)
WhyBusiness Stepcommissioningcommissioningpackingshipping
Dispositionactiveactivein_progressin_transit
Business Transaction List(omitted)(omitted)(omitted)Retailer’s GLN + PO #
Manufacturer’s GLN +
Invoice #
Source List(omitted)(omitted)(omitted)owning_party:
Manufacturer’s GLN or
PGLN
Destination List(omitted)(omitted)(omitted)owning_party: Retailer’s
GLN or PGLN

Design Template

Example_2_Visibility_Data_Matrix

Generated Event

EPCIS event for Visibility Data Matrix
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T16:15:22.40Z",
    "epcisBody": {
        "eventList": [{
                "type": "ObjectEvent",
                "eventTime": "2014-03-15T10:11:12+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/00/095211410123456789"
                ],
                "action": "ADD",
                "bizStep": "commissioning",
                "disposition": "active",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141123454"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/9521141000106"
                }
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2014-03-15T10:11:12+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/01/09521568256452/21/200"
                ],
                "action": "ADD",
                "bizStep": "commissioning",
                "disposition": "active",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141123454"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/9521141000106"
                }
            },
            {
                "type": "AggregationEvent",
                "eventTime": "2024-03-18T15:55:08+01:00",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/00/095211410123456789",
                "childEPCs": [
                    "https://id.gs1.org/01/09521568256452/21/200"
                ],
                "action": "ADD",
                "bizStep": "packing",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141123454"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/9521141000106"
                }
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2014-03-15T10:11:12+01:00",
                "eventTimeZoneOffset": "-05:00",
                "epcList": [
                    "https://id.gs1.org/00/095211410123456789"
                ],
                "action": "OBSERVE",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141456125"
                },
                "bizTransactionList": [{
                        "type": "po",
                        "bizTransaction": "urn:epcglobal:cbv:bt:5012345678900:1234"
                    },
                    {
                        "type": "inv",
                        "bizTransaction": "urn:epcglobal:cbv:bt:0614141111114:9876"
                    }
                ],
                "sourceList": [{
                    "type": "owning_party",
                    "source": "https://id.gs1.org/414/9521141111116"
                }],
                "destinationList": [{
                    "type": "owning_party",
                    "destination": "https://id.gs1.org/414/9521345678903"
                }]
            }
        ]
    }
}

Example 3: EPCIS Aggregation Event Information Content

To illustrate, here is a business process

  1. A shipper packs five homogeneous cases (each identified by an SGTIN) onto a pallet (identified by an SSCC).
  2. The shipper ships the pallet, only noting the pallet identifier.
  3. The receiver receives the pallet and also verifies all of the case identifiers.
  4. The receiver unpacks two cases from the pallet.
  5. The receiver unpacks the remaining cases from the pallet.
DimData ElementV1V2V3V4V5
DescriptionPack cases onto palletShip palletReceive palletUnpack two casesUnpack remaining cases
Event TypeAggregation EventObject EventAggregation EventAggregation EventAggregation Event
ActionADDOBSERVEOBSERVEDELETEDELETE
WhatEPC ListParent: SSCC of pallet
Children:
SGTINs of 5 cases
SSCC of palletParent: SSCC of pallet
Children:
SGTINs of 5 cases
Parent: SSCC of pallet
Children:
SGTINs of 2 cases
Parent: SSCC of pallet Children: (omitted)
WhyBusiness Steppackingshippingreceivingunpackingunpacking
Dispositionin progressin transitin progressin progressin progress

Design Template

Generated Event

EPCIS Aggregation Event Information Content
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-22T13:19:50.32Z",
    "epcisBody": {
        "eventList": [{
                "type": "AggregationEvent",
                "eventTime": "2024-03-22T14:05:43+01:00",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/00/095215680000000200",
                "childEPCs": [
                    "https://id.gs1.org/01/09521568256452/21/200",
                    "https://id.gs1.org/01/09521568256452/21/201",
                    "https://id.gs1.org/01/09521568256452/21/202",
                    "https://id.gs1.org/01/09521568256452/21/203",
                    "https://id.gs1.org/01/09521568256452/21/204"
                ],
                "action": "ADD",
                "bizStep": "packing",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141123454"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/9521141000106"
                }
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2024-03-22T14:07:45+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/00/095215680000000200"
                ],
                "action": "OBSERVE",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141456125"
                },
                "sourceList": [{
                    "type": "owning_party",
                    "source": "https://id.gs1.org/414/9521141111116"
                }],
                "destinationList": [{
                    "type": "owning_party",
                    "destination": "https://id.gs1.org/414/9521345678903"
                }]
            },
            {
                "type": "AggregationEvent",
                "eventTime": "2024-03-22T14:10:45+01:00",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/00/095215680000000200",
                "childEPCs": [
                    "https://id.gs1.org/01/09521568256452/21/200",
                    "https://id.gs1.org/01/09521568256452/21/201",
                    "https://id.gs1.org/01/09521568256452/21/202",
                    "https://id.gs1.org/01/09521568256452/21/203",
                    "https://id.gs1.org/01/09521568256452/21/204"
                ],
                "action": "OBSERVE",
                "bizStep": "receiving",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521345678958"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/9521345678903"
                }
            },
            {
                "type": "AggregationEvent",
                "eventTime": "2024-03-22T14:11:47+01:00",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/00/095215680000000200",
                "childEPCs": [
                    "https://id.gs1.org/01/09521568256452/21/200",
                    "https://id.gs1.org/01/09521568256452/21/201"
                ],
                "action": "DELETE",
                "bizStep": "unpacking",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521345678965"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/9521345678903"
                }
            },
            {
                "type": "AggregationEvent",
                "eventTime": "2024-03-22T14:13:31+01:00",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/00/095215680000000200",
                "childEPCs": [],
                "action": "DELETE",
                "bizStep": "unpacking",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521345678965"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/9521345678903"
                }
            }
        ]
    }
}

Example 4: EPCIS Aggregation Event Information Content for a Two-Level Hierarchy

To illustrate, here is a business process

Some business processes may involve multiple levels of aggregation; for example, items packed
into cases and those cases packed onto a pallet. In such cases, the parents of the inner
aggregations are the children of the outer aggregation.

  1. Packing items 1 – 5 into case 101 (Containing children SGTIN of items 1-5)
  2. Packing items 6 – 10 into case 102 (Containing children SGTIN of items 6-10)
  3. Packing items 11– 15 into case 103 (Containing children SGTIN of items 11-15)
  4. Pack cases 101, 102, and 103 onto pallet 1001(Parent: SSCC of pallet 1001 Children: SGTINs of cases 101 – 103)
DimData ElementV1V2V3V4

DescriptionPack items 1 – 5
into case 101
Pack items 6 – 10
into case 102
Pack items 11 – 15
into case 103
Pack cases 101, 102, and 103 onto pallet 1001
Event TypeAggregation EventAggregation EventAggregation EventAggregation Event
ActionADDADDADDADD
WhatEPC ListParent: SGTIN of
case 101
Children: SGTINs
of items 1 – 5
Parent: SGTIN of
case 102
Children: SGTINs of
items 6 – 10
Parent: SGTIN of
case 103
Children: SGTINs of
items 11 – 15
Parent: SSCC of pallet
1001
Children: SGTINs of
cases 101 – 103
WhyBusiness Steppackingpackingpackingpacking
Dispositionin_progressin_progresin_progressin_progress

Design Template

Generated Event

EPCIS Aggregation Event for a Two-Level Hierarchy
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T16:16:22.04Z",
    "epcisBody": {
        "eventList": [{
                "type": "AggregationEvent",
                "eventTime": "2024-03-18T05:39:54.977Z",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/01/09521568256452/21/101",
                "childEPCs": [
                    "https://id.gs1.org/01/09521568336451/21/1",
                    "https://id.gs1.org/01/09521568336451/21/2",
                    "https://id.gs1.org/01/09521568336451/21/3",
                    "https://id.gs1.org/01/09521568336451/21/4",
                    "https://id.gs1.org/01/09521568336451/21/5"
                ],
                "action": "ADD",
                "bizStep": "packing",
                "disposition": "in_progress"
            },
            {
                "type": "AggregationEvent",
                "eventTime": "2024-03-18T17:02:56.613Z",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/00/095211410000001001",
                "childEPCs": [
                    "https://id.gs1.org/01/09521568256452/21/101",
                    "https://id.gs1.org/01/09521568256452/21/102",
                    "https://id.gs1.org/01/09521568256452/21/103"
                ],
                "action": "ADD",
                "bizStep": "packing",
                "disposition": "in_progress"
            },
            {
                "type": "AggregationEvent",
                "eventTime": "2024-03-18T09:04:17.436Z",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/01/09521568256452/21/102",
                "childEPCs": [
                    "https://id.gs1.org/01/09521568336451/21/6",
                    "https://id.gs1.org/01/09521568336451/21/7",
                    "https://id.gs1.org/01/09521568336451/21/8",
                    "https://id.gs1.org/01/09521568336451/21/9",
                    "https://id.gs1.org/01/09521568336451/21/10"
                ],
                "action": "ADD",
                "bizStep": "packing",
                "disposition": "in_progress"
            },
            {
                "type": "AggregationEvent",
                "eventTime": "2024-03-18T08:37:03.655Z",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/01/09521568256452/21/103",
                "childEPCs": [
                    "https://id.gs1.org/01/09521568336451/21/11",
                    "https://id.gs1.org/01/09521568336451/21/12",
                    "https://id.gs1.org/01/09521568336451/21/13",
                    "https://id.gs1.org/01/09521568336451/21/14",
                    "https://id.gs1.org/01/09521568336451/21/15"
                ],
                "action": "ADD",
                "bizStep": "packing",
                "disposition": "in_progress"
            }
        ]
    }
}

Example 5: EPCIS Event Information Content for Example “Drop Shipment” Scenario

To illustrate, here is a business process

In this scenario, a pharmaceutical manufacturer M sells the product to a wholesaler W who in turn sells the product to a hospital H. Rather than physically
warehousing the product, the wholesaler arranges for M to ship directly to H. The wholesaler still retains ownership of the product, however, until a subsequent sale transaction with H takes place.

  1. Manufacturer M drop ships to Hospital H (identification by an SSCC), noting the destination of owning_party and possessing_party and with business step shipping
  2. Shipment arrives at Hospital H identification by SSCC of the logistic unit with business step arriving
DimData ElementV1V2

DescriptionManufacturer M drop ships to Hospital HShipment arrives at Hospital H
Event TypeObject EventObject Event
ActionOBSERVEOBSERVE
WhatEPC ListSSCC of logistic unitSSCC of logistic unit
WhereRead PointGLN of M’s distribution centerGLN of H’s receiving area
Business Location(omitted)GLN of H’s facility
WhyBusiness Stepshippingarriving
Dispositionin_transitin_progress
SourceType owning_party
GLN of M
Type owning_party
GLN of M
SourceType possessing_party
GLN of M
Type possessing_party
GLN of M
SourceType location
GLN of M’s distribution center
Type location
GLN of M’s distribution center
DestinationType owning_party
GLN of W
Type owning_party
GLN of W
DestinationType possessing_party
GLN of H
Type possessing_party
GLN of H
DestinationType location
GLN of H’s receiving area
Type location
GLN of H’s receiving area

Design Template

Generated Event

EPCIS Event for Drop Shipment Scenario
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T16:16:48.82Z",
    "epcisBody": {
        "eventList": [{
                "type": "ObjectEvent",
                "eventTime": "2024-03-18T09:31:10+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/00/095211410000000200"
                ],
                "action": "OBSERVE",
                "bizStep": "shipping",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141456125"
                },
                "sourceList": [{
                        "type": "owning_party",
                        "source": "https://id.gs1.org/414/9521141100004"
                    },
                    {
                        "type": "possessing_party",
                        "source": "https://id.gs1.org/414/9521141100004"
                    },
                    {
                        "type": "location",
                        "source": "https://id.gs1.org/414/9521141456125"
                    }
                ],
                "destinationList": [{
                        "type": "owning_party",
                        "destination": "https://id.gs1.org/414/9522920200199"
                    },
                    {
                        "type": "possessing_party",
                        "destination": "https://id.gs1.org/414/9522920200106"
                    },
                    {
                        "type": "location",
                        "destination": "https://id.gs1.org/414/9522999100307"
                    }
                ]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2024-03-19T09:31:10+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/00/095211410000000200"
                ],
                "action": "OBSERVE",
                "bizStep": "arriving",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141456125"
                },
                "sourceList": [{
                        "type": "owning_party",
                        "source": "https://id.gs1.org/414/9521141100004"
                    },
                    {
                        "type": "possessing_party",
                        "source": "https://id.gs1.org/414/9521141100004"
                    },
                    {
                        "type": "location",
                        "source": "https://id.gs1.org/414/9521141456125"
                    }
                ],
                "destinationList": [{
                        "type": "owning_party",
                        "destination": "https://id.gs1.org/414/9522920200199"
                    },
                    {
                        "type": "possessing_party",
                        "destination": "https://id.gs1.org/414/9522920200106"
                    },
                    {
                        "type": "location",
                        "destination": "https://id.gs1.org/414/9522999100307"
                    }
                ]
            }
        ]
    }
}

Example 6: EPCIS Event Information Content Using Class-Level Identification

To illustrate, here is a business process

  1. V1: Manufacturer creates 20 new product instances (each identified by GTIN and Lot only)
  2. V2: Manufacturer ships 10 product instances to a receiver
  3. V3: Manufacturer ships 10 more product instances to the same receiver
  4. V4: Receiver receives 10 product instances
DimData ElementV1V2V3V4
DescriptionManufacture 20 new product instancesShip 10 product instancesShip 10 more product instancesReceive 10 product instances
Event TypeObject EventObject EventObject EventObject Event
ActionADDOBSERVEOBSERVEOBSERVE
WhenEvent Time15 July, 10am16 July, 10am17 July, 10am25 July, 10am
WhatEPC Quantity ListGTIN X, Lot 12, 20 unitsGTIN X, Lot 12, 10 unitsGTIN X, Lot 12, 10 unitsGTIN X, Lot 12, 10 units
WhereRead PointSGLN of mfr lineSGLN of manufacturer’s loading dockSGLN of manufacturer’s loading dockSGLN of receiver’s loading dock
Business LocationGLN of manufacturer(omitted)(omitted)GLN of receiver
WhyBusiness Stepcreating_class_instanceshippingshippingreceiving
Dispositionactivein_transitin_transitin_progress

Design Template

Generated Event

Class-Level Identification EPCIS Event
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T16:17:13.95Z",
    "epcisBody": {
        "eventList": [{
                "type": "ObjectEvent",
                "eventTime": "2023-07-15T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "action": "ADD",
                "bizStep": "creating_class_instance",
                "disposition": "active",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141123454"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/9521141000106"
                },
                "quantityList": [{
                    "epcClass": "https://id.gs1.org/01/09521568256452/10/12",
                    "quantity": 20
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-07-16T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "action": "ADD",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141123997"
                },
                "quantityList": [{
                    "epcClass": "https://id.gs1.org/01/09521568256452/10/12",
                    "quantity": 10
                }],
                "sourceList": [{
                    "type": "owning_party",
                    "source": "https://id.gs1.org/414/9522141123109"
                }],
                "destinationList": [{
                    "type": "owning_party",
                    "destination": "https://id.gs1.org/414/9522543500102"
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-07-16T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "action": "ADD",
                "bizStep": "receiving",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9522543599199"
                },
                "quantityList": [{
                    "epcClass": "https://id.gs1.org/01/09521568256452/10/12",
                    "quantity": 10
                }],
                "sourceList": [{
                    "type": "owning_party",
                    "source": "https://id.gs1.org/414/9522141123109"
                }],
                "destinationList": [{
                    "type": "owning_party",
                    "destination": "https://id.gs1.org/414/9522543500102"
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-07-17T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "action": "ADD",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141123997"
                },
                "quantityList": [{
                    "epcClass": "https://id.gs1.org/01/09521568256452/10/12",
                    "quantity": 10
                }],
                "sourceList": [{
                    "type": "owning_party",
                    "source": "https://id.gs1.org/414/9522141123109"
                }],
                "destinationList": [{
                    "type": "owning_party",
                    "destination": "https://id.gs1.org/414/9522543500102"
                }]
            }
        ]
    }
}

Example 7: EPCIS Event Information Content for Aggregation of Children Identified at Class Level

To illustrate, here is a business process

  • Homogeneous cases of product are packed onto pallet and shipped
  • The shipped pallet is identified by SSCC
  • At the receiver end the shipment is received and identified by the SSCC of pallet
DimData ElementV1V2V3

DescriptionPack cases onto palletShip palletReceive pallet
Event TypeAggregation EventObject EventObject Event
ActionADDOBSERVEOBSERVE
WhatEPC ListParent: SSCC of pallet
Children:
GTIN X, Lot 12,10 units
GTIN Y, Lot 52, 20 units
SSCC of palletSSCC of pallet
WhyBusiness
Step
packingshippingreceiving

Dispositionin_progress (CBV)In TransitIn Progress

Design Template

Generated Event

EPCIS Event for Aggregation of Children Identified at Class Level EPCIS Event
{
  "@context": [
    "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
  ],
  "type": "EPCISDocument",
  "schemaVersion": "2.0",
  "creationDate": "2024-03-20T16:18:06.73Z",
  "epcisBody": {
    "eventList": [
      {
        "type": "AggregationEvent",
        "eventTime": "2024-03-15T13:12:34+01:00",
        "eventTimeZoneOffset": "+01:00",
        "parentID": "https://id.gs1.org/00/095211410000000200",
        "action": "ADD",
        "bizStep": "packing",
        "disposition": "in_progress",
        "readPoint": {
          "id": "https://id.gs1.org/414/9521141123454"
        },
        "childQuantityList": [
          {
            "epcClass": "https://id.gs1.org/01/09521568251204/10/12",
            "quantity": 10
          },
          {
            "epcClass": "https://id.gs1.org/01/09521568251211/10/52",
            "quantity": 20
          }
        ]
      },
      {
        "type": "ObjectEvent",
        "eventTime": "2024-03-15T16:15:29+01:00",
        "eventTimeZoneOffset": "+01:00",
        "epcList": [
          "https://id.gs1.org/00/095211410000000200"
        ],
        "action": "OBSERVE",
        "bizStep": "shipping",
        "disposition": "in_transit",
        "readPoint": {
          "id": "https://id.gs1.org/414/9521141123690"
        },
        "sourceList": [
          {
            "type": "owning_party",
            "source": "https://id.gs1.org/414/9521141123102"
          }
        ],
        "destinationList": [
          {
            "type": "owning_party",
            "destination": "https://id.gs1.org/414/9521141321997"
          }
        ]
      },
      {
        "type": "ObjectEvent",
        "eventTime": "2024-03-18T09:00:29+01:00",
        "eventTimeZoneOffset": "+01:00",
        "epcList": [
          "https://id.gs1.org/00/095211410000000200"
        ],
        "action": "OBSERVE",
        "bizStep": "receiving",
        "disposition": "in_progress",
        "readPoint": {
          "id": "https://id.gs1.org/414/9521141321904"
        },
        "sourceList": [
          {
            "type": "owning_party",
            "source": "https://id.gs1.org/414/9521141123102"
          }
        ],
        "destinationList": [
          {
            "type": "owning_party",
            "destination": "https://id.gs1.org/414/9521141321997"
          }
        ]
      }
    ]
  }
}

Example 8: EPCIS Aggregation Event Information Content with Children Identified at Both Instance and Class Level

To illustrate, here is a business process

It is possible for one EPCIS event to include a mix of both instance-level and class-level
identification.

  1. A pallet packed may include one product identified by SGTIN, another by GTIN+Lot, and a third identified only by GTIN
  2. The shipped pallet is identified by SSCC
  3. At the receiver end the shipment is received and identified by the SSCC of pallet
DimData ElementV1V2V3
DescriptionPack cases onto palletShip palletReceive pallet
Event TypeAggregation EventObject EventObject Event
ActionADDOBSERVEOBSERVE
WhatEPC ListParent: SSCC of pallet Children:
GTIN X, Serial 101
GTIN X, Serial 102
GTIN X, Serial 103
GTIN Y, Lot 12, 10 units
GTIN Z, 20 units
SSCC of palletSSCC of pallet
WhyBusiness Steppackingshippingreceiving
Dispositionin_progress(CBV)in_transitin_progress

Design Template

Generated Event

EPCIS Event for Children Identified at Instance and Class Level
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T16:18:38.96Z",
    "epcisBody": {
        "eventList": [{
                "type": "AggregationEvent",
                "eventTime": "2024-03-15T13:12:34+01:00",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/00/095211410000000200",
                "childEPCs": [
                    "https://id.gs1.org/01/09521568251204/21/101",
                    "https://id.gs1.org/01/09521568251204/21/102",
                    "https://id.gs1.org/01/09521568251204/21/103"
                ],
                "action": "ADD",
                "bizStep": "packing",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141123454"
                },
                "childQuantityList": [{
                        "epcClass": "https://id.gs1.org/01/09521568251211/10/12",
                        "quantity": 10
                    },
                    {
                        "epcClass": "https://id.gs1.org/01/09521568251228/10/52",
                        "quantity": 20
                    }
                ]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2024-03-15T16:15:29+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/00/095211410000000200"
                ],
                "action": "OBSERVE",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141123690"
                },
                "sourceList": [{
                    "type": "owning_party",
                    "source": "https://id.gs1.org/414/9521141123102"
                }],
                "destinationList": [{
                    "type": "owning_party",
                    "destination": "https://id.gs1.org/414/9521141321997"
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2024-03-18T09:00:29+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/00/095211410000000200"
                ],
                "action": "OBSERVE",
                "bizStep": "receiving",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141321904"
                },
                "sourceList": [{
                    "type": "owning_party",
                    "source": "https://id.gs1.org/414/9521141123102"
                }],
                "destinationList": [{
                    "type": "owning_party",
                    "destination": "https://id.gs1.org/414/9521141321997"
                }]
            }
        ]
    }
}

Example 9: EPCIS Event Information Content Showing Instance/Lot Master Data (ILMD)

To illustrate, here is a business process

When an object is identified at the instance level, its lot number (if any) is a master data attribute of that instance

  1. The manufacturer produces new products identified by an SGTIN along with expiration date and lot number
  2. The products are shipped by loading on the manufacturer’s loading dock
  3. When the shipment is received the products are identified by their SGTIN, if the receiver wishes to obtain the master data for the product instance it receives, it queries the manufacturer for the event having the specified SGTIN
DimData ElementV1V2V3
DescriptionManufacture new product instanceShip productReceive product
Event TypeObject EventObject EventObject Event
ActionADDOBSERVEOBSERVE
WhatEPC ListSGTIN of product instanceSGTIN of product instanceSGTIN of product instance
WhereRead PointSGLN of manufacturing lineSGLN of manufacturer’s loading dockSGLN of receiver’s loading dock
Business LocationGLN of manufacturer(omitted)GLN of receiver
WhyBusiness Stepcommissioningshippingreceiving
Dispositionactivein_transitin_progress
ILMD: ExpiryExpiration date of product instance
ILMD: LotLot number of product instance

Design Template

Generated Event

EPCIS Event Showing Instance/Lot Master Data
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T16:19:04.87Z",
    "epcisBody": {
        "eventList": [{
                "type": "ObjectEvent",
                "@context": [{
                    "gs1-ilmd": "https://gs1-ilmd.example.com"
                }],
                "eventTime": "2024-03-15T13:52:50+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/01/09521568251228/21/100"
                ],
                "action": "ADD",
                "bizStep": "commissioning",
                "disposition": "active",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141123454"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/9521141000106"
                },
                "ilmd": {
                    "gs1-ilmd:Product": {
                        "gs1-ilmd:expirationDate": "2024-04-15",
                        "gs1-ilmd:hasBatchLotNumber": "100"
                    }
                }
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2024-03-16T13:52:50+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/01/09521568251228/21/100"
                ],
                "action": "ADD",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141456125"
                }
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2024-03-17T13:52:50+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/01/09521568251228/21/100"
                ],
                "action": "ADD",
                "bizStep": "receiving",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9522565856416"
                }
            }
        ]
    }
}

Example 10: EPCIS Transformation Event Information Content

To illustrate, here is a business process

Inputs:

  • Tuna loin (each loin is individually serialized and identified by GTIN X plus serial – instance-level)
  • Olive oil (identified by GTIN Y + Lot – class level)
  • Empty can (identified by GTIN Z, in order to distinguish two possible suppliers of cans)

Outputs:

  • Canned tuna (identified by GTIN Q + Lot – class level)
DimData ElementV1
DescriptionManufacture canned tuna from raw ingredients
Event TypeTransformation Event
WhatEPC ListInputs:
GTIN X, Serial 10
GTIN X, Serial 45
GTIN X, Serial 97
GTIN Y, Lot 12, 10 liters
GTIN Z, 100 units
Outputs: GTIN Q, Lot 999, 100 units
WhyBusiness Stepcreating_class_instance
Dispositionactive

Design Template

Generated Event

EPCIS Transformation Event
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T16:19:35.53Z",
    "epcisBody": {
        "eventList": [{
            "type": "TransformationEvent",
            "eventTime": "2024-03-19T15:39:19+01:00",
            "eventTimeZoneOffset": "+01:00",
            "inputEPCList": [
                "https://id.gs1.org/01/09521568251204/21/10",
                "https://id.gs1.org/01/09521568251204/21/45",
                "https://id.gs1.org/01/09521568251204/21/97"
            ],
            "inputQuantityList": [{
                    "epcClass": "https://id.gs1.org/01/09521568251211/10/12",
                    "quantity": 10,
                    "uom": "LTR"
                },
                {
                    "epcClass": "https://id.gs1.org/01/09521568251228",
                    "quantity": 100
                }
            ],
            "outputQuantityList": [{
                "epcClass": "https://id.gs1.org/01/09521568251235/10/999",
                "quantity": 100
            }],
            "bizStep": "creating_class_instance",
            "disposition": "active"
        }]
    }
}

Example 11: EPCIS Transformation Event Information Content Linked Via Transformation ID

To illustrate, here is a business process

Consider a process that mixes input ingredients to create cans of paint, where a production run involving the same mixing vat runs continuously for a week. The process may produce cans of paint on Monday, and those cans are shipped on Tuesday,even though more cans from the same vat are extracted on Wednesday and Thursday, with the entire transformation completing on Friday. In this situation, it may be necessary to have an EPCIS event to represent Monday’s production so that the new identifiers for the cans of paint are available to be used in a shipping event generated on Tuesday.
To model such situations, a transformation event may be split into multiple EPCIS events. To maintain the relationship between all inputs and outputs, the multiple transformation events are linked by using a transformation identifier

  1. To produce a batch of cans, a manufacturer initiates the process by adding all the ingredients to a batch by linking Transformation ID Xform 123
  2. The first set of cans is produced and the Transformation ID Xform 123 is linked
  3. The first set of cans is shipped by linking Transformation ID Xform 123
  4. Again the process is continued and produces the remaining cans and the Transformation ID Xform 123 is linked to them
DimData ElementV1V2V3V4
DescriptionAdd first set of ingredients to new batchWithdraw first set of cansShip first set of cansAdd remaining ingredients and finish manufacturing
Event TypeTransformation EventTransformation EventObject EventTransformation Event
WhatTransformation IDXform 123Xform 123Xform 123
EPC ListInputs:
GTIN X, Serial 10
GTIN X, Serial 45
GTIN Y, Lot 12, 5 litres
GTIN Z, 40 units
Outputs:
(omitted)
Inputs:
(omitted)
Outputs:
GTIN Q,Lot 999,30 units
GTIN Q,Lot 999,30 unitsInputs:
GTIN X, Serial 97
GTIN Y, Lot 12, 5 litres
GTIN Z, 60 units
Outputs:
GTIN Q, Lot 999, 70 units
WhyBusiness Stepcreating_class_instancecreating_class_instanceshippingcreating_class_instance
Dispositionactiveactivein_transitactive

Design Template

Generated Event

EPCIS Transformation Event Linked Via Transformation ID
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T16:20:20.36Z",
    "epcisBody": {
        "eventList": [{
                "type": "TransformationEvent",
                "eventTime": "2024-03-19T16:26:05+01:00",
                "eventTimeZoneOffset": "+01:00",
                "inputEPCList": [
                    "https://id.gs1.org/01/09521568251204/21/10",
                    "https://id.gs1.org/01/09521568251204/21/45"
                ],
                "inputQuantityList": [{
                        "epcClass": "https://id.gs1.org/01/09521568251211/10/12",
                        "quantity": 5,
                        "uom": "LTR"
                    },
                    {
                        "epcClass": "https://id.gs1.org/01/09521568251228",
                        "quantity": 40
                    }
                ],
                "transformationID": "https://xid.example.com/Xform123",
                "bizStep": "creating_class_instance",
                "disposition": "active"
            },
            {
                "type": "TransformationEvent",
                "eventTime": "2024-03-19T15:12:19+01:00",
                "eventTimeZoneOffset": "+01:00",
                "outputQuantityList": [{
                    "epcClass": "https://id.gs1.org/01/09521568251235/10/999",
                    "quantity": 30
                }],
                "transformationID": "https://xid.example.com/Xform123",
                "bizStep": "creating_class_instance",
                "disposition": "active"
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2024-03-19T15:56:21+01:00",
                "eventTimeZoneOffset": "+01:00",
                "action": "ADD",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "quantityList": [{
                    "epcClass": "https://id.gs1.org/01/09521568251235/10/999",
                    "quantity": 30
                }]
            },
            {
                "type": "TransformationEvent",
                "eventTime": "2024-03-19T15:39:19+01:00",
                "eventTimeZoneOffset": "+01:00",
                "inputEPCList": [
                    "https://id.gs1.org/01/09521568251204/21/97"
                ],
                "inputQuantityList": [{
                        "epcClass": "https://id.gs1.org/01/09521568251211/10/12",
                        "quantity": 5,
                        "uom": "LTR"
                    },
                    {
                        "epcClass": "https://id.gs1.org/01/09521568251228",
                        "quantity": 60
                    }
                ],
                "outputQuantityList": [{
                    "epcClass": "https://id.gs1.org/01/09521568251235/10/999",
                    "quantity": 70
                }],
                "transformationID": "https://xid.example.com/Xform123",
                "bizStep": "creating_class_instance",
                "disposition": "active"
            }
        ]
    }
}

Example 12: EPCIS Event Information Content for Simple Digital Coupon Business Process

To illustrate, here is a business process:

  1. V1: A customer is issued a digital coupon by a coupon issuer. Typically the coupon issuer is a
    retailer, but it could also be a manufacturer or a third party. The coupon is often issued to the
    customer via a mobile application that the customer uses on his device. The coupon’s SGCN is
    stored with that application for use in the next step. An EPCIS event is generated to indicate
    that the coupon is now active.
  2. V2: The customer redeems the coupon at a point-of-sale terminal during checkout at a retail
    store (whether brick-and-mortar or online). The point-of-sale application verifies that the
    coupon is valid and that the conditions of the offer are met; if so, the coupon is redeemed and
    an EPCIS event generated to indicate that the coupon is no longer active.
    These two events are indicated in EPCIS using a business step of commissioning and
    decommissioning, respectively.
DimData ElementV1V2
DescriptionIssue a digital couponRedeem a digital coupon
Event TypeObject EventObject Event
ActionADDDELETE
WhenEvent Time15 July, 10am16 July, 10am
WhatEPCSGCN XSGCN X
WhereRead PointSGLN of coupon issuer (typically a party GLN if there is no physical location involved, but could be SGLN of a physical location such as a kiosk where the coupon is dispensed)SGLN of retailer point-of-sale terminal (or a party GLN if there is no physical location involved, as in an online sale)
Business Location(omitted)(omitted)
WhyBusinesscommissioningdecommissioning
Step
Dispositionactiveinactive
ILMD(see below)(none)

Design Template

Generated Event

EPCIS Event for Digital Coupon Business Process
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T16:21:00.44Z",
    "epcisBody": {
        "eventList": [{
                "type": "ObjectEvent",
                "@context": [{
                    "loyalty-card": "https://loyalty-card.example.com/"
                }],
                "eventTime": "2023-07-15T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/255/95211410000000000062544"
                ],
                "action": "ADD",
                "bizStep": "commissioning",
                "disposition": "active",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141123454"
                },
                "ilmd": {
                    "loyalty-card:redeemDate": "16-07-2022"
                }
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-07-16T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/255/95211410000000000062544"
                ],
                "action": "DELETE",
                "bizStep": "decommissioning",
                "disposition": "inactive",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9522555222887"
                }
            }
        ]
    }
}

Example 13:EPCIS Event information content illustrating user/vendor extensions

To illustrate, here is a business process

An EPCIS event that has an additional data element to record the badge number of a stakeholder inspecting the objects, as might be appropriate for an inspection
made while an item is in transit

DimData ElementV1
DescriptionInspection of objects
Event TypeObject Event
ActionOBSERVE
WhenEvent Time15 January 2023, 10am EST
WhatEPC Quantity ListGTIN X, Serial 101
GTIN X, Serial 102
GTIN X, Serial 103
WhereRead PointGeolocation: (41°40′21″N
86°15′19″W)
Business Location(omitted)
WhyBusiness Stepinspecting
Dispositionin_progress
Extension: inspector_badge_nr244301128

Design Template

Generated Event

EPCIS Event illustrating user/vendor extensions
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-23T13:58:34.98Z",
    "epcisBody": {
        "eventList": [{
            "type": "ObjectEvent",
            "@context": [{
                "myvoc": "http://myvoc.example.org/"
            }],
            "eventTime": "2023-01-15T10:00:00+01:00",
            "eventTimeZoneOffset": "+01:00",
            "epcList": [
                "https://id.gs1.org/01/09521141174739/21/101",
                "https://id.gs1.org/01/09521141174739/21/102",
                "https://id.gs1.org/01/09521141174739/21/103"
            ],
            "action": "OBSERVE",
            "bizStep": "inspecting",
            "disposition": "in_progress",
            "readPoint": {
                "id": "geo:41.6725,-86.255278"
            },
            "myvoc:inspector_badge_nr": "244301128"
        }]
    }
}

Example 14:Correcting an error by adding an ordinary event with a simple addition

To illustrate, here is a business process

Company X records an EPCIS event asserting that serial numbers 101, 102, and 103 of some product were shipped to Company Y. Company Y receives the shipment and finds serial
number 104 in addition to serial numbers 101, 102, 103. In discussion with Company X, it is agreed that serial 104 was indeed shipped and that the shipping event was in error.
The remediation is that Company X records a new EPCIS event asserting that serial number 104 was shipped, with similar contextual information as the original event.

DimData ElementV1V2

DescriptionShip 3 product
instances, not realising
that physical shipment
includes a fourth
instance
Additional event
recognising that the
fourth instance was
shipped, too
Event TypeObject EventObject Event
ActionOBSERVEOBSERVE
WhenEvent Time15 July, 10am15 July, 10am
WhatEPC ListGTIN X, Serial 101, 102, 103GTIN X, Serial 104
WhereRead PointSGLN of manufacturer’s
loading dock
SGLN of
manufacturer’s loading
dock
Business
Location
(omitted)(omitted)
WhyBusiness Stepshippingshipping
Dispositionin_transitin_transit
Sourceowning_party: GLN of Company Xowning_party: GLN of Company X
Destinationowning_party: GLN of
Company Y
owning_party: GLN of
Company Y

Design Template

Generated Event

EPCIS event to Correct an error by adding simple addition
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-23T13:39:38.18Z",
    "epcisBody": {
        "eventList": [{
                "type": "ObjectEvent",
                "eventTime": "2023-07-15T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/01/09521141174739/21/101",
                    "https://id.gs1.org/01/09521141174739/21/102",
                    "https://id.gs1.org/01/09521141174739/21/103"
                ],
                "action": "OBSERVE",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111116"
                },
                "sourceList": [{
                    "type": "owning_party",
                    "source": "https://id.gs1.org/414/9521141111116/254/10"
                }],
                "destinationList": [{
                    "type": "owning_party",
                    "destination": "https://id.gs1.org/414/9521141111116/254/20"
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-07-15T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/01/09521141174739/21/104"
                ],
                "action": "OBSERVE",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111116"
                },
                "sourceList": [{
                    "type": "owning_party",
                    "source": "https://id.gs1.org/414/9521141111116/254/10"
                }],
                "destinationList": [{
                    "type": "owning_party",
                    "destination": "https://id.gs1.org/414/9521141111116/254/20"
                }]
            }
        ]
    }
}

Example 15: Correction using an ordinary event – corrective business step

To illustrate, here is a business process

Company X records an EPCIS event asserting that serial numbers 101, 102, and
103 of some product were shipped to Company Y. Company Y receives the shipment and finds only
serial numbers 101, 102. In discussion with Company X, it is agreed that serial number 103 was not
shipped but remains in Company X’s inventory. They agree to reverse the billing for the third
product.
The remediation is that Company X records a new EPCIS event asserting that the shipment of serial
103 is voided. This uses a business step void_shipping which is defined specifically for this
purpose. As the new event only refers to serial number 103, it does not affect the shipping event for
the other serial numbers 101 and 102, so processing of those serial numbers can continue even
before the void_shipping event is received.

DimData ElementV1V2
DescriptionShip 3 product instances, not realising that physical shipment is missing one instanceAdditional event to indicate that the third instance was not actually shipped
Event TypeObject EventObject Event
ActionOBSERVEOBSERVE
WhenEvent Time15 July, 10am18 July, 2pm
WhatEPC ListGTIN X, Serial 101, 102, 103GTIN X, Serial 103
WhereRead PointSGLN of manufacturer’s loading dockSGLN of manufacturer’s loading dock
Business Location(omitted)SGLN of manufacturer’s warehouse
WhyBusinessshippingvoid_shipping
Step
Dispositionin_transitin_progress
Sourceowning_party: GLN of Company Xowning_party: GLN of Company X
Destinationowning_party: GLN of Company Yowning_party: GLN of Company Y

Design Template

Generated Event

EPCIS event to Correct an error by adding an ordinary event with a corrective business step
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T15:55:04.63Z",
    "epcisBody": {
        "eventList": [{
                "type": "ObjectEvent",
                "eventTime": "2023-07-15T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/01/95211411747363/21/101",
                    "https://id.gs1.org/01/95211411747363/21/102",
                    "https://id.gs1.org/01/95211411747363/21/103"
                ],
                "action": "OBSERVE",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111116"
                },
                "sourceList": [{
                    "type": "owning_party",
                    "source": "https://id.gs1.org/414/9521141111116/254/10"
                }],
                "destinationList": [{
                    "type": "owning_party",
                    "destination": "https://id.gs1.org/414/9521141111116/254/50"
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-07-18T14:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/01/95211411747363/21/103"
                ],
                "action": "OBSERVE",
                "bizStep": "void_shipping",
                "disposition": "in_progress",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111116"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/9521141111116"
                },
                "sourceList": [{
                    "type": "owning_party",
                    "source": "https://id.gs1.org/414/9521141111116/254/10"
                }],
                "destinationList": [{
                    "type": "owning_party",
                    "destination": "https://id.gs1.org/414/9521141111116/254/50"
                }]
            }
        ]
    }
}

Example 16: Correcting an error by adding an error declaration event

To illustrate, here is a business process

Company X records an EPCIS event to assert that serial number 101 of product X was destroyed. This event is an Object Event with action = DELETE. Later it is discovered that serial
101 is still in storage, not destroyed. An ordinary event cannot be used to amend the history, because the semantics of action DELETE for an Object Event specify that “the objects … should not
appear in subsequent events.”
The remediation is to issue an error declaration event. This looks just like the original, erroneous event, but with the addition of an error declaration section.

DimData ElementV1V2
DescriptionDestroy one instance of Product X, not realizing that this instance was not destroyedAdditional event to assert that the first event is in error
Event TypeObject EventObject Event
ActionDELETEDELETE
Error DeclarationDeclaration Time17 July, 2pm
Reasondid_not_occur
WhenEvent Time15 July, 10am15 July, 10am
WhatEPC ListGTIN X, Serial 101GTIN X, Serial 101
WhereRead PointSGLN of warehouseSGLN of warehouse
Business Location(omitted)(omitted)
WhyBusiness Stepdestroyingdestroying
Dispositiondestroyeddestroyed

Design Template

Generated Event

EPCIS event for adding an error declaration correct an error
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-20T15:19:09.71Z",
    "epcisBody": {
        "eventList": [{
                "type": "ObjectEvent",
                "eventTime": "2023-07-15T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/01/95211411747363/21/101"
                ],
                "action": "DELETE",
                "bizStep": "destroying",
                "disposition": "destroyed",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111116"
                }
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-07-15T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "errorDeclaration": {
                    "declarationTime": "2023-07-17T14:00:00+01:00",
                    "reason": "did_not_occur"
                },
                "epcList": [
                    "https://id.gs1.org/01/95211411747363/21/101"
                ],
                "action": "DELETE",
                "bizStep": "destroying",
                "disposition": "destroyed",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111116"
                }
            }
        ]
    }
}

Example 17: Declaring a prior event to be in error, with a corrective event

To illustrate, here is a business process

Company X records an EPCIS event asserting that several products have been shipped, indicating Purchase Order 123 as a business transaction in the “why” dimension. Company Y receives the
products and records a receiving event. Only then it is discovered that the purchase order reference in the shipping event is wrong: it says PO 456 instead of 123. This could be remediated using
ordinary EPCIS events by Company X recording a “void shipment” event followed by a “shipping” event with the correct PO #. But this is rather undesirable from the perspective of the overall trace,
especially given that there is already a receiving event
The remediation is to issue an error declaration event together with a corrective event. The error declaration looks just like the original, erroneous event, but with the addition of an error declaration
section. The corrective event is a corrected version of the original event. Optionally, the corrective event can be given a unique event ID, and referenced from the error declaration event.

DimData ElementV1V2V3
DescriptionShip products, not realising that the PO number in the business transaction section is incorrectAdditional event to assert that the first event is in errorCorrected shipping event
Event TypeObject EventObject EventObject Event
ActionOBSERVEOBSERVEOBSERVE
Event IDUUID 692…6bd
Error DeclarationDeclaration Time17 July, 1pm
Reasonincorrect_data
Corrective Event IDsUUID 692…6bd
WhenEvent Time15 July, 10am15 July, 10am15 July, 10am
WhatEPC ListGTIN X, Serial 101, 102, 103GTIN X, Serial 101, 102, 103GTIN X, Serial 101, 102, 103
WhereRead PointSGLN of warehouseSGLN of warehouseSGLN of warehouse
Business Location(omitted)(omitted)(omitted)
WhyBusiness Stepshippingshippingshipping
Dispositionin_transitin_transitin_transit
Business TransactionsPO #456PO #456PO #123

Design Template

Generated Event

EPCIS event declaring a prior event to be in error with a corrective event
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-18T15:27:49.24Z",
    "epcisBody": {
        "eventList": [{
                "type": "ObjectEvent",
                "eventTime": "2023-07-15T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/01/09526784378438/21/101",
                    "https://id.gs1.org/01/09526784378438/21/102",
                    "https://id.gs1.org/01/09526784378438/21/103"
                ],
                "action": "OBSERVE",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/0952114111113"
                },
                "bizTransactionList": [{
                    "type": "po",
                    "bizTransaction": "urn:epcglobal:cbv:bt:456"
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-07-15T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "errorDeclaration": {
                    "declarationTime": "2023-07-17T13:00:00+01:00",
                    "reason": "incorrect_data",
                    "correctiveEventIDs": [
                        "urn:uuid:692d95fc-9457-4a51-bd6a-0bba133846bd"
                    ]
                },
                "epcList": [
                    "https://id.gs1.org/01/09526784378438/21/101",
                    "https://id.gs1.org/01/09526784378438/21/102",
                    "https://id.gs1.org/01/09526784378438/21/103"
                ],
                "action": "DELETE",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/0952156825641"
                },
                "bizTransactionList": [{
                    "type": "po",
                    "bizTransaction": "urn:epcglobal:cbv:bt:456"
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-07-15T10:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/01/09526784378438/21/101",
                    "https://id.gs1.org/01/09526784378438/21/102",
                    "https://id.gs1.org/01/09526784378438/21/103"
                ],
                "action": "OBSERVE",
                "bizStep": "shipping",
                "disposition": "in_transit",
                "readPoint": {
                    "id": "https://id.gs1.org/414/0952156825641"
                },
                "bizTransactionList": [{
                    "type": "po",
                    "bizTransaction": "urn:epcglobal:cbv:bt:123"
                }]
            }
        ]
    }
}

Example 18: Installing components/assemblies into larger items

To illustrate, here is a business process

Presume a pool operator of reusable plastic trays wants to properly document the installation of sensor devices (with e.g. a built-in GPS module and temperature
sensor) into its trays. The reason could consist of the need to effectively identify all assets that are equipped with specific sensor devices/models in case the latter were not exactly calibrated. In
addition, information on built-in sensor devices may also be enquired by customs authorities. In such a scenario, the installing EPCIS event could be modeled as follows

EPCIS dimensionData ElementV1
DescriptionInstalling a sensor device in a reusable plastic tray
Event TypeAssociation Event
ActionADD
WheneventTime12 October, 08:45 am
WhatparentIDGRAI of tray
childEPCsGIAI of sensor device
readPointGLN of maintenance area
bizStepinstalling

Design Template

Generated Event

Installing components/assemblies into larger items
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-18T10:08:12.17Z",
    "epcisBody": {
        "eventList": [{
            "type": "AssociationEvent",
            "eventTime": "2023-10-12T08:45:00+01:00",
            "eventTimeZoneOffset": "+01:00",
            "parentID": "https://id.gs1.org/8003/0952156550017200",
            "childEPCs": [
                "https://id.gs1.org/8004/09521141100"
            ],
            "action": "ADD",
            "bizStep": "installing",
            "readPoint": {
                "id": "https://id.gs1.org/414/0952114111113"
            }
        }]
    }
}

Example 19:Installing components/assemblies into physical locations

To illustrate, here is a business process

The company that equips a cold storage room with one or several temperature sensor devices, the corresponding EPCIS event may be modeled as follows

EPCIS dimensionData ElementV1
DescriptionInstalling a sensor device in a reusable plastic tray
Event TypeAssociation Event
ActionADD
WheneventTime14 October, 10:55 am
WhatparentIDGLN of cold storage room
childEPCsGIAI(s) of sensor device(s)
readPointGLN of maintenance area
bizStepinstalling

Design Template

Generated Event

EPCIS event for installing components/assemblies into physical locations
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-18T09:27:26.83Z",
    "epcisBody": {
        "eventList": [{
            "type": "AssociationEvent",
            "eventTime": "2023-10-12T08:45:00+01:00",
            "eventTimeZoneOffset": "+01:00",
            "parentID": "https://id.gs1.org/8003/0952156550017200",
            "childEPCs": [
                "https://id.gs1.org/8004/09521141100"
            ],
            "action": "ADD",
            "bizStep": "installing",
            "readPoint": {
                "id": "https://id.gs1.org/414/0952114111113"
            }
        }]
    }
}

Example 20: Control/prove temperature compliance

To illustrate, here is a business process

Suppose an organization that trades temperature-sensitive goods (e.g. cheese, wine, pharmaceutical products) has set up the necessary hardware to capture both identities as well
as the temperature values of items when the latter is in the company’s custody. Now, if this organization wants to provide that data to internal or external stakeholders (e.g. the
company’s quality assurance department or trading partners that wish to ascertain if specific items were handled/transported properly), it makes a lot of sense to use a standard format from the
outset.
Typical critical tracing events accommodating sensor data can easily be modeled as EPCIS events.

EPCIS dimensionData ElementV1V2V3V4
DescriptionMove logistics unit to interim storage roomMove logistics into cold storage roomMove logistics out of cold storage roomDaily sensor reporting of cold storage room
Event TypeObject EventObject EventObject EventObject Event
ActionOBSERVEOBSERVEOBSERVEOBSERVE
WheneventTime15 June, 08:00 am15 June, 08:15 am15 June, 05:45 pm15 June, 11:59 pm
WhatepcListSSCC of logistics unitSSCC of logistics unitSSCC of logistics unit
readPointGLN of receiving areaGLN of interim storage roomGLN of cold storage roomGLN of cold storage room
bizLocationGLN of interim storage roomGLN of cold storage roomGLN of shipping area
bizStepstoringstoringstoringSensor_reporti ng
sensorElement
sensorReport
startTime15 June 07:55 am15 June 08:10 am15 June 05:35 pm14 June 11:59 pm
endTime15 June 07:59 am15 June 08:14 am15 June 05:55 pm15 June 11:59 pm
typeTemperatur eTemperatur eTemperatur eTemperature
minValue1212.19.29.1
maxValue12.112.29.29.4
uomCELCELCELCEL

Design Template

Generated Event

EPCIS event of sensor report for control/prove temperature compliance
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-17T14:05:39.64Z",
    "epcisBody": {
        "eventList": [{
                "type": "ObjectEvent",
                "eventTime": "2023-06-15T08:00:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/00/095211410000000200"
                ],
                "action": "OBSERVE",
                "bizStep": "storing",
                "readPoint": {
                    "id": "https://id.gs1.org/414/0952114111113"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/0952114111113"
                },
                "sensorElementList": [{
                    "sensorMetadata": {
                        "startTime": "2023-06-15T06:59:00Z",
                        "endTime": "2023-06-15T06:55:00Z"
                    },
                    "sensorReport": [{
                        "type": "Temperature",
                        "minValue": 12,
                        "maxValue": 12.1,
                        "uom": "CEL"
                    }]
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-06-15T08:15:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/00/095211410000000200"
                ],
                "action": "OBSERVE",
                "bizStep": "storing",
                "readPoint": {
                    "id": "https://id.gs1.org/414/0952114111113"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/0952114111113"
                },
                "sensorElementList": [{
                    "sensorMetadata": {
                        "startTime": "2023-06-15T07:14:00Z",
                        "endTime": "2023-06-15T07:10:00Z"
                    },
                    "sensorReport": [{
                        "type": "Temperature",
                        "minValue": 12.1,
                        "maxValue": 12.2,
                        "uom": "CEL"
                    }]
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-06-15T17:45:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/00/095211410000000200"
                ],
                "action": "OBSERVE",
                "bizStep": "storing",
                "readPoint": {
                    "id": "https://id.gs1.org/414/0952114111113"
                },
                "bizLocation": {
                    "id": "https://id.gs1.org/414/0952114111113"
                },
                "sensorElementList": [{
                    "sensorMetadata": {
                        "startTime": "2023-06-15T16:55:00Z",
                        "endTime": "2023-06-15T16:35:00Z"
                    },
                    "sensorReport": [{
                        "type": "Temperature",
                        "minValue": 9.2,
                        "maxValue": 9.2,
                        "uom": "CEL"
                    }]
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-06-15T23:59:00+01:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/00/095211410000000200"
                ],
                "action": "OBSERVE",
                "bizStep": "sensor_reporting",
                "readPoint": {
                    "id": "https://id.gs1.org/414/0952114111113"
                },
                "sensorElementList": [{
                    "sensorMetadata": {
                        "startTime": "2023-06-15T22:29:00Z",
                        "endTime": "2023-06-14T22:59:00Z"
                    },
                    "sensorReport": [{
                        "type": "Temperature",
                        "minValue": 9.4,
                        "maxValue": 9.1,
                        "uom": "CEL"
                    }]
                }]
            }
        ]
    }
}

Example 21: Exception notification

To illustrate, here is a business process

A company may want to trigger an alert message to the warehouse manager in case the temperature in the cold storage room falls below or exceeds a predefined threshold (e.g. < 8 ° CEL and > 15 ° CEL). The company also wants to store that
information in their Quality Management System as well as provide that to an external solution provider which is in charge of maintaining the cold storage room’s technical infrastructure. In such a setting, the ‘alert’ EPCIS event could be modeled as follows

Event dimensionData ElementV1

DescriptionException notification for temperature excursion

Event TypeObject Event

ActionOBSERVE
WheneventTime23 June, 11:19 am
WherereadPointGLN of cold storage room
WhybizStepsensor_reporting
HowsensorElement
sensorMetadata
bizRulesGDTI GS1 DL URI
sensorReport
typeTemperature
value15.1
uomCEL
sensorReport
exceptionALARM_CONDITION
uriValueURI,
e.g. https://example.com/alarmCodes/temperatureExceeded

Design Template

Generated Event

Temperature Excursion Exception Notification Sensor Report
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-22T21:02:23.85Z",
    "epcisBody": {
        "eventList": [{
            "type": "ObjectEvent",
            "eventTime": "2023-06-23T13:35:42+01:00",
            "eventTimeZoneOffset": "+01:00",
            "epcList": [
                "https://id.gs1.org/00/095211410000000200"
            ],
            "action": "OBSERVE",
            "bizStep": "sensor_reporting",
            "readPoint": {
                "id": "https://id.gs1.org/414/9521141111116"
            },
            "sensorElementList": [{
                "sensorMetadata": {
                    "bizRules": "https://id.gs1.org/253/9521565678002100"
                },
                "sensorReport": [{
                    "type": "Temperature",
                    "exception": "ALARM_CONDITION",
                    "value": 15.1,
                    "uriValue": "https://example.com/alarmCodes/temperatureExceeded",
                    "uom": "CEL"
                }]
            }]
        }]
    }
}

Example 22: Condition monitoring and tracking of intermodal transports

To illustrate, here is a business process

A company to verify whether its products are properly transported, and to maintain an overview of the areas a container vessel traversed, it is advisable for the respective logistics/transport service providers to supply the corresponding visibility event data in a standardized manner.
For instance, if an organization is interested to ascertain that their products were not exposed to a certain level of air humidity during transport as well as the approximate sea transport route, the following EPCIS event sequence would make sense

Event dime nsionData ElementV1V2V3V4V5V6V7V8V9V10
DescriptionPack products into logistics unitLoad logistics unit onto seacontainerLoad seacontainers onto truckTruck arrival at portUnload seacontainers from truckLoad seacontainers onto vesselVessel departure from portDaily sensor reporting of sea containerDaily vessel report with 4- hourly geo positionsDaily sensor reporting of sea container
Event TypeAggregation EventAggregation EventAggregation EventObject EventAggregation EventAggregation EventObject EventObject EventObject EventObject Event
ActionADDADDADDOBSER VEDELETEADDOBSERVEOBSERVEOBSERVEOBSERVE
WheneventTime24 June, 08:00 am24 June, 09:15 am24 June, 09:45 am24 June, 02:20 pm24 June, 02:55 pm24 June, 05:11 pm25 June, 04:00 am24 June, 11:59 pm25 June, 11:59 pm25 June, 11:59 pm
WhatepcListGIAI of the truckIMO Vessel Number of shipBIC of sea containerIMO Vessel Number of shipBIC of sea container
parentIDSSCC of Logistics unitBIC of sea ContainerGIAI of the truckGIAI of the truckIMO Vessel Number of ship
childEPCsSGTIN’s of productsSSCC of logistics unitBIC of sea containerBIC of sea contain erBIC of sea container
WherereadPoin tGLN of wareh ouseGLN of wareh ouseGLN of wareh ouseGLN of portGLN of portGLN of portGLN of port
WhybizSte ppack ingload ingload ingarri vingunloa dingload ingdepartingsensor_reportingsensor_re portingsensor_re porting
HowsensorEl ement
sensorM etadata
startTim e23 June 11:59 pm24 June 11:59 pm
endTime24 June 11:59 pm25 June 11:59 pm
sensorRe port
typeTemperatu reTemperatu re
minValue8.15.6
maxValu e21.814.9
uomCELCEL
sensorReport
typeAbsoluteH umidityAbsoluteH umidity
minValue6.14.6
maxValu e8.23.3
uomA93A93
sensorEl ement
sensorM etadata
time25 June 02:00 am
rawDataURI, e.g. https://example.org/80 04/401234599999
sensorRe port
typeLatitude
stringValue53.553747
sensorRe port
typeLongitude
stringValue8.562372
sensorEl ement
sensorM etadata
time25 June 06:00 am
sensorRe port
typeLatitude
stringValue53.882318
sensorRe port
typeLongitude
stringValue8.09931
sensorEl ement
sensorM etadata
time25 June 10:00 am
sensorRe port
typeLatitude
stringValue54.172892
sensorRe port
typeLongitude
stringValue7.094428
sensorEl ement
sensorM etadata
time25 June 02:00 pm
sensorRe port
typeLatitude
stringValue54.389794
sensorRe port
typeLongitude
stringValue5.753072
sensorEl ement
sensorM etadata
time25 June 06:00 pm
sensorRe port
typeLatitude
stringValue54.790116
sensorRe port
typeLongitude
stringValue3.407863
sensorEl ement
sensorM etadata
time25 June 10:00 pm
sensorRe port
typeLatitude
stringValue56.196056
sensorRe port
typeLongitude
stringValue1.490934

Design Template

Generated Event

Sensor Report:Condition monitoring and tracking of intermodal transports
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-04-25T10:44:12.41Z",
    "epcisBody": {
        "eventList": [{
                "type": "AggregationEvent",
                "eventTime": "2023-06-24T08:00:00+02:00",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/00/095211410000000200",
                "childEPCs": [
                    "https://id.gs1.org/01/09521141174739/21/100"
                ],
                "action": "ADD",
                "bizStep": "packing",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111116"
                }
            },
            {
                "type": "AggregationEvent",
                "eventTime": "2023-06-24T09:15:00+02:00",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "urn:epc:id:bic:CSQU3054383",
                "childEPCs": [
                    "https://id.gs1.org/00/095211410000000200"
                ],
                "action": "ADD",
                "bizStep": "loading",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111116"
                }
            },
            {
                "type": "AggregationEvent",
                "eventTime": "2023-06-24T09:45:00+02:00",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/8004/9521565500200",
                "childEPCs": [
                    "urn:epc:id:bic:CSQU3054383"
                ],
                "action": "ADD",
                "bizStep": "loading",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111116"
                }
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-06-24T14:20:00+02:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "https://id.gs1.org/8004/9521565500200"
                ],
                "action": "OBSERVE",
                "bizStep": "arriving",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111123"
                }
            },
            {
                "type": "AggregationEvent",
                "eventTime": "2023-06-24T14:55:00+02:00",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "https://id.gs1.org/8004/9521565500200",
                "childEPCs": [
                    "urn:epc:id:bic:CSQU3054383"
                ],
                "action": "DELETE",
                "bizStep": "unloading",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111123"
                }
            },
            {
                "type": "AggregationEvent",
                "eventTime": "2023-06-24T17:11:00+02:00",
                "eventTimeZoneOffset": "+01:00",
                "parentID": "urn:epc:id:imovn:2922108",
                "childEPCs": [
                    "urn:epc:id:bic:CSQU3054383"
                ],
                "action": "ADD",
                "bizStep": "loading",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111123"
                }
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-06-24T23:59:00+02:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "urn:epc:id:imovn:2922108"
                ],
                "action": "OBSERVE",
                "bizStep": "departing",
                "readPoint": {
                    "id": "https://id.gs1.org/414/9521141111123"
                },
                "sensorElementList": [{
                    "sensorMetadata": {
                        "startTime": "2023-06-24T21:59:00Z",
                        "endTime": "2023-06-23T21:59:00Z"
                    },
                    "sensorReport": [{
                            "type": "Temperature",
                            "minValue": 8.1,
                            "maxValue": 21.8,
                            "uom": "CEL"
                        },
                        {
                            "type": "AbsoluteHumidity",
                            "minValue": 6.1,
                            "maxValue": 8.2,
                            "uom": "23"
                        }
                    ]
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-06-25T23:59:00+02:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "urn:epc:id:imovn:2922108"
                ],
                "action": "OBSERVE",
                "bizStep": "sensor_reporting",
                "sensorElementList": [{
                    "sensorMetadata": {
                        "startTime": "2023-06-25T21:59:00Z",
                        "endTime": "2023-06-24T21:59:00Z"
                    },
                    "sensorReport": [{
                            "type": "Temperature",
                            "minValue": 5.6,
                            "maxValue": 14.9,
                            "uom": "CEL"
                        },
                        {
                            "type": "AbsoluteHumidity",
                            "minValue": 3.3,
                            "maxValue": 4.6,
                            "uom": "A93"
                        }
                    ]
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-06-24T23:59:00+02:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "urn:epc:id:bic:CSQU3054383"
                ],
                "action": "OBSERVE",
                "bizStep": "sensor_reporting",
                "sensorElementList": [{
                    "sensorMetadata": {
                        "time": "2023-06-25T12:00:00Z",
                        "rawData": "https://example.org/8004/401234599999"
                    },
                    "sensorReport": [{
                            "type": "Angle",
                            "time": "2023-06-25T00:00:00Z",
                            "component": "latitude",
                            "stringValue": "53.553747"
                        },
                        {
                            "type": "Angle",
                            "time": "2023-06-25T00:00:00Z",
                            "component": "longitude",
                            "stringValue": "8.562372"
                        },
                        {
                            "type": "Angle",
                            "time": "2023-06-25T04:00:00Z",
                            "component": "latitude",
                            "stringValue": "53.882318"
                        },
                        {
                            "type": "Angle",
                            "time": "2023-06-25T04:00:00Z",
                            "component": "longitude",
                            "stringValue": "8.099310"
                        },
                        {
                            "type": "Angle",
                            "time": "2023-06-25T08:00:00Z",
                            "component": "latitude",
                            "stringValue": "54.172892"
                        },
                        {
                            "type": "Angle",
                            "time": "2023-06-25T08:00:00Z",
                            "component": "longitude",
                            "stringValue": "7.094428"
                        },
                        {
                            "type": "Angle",
                            "time": "2023-06-25T12:00:00Z",
                            "component": "latitude",
                            "stringValue": "54.389794"
                        },
                        {
                            "type": "Angle",
                            "time": "2023-06-25T12:00:00Z",
                            "component": "longitude",
                            "stringValue": "5.753072"
                        },
                        {
                            "type": "Angle",
                            "time": "2023-06-25T16:00:00Z",
                            "component": "latitude",
                            "stringValue": "54.790116"
                        },
                        {
                            "type": "Angle",
                            "time": "2023-06-25T16:00:00Z",
                            "component": "longitude",
                            "stringValue": "3.407863"
                        },
                        {
                            "type": "Angle",
                            "time": "2023-06-25T20:00:00Z",
                            "component": "latitude",
                            "stringValue": "56.196056"
                        },
                        {
                            "type": "Angle",
                            "time": "2023-06-25T20:00:00Z",
                            "component": "longitude",
                            "stringValue": "1.490934"
                        }
                    ]
                }]
            },
            {
                "type": "ObjectEvent",
                "eventTime": "2023-06-25T23:59:00+02:00",
                "eventTimeZoneOffset": "+01:00",
                "epcList": [
                    "urn:epc:id:bic:CSQU3054383"
                ],
                "action": "OBSERVE",
                "bizStep": "sensor_reporting"
            }
        ]
    }
}

Example 23: Sensor example for condition monitoring and tracking of intermodal transports

To illustrate, here is a business process

A retailer wants to document the concentration of Shigella (bacteria that include known pathogens) as well as sugar in a batch/lot of apples. Further, the retailer wants to capture the ID of the device with which the quality control is accomplished (so that in case the latter turns out not to be properly calibrated, the retailer is able to react accordingly). With that in mind, an EPCIS inspecting event could be designed as follows

Event dimensionData ElementV1
DescriptionFresh fruits quality inspection
Event TypeObject Event
ActionOBSERVE
WheneventTime10 August, 08:10 am
WhatquantityListLGTIN of batch/lot of food
readPointGLN of cold storage room
bizStepinspecting
dispositionconformant
bizTransactionList
_bizTransactionID prd type:testGDTI of test procedure
_bizTransactionID res type:testGDTI or test result
sensorElement
sensorMetadata
deviceIDGIAI (EPC URI or GS1 DL URI)
sensorReport
typeDimensionless
microorganismhttps://wwww.ncbi.nlm.nih.gov/1118236 TBC
value18
uomCFU/ml
Pending UN/CEFACT update to [CEFACT20]
sensorReport
typeDimensionless_concentration
chemicalSubstancehttps://identifiers.org/inchikey:CZMRCDWAGMRECN-UGDNZRGBSA-N
value10.1
uomJ18

Design Template

Generated Event

Sensor report: tracking of intermodal transports
{
    "@context": [
        "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
    ],
    "type": "EPCISDocument",
    "schemaVersion": "2.0",
    "creationDate": "2024-03-15T17:30:01.58Z",
    "epcisBody": {
        "eventList": [{
            "type": "ObjectEvent",
            "eventTime": "2023-08-10T08:10:14+01:00",
            "eventTimeZoneOffset": "+01:00",
            "action": "OBSERVE",
            "bizStep": "inspecting",
            "disposition": "conformant",
            "readPoint": {
                "id": "https://id.gs1.org/414/9521568256452"
            },
            "bizTransactionList": [{
                    "type": "testprd",
                    "bizTransaction": "https://id.gs1.org/253/9521565678002100"
                },
                {
                    "type": "testprd",
                    "bizTransaction": "https://id.gs1.org/253/9521565678002200"
                }
            ],
            "quantityList": [{
                "epcClass": "https://id.gs1.org/01/09521568256452/10/200"
            }],
            "sensorElementList": [{
                    "sensorMetadata": {
                        "deviceID": "https://id.gs1.org/8004/9521565500"
                    },
                    "sensorReport": [{
                        "type": "Dimensionless",
                        "microorganism": "https://wwww.ncbi.nlm.nih.gov/1118236",
                        "value": 18,
                        "uom": "59"
                    }]
                },
                {
                    "sensorReport": [{
                        "type": "Dimensionless",
                        "chemicalSubstance": "https://www.chemspider.com/Chemical-Structure.5768.html?rid=e68ea2b7-dbe5-43b2-9523-55ca0b02c27e",
                        "value": 10.1,
                        "uom": "59"
                    }]
                }
            ]
        }]
    }
}