Get ahead with TrackVision updates
Join our newsletter today and don't miss out on the opportunity to be part of a community driving innovation in tracking technology.
Sign up now and be in the know!
GS1 EPCIS (Electronic Product Code Information Services) is an open standard designed to facilitate the seamless capture and sharing of supply chain event data across organizations. EPCIS enables businesses to track the journey of goods and products by recording critical events - such as production, shipping, and receipt - throughout the supply chain. By standardizing how data is structured and communicated, EPCIS helps organizations achieve greater visibility, traceability, and interoperability, supporting more efficient operations, regulatory compliance, and consumer transparency.
EPCIS 2.0 - the latest version of the standard - does this by giving us two important elements:
In this in-depth technical guide, you will discover:
In the context of EPCIS, an "event" refers to a specific occurrence that provides meaningful information about the movement, status, or transformation of a product or asset within the supply chain. An event consists of information about “what”, “where”, “when” and “why”:
By recording events, we are able to accurately represent any supply chain process or activity that occurs as data. Consider a typical supply chain process like the one below:
Each discrete step in the process can be recorded with an EPCIS event:
Any supply chain process you can think of can be modelled and recorded using EPCIS events. For example, if you wanted to record the installation of components into an asset, you could record an “installing” event using EPCIS:
Or if you wanted to record the exact input ingredient batches that contributed to a batch of output products, you can using a “transformation event”:
So what does an EPCIS event actually look like under the covers? Let’s use a very simple scenario as our example - the receipt of a pallet at a warehouse:
What we want to record is simple: that we observed a pallet as part of a warehouse receiving process (the “why”), uniquely identified by the SSCC 277776661000000203 (the “what”), at a particular moment in time (the “when”), at location identified by the Global Location Number [GLN] 4444999400018 (the “where”).
If we were to show this conceptually, it looks like this:
But let’s take it one step further and look at a real EPCIS event represented as a JavaScript Object Notation (JSON) message. JSON is a text-based format for storing and exchanging data that's both human-readable and machine-parsable. It is heavily used by developers creating the Internet, and is fully supported by the latest version of EPCIS.
This is a very simple, valid EPCIS event. Let’s go through the data fields related to each dimension:
The GS1 Core Business Vocabulary (CBV) is a standardized set of terms and definitions used within the EPCIS framework to ensure consistent communication and interpretation of supply chain events across different organizations and systems. It provides an agreed-upon language for describing business processes, including key terms related to business steps, disposition codes, and more. By establishing uniform terminology, the CBV helps ensure that data recorded and shared through EPCIS is understood in the same way by all parties, reducing ambiguity and enhancing interoperability.
In the previous section, we learnt about two special fields in the “Why” dimension called bizStep and disposition. Starting with bizStep, if we open up the standard and navigate to section 7.1.3, we can see a full list of all the business step codes and definitions - about 41 in total. Here is a screenshot of just a few of the values:
Similarly, the possible values of the field disposition, which is used to indicate the state of an object after an event, is defined in section 7.2.3:
By creating events that use business step and disposition codes, we can describe different business processes in a consistent, interoperable way.
The CBV defines many other code lists used in EPCIS, such as business transaction types, error codes, sensor measurement types and more. It also describes the format of other fields (such as identifiers) to ensure everyone expresses them in a consistent way. For example, section 8.4 describes the possible syntaxes that can be used in a location field (such as business location or read point), such as Digital Link, EPC URI, or proprietary schemes.
When a business user thinks about an “event type” in the supply chain, they would probably (and correctly!) think about packing, shipping, selling, and other business steps. As we saw before, this is already captured in the bizStep field. But in our previous example, we saw a field called “type”, with a value “ObjectEvent”:
What does this mean, and why do we need this? The field type refers to the EPCIS technical event type, which can either be “ObjectEvent”, “AggregationEvent”, “TransformationEvent”, “AssociationEvent” or “TransactionEvent”.
The main reason we need this is because the “what” fields - i.e. the subject(s) of an event, can vary depending on the supply chain scenario.
Because EPCIS defines a data schema, and we want to apply rules on that schema, a decision was made to define “sub-classes” of the main “EPCISEvent” data entity (a concept from “object oriented programming”), resulting in the five event types in the current version of the standard.
So let’s take a look at another important scenario - how do we record the act of packing items into a container in EPCIS? Consider the business scenario below. We pack three sellable tomato cartons, identified uniquely with a combination of a GTIN and a Serial ID (SGTIN), into a pallet, identified by an SSCC:
In EPCIS packing is handled through the special event type called AggregationEvent. The easiest way to understand is by looking at an example:
The fields for “When” and “Where” are the same as our previous example. The fields in “Why” have changed:
The fields in the “What” dimension are also named subtly different, because this is an AggregationEvent.
What if we were doing batch/lot level traceability, such as the following example where a mixed pallet is being packed with 4 cartons of one batch and 6 cartons of another batch?
EPCIS events support batch level traceability too. Here is how the event changes:
Most fields are the same as our previous example. Inside the “What” dimension, epcList has been replaced with childQuantityList. Items inside this list allow us to specify a class of product in the epcClass field - in this case, a batch of tomatoes, expressed as a Digital Link - and a quantity. An optional field we omitted from our example, uom, allows us to specify a unit of measure, which would support scenarios such as packing a quantity of liquid into a bottle, or a weight of loose goods into a container.
In our first packing example, what if we made a mistake and wanted to unpack the third carton? We can use an unpacking event, which looks like this:
The bizStep field is set to unpacking and the action field is now set to DELETE, indicating we are removing the children specified from the parent. Easy!
Let's look at one last important example. In traceability, we often want to track which input ingredients or materials were used to produce a particular output product. This means that if one of the ingredients is defective, we can trace all the output products that might be affected. Or if an output product is defective, we can understand all the inputs that might have caused the problem.
Lets take an example where 1 kilogram of a batch of salt and 10 liters of a batch of milk is being combined to produce a batch of 4 blocks of cheese:
Here is the above business process represented as an EPCIS Transformation event:
Let’s look at key differences to our previous examples:
Now that we’ve learned what EPCIS events look like, how do we get data into and out of an EPCIS system? The EPCIS 2.0 standard defines both a data model and a set of REST APIs for system to system data exchange. That means that two EPCIS compatible systems can be configured to exchange data with no integration middleware and no data transformation/mapping required, which means the cost of integration is reduced to practically nothing compared to connecting two systems that each have a proprietary, non-standard API.
Note that the standard also includes bindings for XML and other older options, but in this guide we’ll focus on the modern REST APIs with JSON data payloads.
If an application needs to push supply chain data into an EPCIS system, the primary way is to send a message containing a list of events into the special capture API. This is useful for business to business scenarios where traceability data needs to be sent to accompany a physical goods shipment:
The capture API is asynchronous, designed to be able to accept thousands of events at one time. A simpler /events API is also available that allows a single event to be pushed in, but we recommend using /capture. Section 12.6 of the EPCIS specification describes the endpoint:
EPCIS provides a query interface to allow an application to fetch specific events that match a search criteria.
In the REST API there are a number of query related endpoints that allow events to be fetched. The /queries interface allows a “standing query” to be defined which can be run over and over again.
The final set of APIs that EPCIS defines is a “subscription” mechanism, where one system can ask another system to continually send any events that arise that match a specific criteria. For example, “send me all events that occur at location ABC”. The accepting system will watch for new events that match that criteria and then send them automatically to the callback URL defined by the first system.
EPCIS is the perfect standard to apply in any scenario where businesses need to record and exchange traceability information. One such example is Section 204(d) of the Food Safety Modernization Act in the United States - entitled “Additional Recordkeeping Requirements for High Risk Foods” - which will require thousands of businesses in the USA to store and exchange lot-level traceability information if they produce, handle or process any food identified on the FDA’s Food Traceability List. The FDA has defined a series of Critical Tracking Events (CTEs), each containing Key Data Elements (KDEs), which they expect businesses to record. The FDA diagram below illustrates the CTEs and KDEs involved for a produce supply chain:
Note that not only do businesses need to record data, but they also need to send data to other parties in the supply chain, so those businesses can store accurate information too. For example, some harvesting and cooling KDEs need to be provided to the initial packer, and shipping CTE/KDEs always need to be forwarded to the receiver:
EPCIS is the perfect data standard for both storing and sending the required data for this legislation. Consider the following snippet of a supply chain that covers a grower that harvests, cools, packs and ships produce to a food processor, who transforms the food and ships it onwards.
As we can see, each logical CTE defined by the FDA (in blue) can comfortably be recorded using the building blocks provided by the EPCIS standard that we’ve learnt about in this guide. If both parties were using an EPCIS compatible system, the farm could easily send the required data to the packed salad manufacturer using EPCIS APIs, with no additional system integration costs.
GS1 EPCIS 2.0 is an extremely powerful traceability data standard that provides both a data model and an API. It can help businesses record and exchange vital supply chain data that can meet legislative requirements, prove provenance, surface certifications, detect supply chain fraud, enable rapid and targeted product recalls, reduce waste and more. It can be applied to any supply chain, in any industry, with any product or asset - at item, batch or SKU level of granularity.
But because it is so powerful, it is also difficult to understand and leverage for new audiences. At TrackVision AI, we provide an easy to use traceability platform that has been built from the ground up on the GS1 EPCIS 2.0 standard. It includes a scalable EPCIS repository, full implementations of EPCIS APIs and data exchange frameworks, and comes packed with out-of-the-box analytics, workflow and AI features to help businesses meet their supply chain traceability requirements. Talk to us today for a free consultation on how your business could adopt and leverage the GS1 EPCIS 2.0 standard.
Join our newsletter today and don't miss out on the opportunity to be part of a community driving innovation in tracking technology.
Sign up now and be in the know!