EPCIS 2.0 Events

EPCIS 2.0 is a major update that introduces many new features to lower barriers to adoption and better enable data sharing across the entire supply chain:

  • Native JSON/JSON-LD support (in addition to XML) for REST-based APIs
  • A REST API definition (OpenAPI 3.0) alongside the legacy SOAP/AS2 bindings
  • The new AssociationEvent event type, to capture associations between objects
  • The sensorElementList element, to support sensor data to track asset conditions and for use in industrial IoT processes
  • The errorDeclaration mechanism, formalized for event correction workflows
  • The persistentDisposition element, for dispositions that persist across events

Document envelope

All EPCIS 2.0 events are transmitted inside an EPCISDocument. The JSON-LD format requires an @context:

{ // JSON-LD context: always include the EPCIS 2.0 context URL. // Additional context entries declare extension namespaces. "@context": "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld", // Document type: always "EPCISDocument" for capture payloads "type": "EPCISDocument", // EPCIS schema version "schemaVersion": "2.0", // Timestamp at which this document was created (ISO 8601) "creationDate": "2026-06-12T10:15:30.000Z", // The event payload: a list of one or more EPCIS events "epcisBody": { "eventList": [ // ... events go here ... ] } } 

Identifier formats

EPCIS 2.0 accepts identifiers as either EPC URIs or GS1 Digital Link URIs:

IdentifierEPC URIGS1 Digital link URI
GTIN (class-level)urn:epc:idpat:sgtin:4012345.012345.*https://id.gs1.org/01/04012345123456
LGTIN (lot-level, class)urn:epc:class:lgtin:4012345.012345.998877https://id.gs1.org/01/04012345123456/10/998877
SGTIN (serialized trade item)urn:epc:id:sgtin:0614141.107346.2018https://id.gs1.org/01/00614141107346/21/2018
SGLN (location)urn:epc:id:sgln:0614141.00777.0https://id.gs1.org/414/0614141007772
SSCC (logistic unit)urn:epc:id:sscc:0614141.1234567890https://id.gs1.org/00/106141412345678908

Class-level vs. instance-level identification

  • Serialized instance-level objects are listed in the epcList, childEPCs, inputEPCList, and outputEPCList elements.
  • Lot- or quantity-based class-level objects are listed in the quantityList, childQuantityList, inputQuantityList, outputQuantityList elements, using QuantityElement structures:
    { // Class-level identifier (typically an LGTIN for lot-managed product) "epcClass": "urn:epc:class:lgtin:4012345.012345.LOT2026A", // Numeric amount of the class-level object "quantity": 200.0, // Unit of measure per UN/CEFACT Rec 20 (e.g., KGM = kilogram). Omit for counts of base items. "uom": "KGM" }

Common event fields

The following fields are shared by all EPCIS 2.0 event types:

NameTypeDescriptionRequired or optionalExample
type String The event type discriminator: ObjectEvent, AggregationEvent, TransformationEvent, or AssociationEventRequired ObjectEvent
eventTime DateTime (ISO 8601) The date and time at which the event occurred. Required 2026-06-12T08:30:00.000Z
eventTimeZoneOffset String The local time zone offset where the event occurred, format ±HH:MM. Required -06:00
recordTime DateTime The date and time at which the event was recorded by the EPCIS repository. Set by the capturing system, not the sender. Optional (system-assigned) 2026-06-12T08:31:05.000Z
eventID URI A globally unique identifier for the event. Strongly recommended, and required if the event may later be referenced by an errorDeclaration.

Typically an ni-hash URI or UUID URN. 
Optional (strongly recommended) ni:///sha-256;df7bb3c352fef7c93c582...?ver=CBV2.0

or

urn:uuid:7e6e36d2-…
errorDeclaration Object Declares that a previously captured event (with the same eventID) was erroneous.Optional Refer to the Error declaration page.
certificationInfo URI

or

Array of URIs 
Reference to certification information relevant to the event. Optional https://accreditation.example/cert/123
bizStep URI or CBV string The business step taking place (CBV vocabulary or user vocabulary). In JSON, CBV values may be expressed as bare strings, such as shippingOptional shipping
disposition URI or CBV string The business condition of the objects after the event. Optional in_transit
persistentDisposition Object Sets or unsets dispositions that persist until explicitly changed. Contains set and/or unset arrays. Optional { "set": ["completeness_verified"], "unset": ["completeness_inferred"] }
readPoint ObjectThe specific location at which the event was observed, such as a dock door. Optional { "id": "urn:epc:id:sgln:4012345.00011.987" }
bizLocation ObjectThe location where the objects are assumed to be after the event. Optional { "id": "urn:epc:id:sgln:4012345.00011.0" } 
bizTransactionList Array of bizTransaction objectsBusiness transactions associated with the event. Each entry has type (such as po, inv, desadv) and bizTransaction (the transaction identifier). Optional (Required in TransactionEvent) [{ "type": "po", "bizTransaction": "urn:epcglobal:cbv:bt:0614141073467:PO1234" }]
sourceList Array of source objectsIdentifies the originating party or location of a transfer. Each entry has type (such as owning_party, possessing_party, location) and a source URI. Optional [{ "type": "owning_party", "source": "urn:epc:id:pgln:4012345.00001" }]
destinationList Array of destination objects Identifies the receiving party or location of a transfer. Each entry has type (such as owning_party, possessing_party, location) and a destination URI. Optional [{ "type": "owning_party", "destination": "urn:epc:id:pgln:0614141.00001" }]
sensorElementList Array of SensorElement Sensor metadata and readings captured with the event (temperature, humidity, GPS, and so on). Optional Refer to the ObjectEvent page. 
Custom extensionsAny Namespace-qualified custom fields, such as custom:myFieldOptional "custom:batchColor": "blue"


Did this page help you?