---
title: "EPCIS Event Types | OpenEPCIS Docs | OpenEPCIS - an open-core, GS1-compliant EPCIS implementation."
canonical_url: "https://openepcis.io/de/docs/digital-product-passport/battery-dpp/event-types"
last_updated: "2026-06-28T23:26:10.991Z"
meta:
  author: "benelog GmbH & Co. KG"
  description: "Complete reference for all EPCIS event types and sensor measurements in the Battery DPP"
  keywords: "EPCIS events, battery sensors, State of Health, SOCE, cycle count"
  "og:description": "Complete reference for all EPCIS event types and sensor measurements in the Battery DPP"
  "og:title": "EPCIS Event Types"
  "twitter:description": "Complete reference for all EPCIS event types and sensor measurements in the Battery DPP"
  "twitter:title": "EPCIS Event Types"
---

</h2>Home

``

# **EPCIS Event Types** Complete reference for all EPCIS event types and sensor measurements in the Battery DPP5 min read**Masterdata that travels with events** — `**masterDataAvailableFor**` is GS1 Web Vocabulary (so no `**gs1:**` prefix needed — it maps via `**@context**`). It can carry **lot- or serial-level masterdata** that belongs to a specific instance or batch: production batch, declaration references, incident records, regulatory citations. What it must **not** carry is **GTIN-level masterdata** (product name, generic specifications, basic technical attributes that apply to every unit of that GTIN) — those live on the resolver, POSTed once via `**POST /products/{gtin}**`. Extension vocabularies (`**battery:**`, `**eudr:**`, `**textile:**`, `**electronics:**`) must keep their prefix; they are declared in the document's `**@context**`.**Disclaimer**: This is **not official GS1 guidance**, but all event patterns follow official GS1/EPCIS standards: - [EPCIS 2.0](https://ref.gs1.org/standards/epcis/) — ObjectEvent structure, sensorElementList - [CBV 2.0](https://ref.gs1.org/standards/cbv/) — bizStep ( `**commissioning**`, `**inspecting**`), disposition ( `**active**`, `**damaged**`) - [UN/CEFACT Rec 20](https://unece.org/trade/uncefact/cl-recommendations) — Unit codes ( `**P1**`, `**KWH**`, `**CEL**`) We follow GS1 best practices: events with full provenance (who/what/when/where), sensor metadata, and master data linking. [Feedback welcome](https://github.com/openepcis/openepcis-battery-dpp/issues)! ## Event Types Overview The Battery DPP uses EPCIS 2.0 events to capture dynamic battery data throughout its lifecycle. Each event type serves a specific purpose in maintaining the complete battery passport. ## Lifecycle Events ### Commissioning Event**Purpose**: Record battery creation and initial measurements | **Field** | **Value** |
| --- | --- | | `**@type**` | `**ObjectEvent**` | | `**action**` | `**ADD**` | | `**bizStep**` | `**commissioning**` | | `**disposition**` | `**active**` |**Required Sensor Reports**: - `**battery:stateOfHealth**` (100%) - `**battery:cycleCount**` (0) - `**battery:stateOfCharge**`**Example**:```
{
  "@context": "https://ref.gs1.org/standards/epcis/epcis-context.jsonld",
  "type": "ObjectEvent",
  "action": "ADD",
  "bizStep": "commissioning",
  "disposition": "active",
  "epcList": [
    "https://id.gs1.org/01/09521234000013/21/BAT2024-001"
  ],
  "sensorElementList": [
    {
      "sensorReport": [
        {
          "type": "battery:stateOfHealth",
          "value": 100,
          "uom": "P1"
        },
        {
          "type": "battery:cycleCount",
          "value": 0
        }
      ]
    }
  ],
  "masterDataAvailableFor": [
    {
      "id": "https://id.gs1.org/01/09521234000013/21/BAT2024-001",
      "lotNumber": "BATCH-2024-03-A"
    }
  ]
}
``` GTIN-level fields (`**productName**`, generic specs, `**batteryCategory**`) live on the resolver. The batch identifier is lot-level, so it travels with the event in `**masterDataAvailableFor**`. ### Ownership Transfer Event**Purpose**: Record change of ownership or possession | **Field** | **Value** |
| --- | --- | | `**@type**` | `**ObjectEvent**` | | `**action**` | `**OBSERVE**` | | `**bizStep**` | `**accepting**` | | `**disposition**` | `**in_transit**` |**Required Fields**: - `**sourceList**` with `**owning_party**`- `**destinationList**` with `**owning_party**`- `**bizTransactionList**` (PO, invoice)**Example**:```
{
  "@context": "https://ref.gs1.org/standards/epcis/epcis-context.jsonld",
  "@type": "ObjectEvent",
  "action": "OBSERVE",
  "bizStep": "accepting",
  "disposition": "in_transit",
  "sourceList": [
    {
      "type": "owning_party",
      "source": "https://id.gs1.org/417/9521234000006"
    }
  ],
  "destinationList": [
    {
      "type": "owning_party",
      "destination": "https://id.gs1.org/417/9521987000001"
    }
  ],
  "bizTransactionList": [
    {
      "type": "po",
      "bizTransaction": "https://buyer.example.com/orders/PO-2024-0089"
    }
  ]
}
```### Regulatory Notification Event**Purpose**: Record regulatory compliance status | **Field** | **Value** |
| --- | --- | | `**@type**` | `**ObjectEvent**` | | `**action**` | `**OBSERVE**` | | `**bizStep**` | `**notifying**` | | `**disposition**` | `**conformant**` |**Example**:```
{
  "@context": "https://ref.gs1.org/standards/epcis/epcis-context.jsonld",
  "type": "ObjectEvent",
  "action": "OBSERVE",
  "bizStep": "notifying",
  "disposition": "conformant",
  "persistentDisposition": {
    "set": [
      "conformant"
    ]
  },
  "epcList": [
    "https://id.gs1.org/01/09521234000013/21/BAT2024-001"
  ],
  "masterDataAvailableFor": [
    {
      "id": "https://id.gs1.org/01/09521234000013/21/BAT2024-001",
      "regulatoryInformation": [
        {
          "regulationType": "BATTERY_DIRECTIVE",
          "regulatoryAct": "EU 2023/1542",
          "regulatoryIdentifierType": "EU_DECLARATION_OF_CONFORMITY",
          "regulatoryReferenceNumber": "DoC-BAT-2024-00123"
        }
      ]
    }
  ]
}
````**regulatoryInformation**` is GS1 Web Vocabulary (so no `**gs1:**` prefix), and the declaration is serial-specific — it identifies this unit's Declaration of Conformity. It travels with the event inside `**masterDataAvailableFor**`. Compliance state is captured as `**persistentDisposition: "conformant"**` on the event itself. ## Measurement Events ### State of Health (SoH)**Purpose**: Record battery health status | **Field** | **Value** |
| --- | --- | | `**@type**` | `**ObjectEvent**` | | `**action**` | `**OBSERVE**` | | `**bizStep**` | `**inspecting**` | | `**disposition**` | `**active**` |**Sensor Reports**: | **Type** | **Description** | **Unit** |
| --- | --- | --- | | `**battery:stateOfHealth**` | Capacity-based SoH | P1 (%) | | `**battery:stateOfCharge**` | Current charge level | P1 (%) | | `**battery:remainingCapacity**` | Current max capacity | AH | | `**battery:remainingEnergy**` | Current max energy | KWH | | `**battery:cycleCount**` | Full cycles completed | - | | `**battery:capacityFade**` | Capacity degradation | P1 (%) | | `**battery:internalResistance**` | Pack resistance | OHM | | `**battery:energyThroughput**` | Cumulative energy | KWH |**Example**:```
{
  "sensorReport": [
    { "type": "battery:stateOfHealth", "value": 94.2, "uom": "P1" },
    { "type": "battery:cycleCount", "value": 847 },
    { "type": "battery:capacityFade", "value": 5.8, "uom": "P1" },
    { "type": "battery:internalResistance", "value": 2.4, "uom": "OHM" }
  ]
}
```### State of Certified Energy (SOCE)**Purpose**: Record SOCE per EU Battery Regulation | **Sensor Type** | **Description** | **Unit** |
| --- | --- | --- | | `**battery:stateOfCertifiedEnergy**` | SOCE percentage | P1 (%) | | `**battery:capacityThroughput**` | Cumulative capacity | AH | | `**battery:powerFade**` | Power degradation | P1 (%) | | `**battery:roundTripEfficiencyFade**` | RTE degradation | P1 (%) | | `**battery:selfDischargeRate**` | Self-discharge rate | P1 (%/month) |**Per-instance masterdata** (in `**masterDataAvailableFor**`): - `**battery:certifiedUsableEnergy**`, `**battery:remainingUsableEnergy**` — declared values for this unit at this measurement - `**battery:exhaustionThreshold**`, `**battery:expectedRemainingCycles**` — design + projection for this unit - `**battery:soceMeasurementId**` — the measurement record ID**Example**:```
{
  "@context": [
    "https://ref.openepcis.io/extensions/eu/battery/battery-context.jsonld",
    "https://ref.gs1.org/standards/epcis/epcis-context.jsonld"
  ],
  "type": "ObjectEvent",
  "action": "OBSERVE",
  "bizStep": "inspecting",
  "epcList": [
    "https://id.gs1.org/01/09521234000013/21/BAT2024-001"
  ],
  "sensorElementList": [
    {
      "sensorReport": [
        {
          "type": "battery:stateOfCertifiedEnergy",
          "value": 85.3,
          "uom": "P1"
        },
        {
          "type": "battery:stateOfCertifiedEnergy",
          "battery:certifiedUsableEnergy": {
            "value": "14.3",
            "unitCode": "KWH"
          },
          "battery:remainingUsableEnergy": {
            "value": "12.2",
            "unitCode": "KWH"
          }
        }
      ]
    }
  ],
  "masterDataAvailableFor": [
    {
      "id": "https://id.gs1.org/01/09521234000013/21/BAT2024-001",
      "battery:exhaustionThreshold": 70,
      "battery:expectedRemainingCycles": 4753,
      "battery:soceMeasurementId": "SOCE-2025-00156"
    }
  ]
}
```### Carbon Footprint Declaration**Purpose**: Record lifecycle carbon footprint | **Sensor Type** | **Description** | **Unit** |
| --- | --- | --- | | `**battery:carbonFootprintTotal**` | Total lifecycle CFP | KGM (kg CO2e/kWh) | | `**battery:carbonFootprintRawMaterialExtraction**` | Raw material phase | KGM | | `**battery:carbonFootprintProduction**` | Manufacturing phase | KGM | | `**battery:carbonFootprintDistribution**` | Distribution phase | KGM | | `**battery:carbonFootprintRecycling**` | End-of-life phase | KGM |**Per-declaration masterdata** (in `**masterDataAvailableFor**`): - `**battery:carbonFootprintPerformanceClass**` (A–E) for this declared footprint - `**battery:carbonFootprintStudyUrl**` — link to the study supporting this declaration - `**battery:carbonFootprintDeclarationId**` — declaration record ID - `**battery:calculationStandard**` — methodology applied**Example**:```
{
  "@context": [
    "https://ref.openepcis.io/extensions/eu/battery/battery-context.jsonld",
    "https://ref.gs1.org/standards/epcis/epcis-context.jsonld"
  ],
  "type": "ObjectEvent",
  "action": "OBSERVE",
  "bizStep": "inspecting",
  "epcList": [
    "https://id.gs1.org/01/09521234000013/21/BAT2024-001"
  ],
  "sensorElementList": [
    {
      "sensorReport": [
        {
          "type": "battery:carbonFootprintTotal",
          "value": 61.2,
          "uom": "KGM"
        },
        {
          "type": "battery:carbonFootprintRawMaterialExtraction",
          "value": 24.5,
          "uom": "KGM"
        },
        {
          "type": "battery:carbonFootprintProduction",
          "value": 28.3,
          "uom": "KGM"
        },
        {
          "type": "battery:carbonFootprintDistribution",
          "value": 4.2,
          "uom": "KGM"
        },
        {
          "type": "battery:carbonFootprintRecycling",
          "value": 4.2,
          "uom": "KGM"
        }
      ]
    }
  ],
  "masterDataAvailableFor": [
    {
      "id": "https://id.gs1.org/01/09521234000013/21/BAT2024-001",
      "battery:carbonFootprintPerformanceClass": "B",
      "battery:calculationStandard": "ISO 14067:2018",
      "battery:carbonFootprintDeclarationId": "CFP-2024-00042"
    }
  ]
}
```## Adverse Events ### Negative Event (Damage/Accident)**Purpose**: Record accidents, damage, or safety incidents | **Field** | **Value** |
| --- | --- | | `**@type**` | `**ObjectEvent**` | | `**action**` | `**OBSERVE**` | | `**bizStep**` | `**inspecting**` | | `**disposition**` | `**damaged**` |**Sensor Report Properties**: - `**battery:incidentSeverity**` - Type of incident (transport_damage, fire, etc.) - `**battery:eventDate**` - When the incident occurred**Per-incident masterdata** (in `**masterDataAvailableFor**`): - `**battery:incidentId**` — unique ID for this incident - `**battery:incidentSeverity**` — Minor, Moderate, Major, Critical - `**battery:inspectorId**` — GLN/GIAI of the inspector - `**battery:recommendedAction**` — what to do next**Example**:```
{
  "@context": [
    "https://ref.openepcis.io/extensions/eu/battery/battery-context.jsonld",
    "https://ref.gs1.org/standards/epcis/epcis-context.jsonld"
  ],
  "type": "ObjectEvent",
  "action": "OBSERVE",
  "bizStep": "inspecting",
  "disposition": "damaged",
  "epcList": [
    "https://id.gs1.org/01/09521234000013/21/BAT2024-001"
  ],
  "battery:incidentSeverity": "Minor",
  "sensorElementList": [
    {
      "sensorReport": [
        {
          "type": "battery:stateOfHealth",
          "value": 93.8,
          "uom": "P1"
        }
      ]
    }
  ],
  "masterDataAvailableFor": [
    {
      "id": "https://id.gs1.org/01/09521234000013/21/BAT2024-001",
      "battery:incidentId": "INC-2025-00023",
      "battery:recommendedAction": "Schedule follow-up inspection in 30 days"
    }
  ]
}
```### Temperature Excursion**Purpose**: Record temperature exposure outside safe limits | **Field** | **Value** |
| --- | --- | | `**@type**` | `**ObjectEvent**` | | `**action**` | `**OBSERVE**` | | `**bizStep**` | `**inspecting**` | | `**disposition**` | `**needs_replacement**` or `**active**` |**Sensor Types**: - `**battery:maximumTemperature**` — high temperature exposure - `**battery:minimumTemperature**` — low temperature exposure - `**Temperature**` — actual temperature reading (GS1 Web Vocabulary, unprefixed)**Additional Properties**: - `**battery:exposureDurationMinutes**`- `**battery:exceedanceThreshold**`- `**minValue**`, `**maxValue**`, `**meanValue**`, `**sDev**`**Per-excursion masterdata** (in `**masterDataAvailableFor**`): - `**battery:temperatureExcursionId**` — unique ID for this excursion - `**battery:exposureEndTime**` — duration of the excursion - `**battery:transportConditions**` — context (carrier, route, etc.) - `**battery:estimatedImpact**` — assessor's note on consequence**Example**:```
{
  "@context": [
    "https://ref.openepcis.io/extensions/eu/battery/battery-context.jsonld",
    "https://ref.gs1.org/standards/epcis/epcis-context.jsonld"
  ],
  "type": "ObjectEvent",
  "action": "OBSERVE",
  "bizStep": "inspecting",
  "disposition": "needs_replacement",
  "epcList": [
    "https://id.gs1.org/01/09521234000013/21/BAT2024-001"
  ],
  "sensorElementList": [
    {
      "sensorReport": [
        {
          "type": "battery:maximumTemperature",
          "value": 65.2,
          "uom": "CEL",
          "minValue": 52.0,
          "maxValue": 65.2,
          "meanValue": 58.4
        },
        {
          "type": "Temperature",
          "value": 65.2,
          "uom": "CEL",
          "battery:exposureDurationMinutes": 127,
          "battery:exceedanceThreshold": 50
        }
      ]
    }
  ],
  "masterDataAvailableFor": [
    {
      "id": "https://id.gs1.org/01/09521234000013/21/BAT2024-001",
      "battery:temperatureExcursionId": "TEMP-EXC-2025-00089",
      "battery:estimatedImpact": "Potential minor capacity degradation",
      "battery:exposureEndTime": "2025-07-17T08:27:00.000Z"
    }
  ]
}
```## Sensor Metadata All sensor measurements should include metadata:```
{
  "sensorMetadata": {
    "@type": "sensorMetadata",
    "time": "2025-06-15T09:30:00.000Z",
    "deviceID": "https://id.gs1.org/8004/9521987BMS-001",
    "deviceMetadata": "https://bms-vendor.example.com/devices/BMS-3000",
    "dataProcessingMethod": "https://www.iec.ch/standards/62660-1",
    "bizRules": "SoH measurement per EU Battery Regulation 2023/1542"
  }
}
```| **Field** | **Description** |
| --- | --- | | `**time**` | When measurement was taken | | `**deviceID**` | GIAI URI of measuring device | | `**deviceMetadata**` | URL to device specifications | | `**dataProcessingMethod**` | Standard used for measurement | | `**bizRules**` | Business rules applied | ## Unit Codes Reference All measurements use UN/CEFACT Rec 20 codes: | **Measurement** | **Code** | **Symbol** | **Example** |
| --- | --- | --- | --- | | Percentage | `**P1**` | % | SoH, SoC, Fade | | Ampere-hour | `**AH**` | Ah | Capacity | | Kilowatt-hour | `**KWH**` | kWh | Energy | | Volt | `**VLT**` | V | Voltage | | Kilowatt | `**KWT**` | kW | Power | | Ohm | `**OHM**` | Ω | Resistance | | Celsius | `**CEL**` | °C | Temperature | | Kilogram | `**KGM**` | kg | Weight, CO2 | ## bizStep and disposition Values ### bizStep (Business Step) | **Value** | **Use Case** |
| --- | --- | | `**commissioning**` | Battery creation | | `**inspecting**` | Measurements, assessments | | `**accepting**` | Ownership transfer | | `**notifying**` | Regulatory notifications | | `**shipping**` | Transport | | `**receiving**` | Receipt at destination | ### disposition (Disposition) | **Value** | **Use Case** |
| --- | --- | | `**active**` | Normal operation | | `**in_transit**` | Being transported | | `**conformant**` | Compliance confirmed | | `**damaged**` | Physical damage | | `**needs_replacement**` | End of service life | ## Event Sequence Example Typical battery lifecycle event sequence: | **Order** | **Event** | **bizStep** | **disposition** |
| --- | --- | --- | --- | | 1 | Commissioning | `**commissioning**` | `**active**` | | 2 | Regulatory Filing | `**notifying**` | `**conformant**` | | 3 | Carbon Footprint | `**inspecting**` | `**active**` | | 4 | Sale/Transfer | `**accepting**` | `**in_transit**` | | 5 | Periodic SoH | `**inspecting**` | `**active**` | | 6 | Incident (if any) | `**inspecting**` | `**damaged**` | | 7 | SOCE Measurement | `**inspecting**` | `**active**` | | 8+ | Ongoing monitoring | `**inspecting**` | varies |