EPCIS Events¶
EPCIS (Electronic Product Code Information Services) is the GS1 standard for supply chain visibility. GTIN1 implements EPCIS 2.0, standardized as ISO/IEC 19987:2024, enabling organizations to capture and share "what, when, where, and why" information about products as they move through the supply chain.
Why EPCIS Matters¶
Every product has a journey -- from raw materials through manufacturing, distribution, and retail to the consumer. EPCIS provides a standard language for recording each step of that journey as a series of events. This enables:
- Traceability -- track any product back to its origin
- Compliance -- meet regulatory requirements like FDA FSMA 204
- Recall management -- quickly identify affected products by lot and location
- Visibility -- see where products are in real time
- Authentication -- verify a product's provenance
Event Types¶
EPCIS defines five event types, each capturing a different kind of supply chain activity:
ObjectEvent¶
Records an observation or action on one or more identified objects. This is the most common event type.
Examples: - Commissioning a serial number (creating a new identity) - Shipping products from a warehouse - Receiving products at a retail store - Destroying expired products
AggregationEvent¶
Records the packing or unpacking of items into or out of a container.
Examples: - Packing individual bottles into a case - Loading cases onto a pallet - Unpacking a pallet at a distribution center
TransactionEvent¶
Links identified objects to a business transaction such as a purchase order or invoice.
Examples: - Associating products with a purchase order - Linking a shipment to a bill of lading - Recording products against an invoice
TransformationEvent¶
Records the creation of output products from input products, where the inputs are consumed in the process.
Examples: - Combining ingredients into a finished food product - Manufacturing a device from component parts - Blending raw materials into a chemical compound
AssociationEvent¶
Records a relationship between objects that is not a physical containment (unlike Aggregation).
Examples: - Associating a device with a specific firmware version - Linking a product to a warranty certificate - Pairing a consumable with its parent device
Event Dimensions¶
Every EPCIS event answers four fundamental questions:
What -- The Objects¶
Events reference the objects they affect through two mechanisms:
- EPC List -- specific serialized identifiers (e.g.,
https://gtin1.com/01/09506000134352/21/SN001) - Quantity List -- class-level quantities without serial numbers (e.g., 500 units of GTIN 09506000134352)
Each identifier or quantity plays a specific role in the event:
| Role | Used In | Meaning |
|---|---|---|
epcList |
Object, Transaction | The objects directly affected |
parentID |
Aggregation, Association | The container or parent object |
childEPCs |
Aggregation, Association | Items inside the container |
inputEPCList |
Transformation | Materials consumed |
outputEPCList |
Transformation | Products created |
When -- Time¶
Each event records two timestamps:
- Event Time -- when the event actually occurred, with timezone offset
- Record Time -- when the event was captured in the system (set automatically)
Where -- Location¶
Events capture location at two levels:
- Read Point -- the specific location where the event was observed (e.g., a dock door, a scanner station)
- Business Location -- the broader business context (e.g., the warehouse, the store)
Locations are identified by GS1 Digital Link URIs and can be linked to physical location records with addresses and coordinates.
Why -- Business Context¶
The business context explains the purpose of the event through standardized vocabulary:
Business Step (bizStep) -- what was happening:
| Business Step | Description |
|---|---|
commissioning |
Assigning an identity to an object for the first time |
shipping |
Sending objects from one location to another |
receiving |
Accepting objects at a location |
packing |
Placing objects into a container |
unpacking |
Removing objects from a container |
retail_selling |
Selling to a consumer at point of sale |
destroying |
Permanently disposing of objects |
inspecting |
Examining objects for quality or compliance |
stocking |
Placing objects on retail shelves |
picking |
Selecting objects from storage for an order |
loading |
Placing objects onto a transport vehicle |
accepting |
Accepting objects into custody |
GTIN1 supports all 37 business steps defined in the GS1 Core Business Vocabulary (CBV) 2.0.
Disposition -- the state of objects after the event:
| Disposition | Description |
|---|---|
active |
Object is in normal use |
in_transit |
Object is being transported |
sellable_accessible |
Available for retail sale |
recalled |
Object has been recalled |
destroyed |
Object has been permanently disposed of |
damaged |
Object is damaged |
expired |
Object has passed its expiration date |
returned |
Object has been returned |
Actions¶
For Object, Aggregation, Transaction, and Association events, the action field indicates what happened:
| Action | Meaning |
|---|---|
ADD |
Objects were created, added to a container, or associated |
OBSERVE |
Objects were observed without changing their state |
DELETE |
Objects were removed from a container or disassociated |
Transformation events do not use an action field -- the transformation itself is implicit.
Business Transactions¶
Events can be linked to business documents to connect physical supply chain movements with business processes:
| Transaction Type | Description |
|---|---|
bol |
Bill of Lading |
desadv |
Despatch Advice |
inv |
Invoice |
po |
Purchase Order |
poc |
Purchase Order Confirmation |
prodorder |
Production Order |
recadv |
Receiving Advice |
rma |
Return Merchandise Authorization |
Source and Destination¶
Events can record the transfer of ownership or possession between parties:
- Source -- where the objects came from (owning party, possessing party, or location)
- Destination -- where the objects are going
This enables tracking of custody changes through the supply chain.
Entry Records¶
GTIN1 maintains a current-state projection for each serialized item (EPC). An Entry record represents the latest known state of an identifier, automatically updated as new events are processed.
Each entry tracks:
- The item's current status (
active,decommissioned, ordestroyed) - The last event that affected it
- The last known business location
- The last known disposition
This makes it possible to answer "where is this item right now?" without scanning the full event history.
Serial Number Pools¶
For organizations that need to assign serial numbers to products, GTIN1 provides serial number pool management:
- Pools are created per trade item and support numeric, alphanumeric, or UUID encoding
- Regions define contiguous ranges of serial numbers within a pool
- Allocations record which serial numbers have been assigned, by whom, and optionally to which lot
This integrates with EPCIS commissioning events to ensure every serialized item has a unique, traceable identity.
Error Declarations¶
EPCIS events are immutable -- once captured, they cannot be modified or deleted. If an event is found to be erroneous, an Error Declaration is attached to the original event rather than changing or removing it.
Error declarations record:
- Declaration time -- when the error was discovered
- Reason -- either "did not occur" (the event never happened) or "incorrect data" (the event happened but with wrong information)
- Corrective event IDs -- references to events that correct the error
This preserves a complete audit trail while allowing the record to be corrected.
JSON-LD Context¶
EPCIS 2.0 events use JSON-LD serialization with the GS1 EPCIS context. This means event data is both human-readable JSON and machine-interpretable linked data, compatible with the broader semantic web ecosystem.
Tip
EPCIS events captured through GTIN1 are accessible via the EPCIS 2.0 Query API, which supports cursor-based pagination and JSON-LD responses. See your organization's API documentation for endpoint details.