---
title: "Battery Digital Product Passport"
description: "GS1-native implementation of EU Battery Regulation 2023/1542 Digital Product Passport using EPCIS 2.0"
canonical_url: "https://openepcis.io/docs/digital-product-passport/battery-dpp"
last_updated: "2026-07-02T20:31:55.301Z"
---

## Overview

The OpenEPCIS Battery DPP provides a **GS1-native implementation** of the EU Battery Regulation 2023/1542 Digital Product Passport requirements. Unlike approaches that require new data models or infrastructure, this implementation leverages existing GS1 standards that manufacturers already use.

<alert type="info">

**Disclaimer**: This is **not official GS1 guidance**, but it is built entirely on official GS1 standards and strives to follow GS1 best practices:

**Standards Used:**

- [GS1 Digital Link](https://www.gs1.org/standards/gs1-digital-link) — Resolvable URIs as product identifiers
- [EPCIS 2.0](https://ref.gs1.org/standards/epcis/) — Event-based traceability with JSON-LD
- [GS1 Web Vocabulary](https://www.gs1.org/voc/) — Linked data vocabulary
- [CBV 2.0](https://ref.gs1.org/standards/cbv/) — Business vocabulary (bizStep, disposition)

**GS1 Best Practices We Follow:**

- URIs that resolve (scan QR → get data)
- GLN for organizations, GTIN+serial for products
- EPCIS events with full provenance
- `regulatoryInformation` pattern (same as GS1 EUDR)

We invite everyone to use these templates — [feedback welcome](https://github.com/openepcis/openepcis-battery-dpp/issues)!

</alert>

**Key Advantages:**

- **Resolvable Identifiers**: Battery `@id` IS the resolver URL (GS1 Digital Link)
- **No New Infrastructure**: Uses existing GS1 Digital Link resolvers
- **Full Provenance**: EPCIS events capture WHO made WHAT change, WHEN, WHERE
- **Lower Barrier**: No membership fees or proprietary tooling required
- **Feb 2027 Ready**: Complete compliance path for EU Battery Regulation

## Quick Links

- [GitHub Repository](https://github.com/openepcis/openepcis-battery-dpp)
- [Battery Ontology](https://ref.openepcis.io/extensions/eu/battery/)
- [GS1 Digital Link](https://www.gs1.org/standards/gs1-digital-link)
- [EU Battery Regulation](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32023R1542)

## Architecture

The Battery DPP uses a two-layer architecture:

```plaintext
┌─────────────────────────────────────────────────────────────┐
│  GS1 Digital Link Resolver                                  │
│  https://id.gs1.org/01/{gtin}/21/{serial}                   │
│  - Content negotiation (JSON-LD / HTML)                     │
│  - Link type routing (?linkType=epcis)                  │
└─────────────────────────────────────────────────────────────┘
                              │
          ┌───────────────────┴───────────────────┐
          ▼                                       ▼
┌─────────────────────┐                 ┌─────────────────────┐
│  Product Master     │                 │  EPCIS Repository   │
│  (Static Data)      │                 │  (Dynamic Events)   │
├─────────────────────┤                 ├─────────────────────┤
│ • Manufacturer      │                 │ • State of Health   │
│ • Battery category  │                 │ • Cycle count       │
│ • Chemistry         │                 │ • Carbon footprint  │
│ • Materials         │                 │ • Ownership history │
│ • Hazardous subst.  │                 │ • Negative events   │
│ • Due diligence     │                 │ • Temperature logs  │
└─────────────────────┘                 └─────────────────────┘
```

### Static Data (Product Master)

Product master data is expressed as JSON-LD and contains:

- Manufacturer and operator information
- Battery category, chemistry, and technical specifications
- Material composition and hazardous substances
- Recycled content declarations
- Dismantling documents and spare part sources
- Supply chain due diligence
- Regulatory compliance information

### Dynamic Data (EPCIS Events)

Changes over time are captured as EPCIS events:

- State of Health (SoH) measurements
- State of Certified Energy (SOCE)
- Cycle count progression
- Carbon footprint declarations
- Ownership transfers
- Negative events (accidents, damage)
- Temperature excursions

## GS1 Identity Model

Every battery has a unique, resolvable identity:

```plaintext
https://id.gs1.org/01/{gtin}/21/{serial}
         │        │        │      │
         │        │        │      └── Serial number (AI-21)
         │        │        └── Application Identifier
         │        └── GTIN (AI-01)
         └── GS1 Digital Link base
```

**Example:**

```text
https://id.gs1.org/01/09521234000013/21/BAT2024-001
```

This URI:

- Resolves via content negotiation
- Returns JSON-LD for `Accept: application/ld+json`
- Returns HTML passport page for browsers
- Links to EPCIS event history via `?linkType=epcis`

## Vocabulary Namespaces

<table>
<thead>
  <tr>
    <th>
      Prefix
    </th>
    
    <th>
      Namespace
    </th>
    
    <th>
      Purpose
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        gs1:
      </code>
    </td>
    
    <td>
      <code>
        https://ref.gs1.org/voc/
      </code>
    </td>
    
    <td>
      Core GS1 vocabulary
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        battery:
      </code>
    </td>
    
    <td>
      <code>
        https://ref.openepcis.io/extensions/eu/battery/
      </code>
    </td>
    
    <td>
      Battery-specific terms
    </td>
  </tr>
</tbody>
</table>

The battery vocabulary extends GS1 with domain-specific classes and properties. Selected published classes:

- `battery:BatteryChemistry`
- `battery:TechnicalSpecification`
- `battery:HazardousSubstance`
- `battery:NegativeEvent`
- `battery:RecycledContent`

EPCIS sensor reports use the lowercase property IRIs as their `type` — e.g. `battery:stateOfHealth`, `battery:cycleCount`, `battery:capacityFade`, `battery:stateOfCertifiedEnergy`. See the [battery vocabulary browser](https://ref.openepcis.io/extensions/eu/battery/) for the full list.

## EPCIS Event Examples

### Battery Commissioning

When a battery is created:

```json [Commissioning Event]
{
  "@context": [
    "https://ref.openepcis.io/extensions/eu/battery/battery-context.jsonld",
    "https://ref.gs1.org/standards/epcis/epcis-context.jsonld"
  ],
  "type": "EPCISDocument",
  "schemaVersion": "2.0",
  "creationDate": "2024-03-15T14:30:00.000Z",
  "epcisBody": {
    "eventList": [{
      "type": "ObjectEvent",
      "eventID": "urn:uuid:550e8400-e29b-41d4-a716-446655440001",
      "eventTime": "2024-03-15T14:30:00.000Z",
      "eventTimeZoneOffset": "+01:00",
      "epcList": ["https://id.gs1.org/01/09521234000013/21/BAT2024-001"],
      "action": "ADD",
      "bizStep": "commissioning",
      "disposition": "active",
      "sensorElementList": [{
        "sensorReport": [
          { "type": "battery:stateOfHealth", "value": 100, "uom": "P1" },
          { "type": "battery:cycleCount", "value": 0 }
        ]
      }]
    }]
  }
}
```

### State of Health Update

Periodic health measurements:

```json [State of Health Event]
{
  "@context": "https://ref.gs1.org/standards/epcis/epcis-context.jsonld",
  "type": "ObjectEvent",
  "action": "OBSERVE",
  "bizStep": "inspecting",
  "sensorElementList": [
    {
      "sensorReport": [
        {
          "type": "battery:stateOfHealth",
          "value": 94.2,
          "uom": "P1"
        },
        {
          "type": "battery:stateOfCertifiedEnergy",
          "value": 85.3,
          "uom": "P1"
        },
        {
          "type": "battery:cycleCount",
          "value": 847
        },
        {
          "type": "battery:capacityFade",
          "value": 5.8,
          "uom": "P1"
        }
      ]
    }
  ]
}
```

### Negative Event (Damage)

Recording accidents or damage. `battery:incidentSeverity` carries the severity classification (`Minor`, `Moderate`, `Major`, `Critical` from the published `battery:IncidentSeverity` class), and a sensor reading captured at the moment of the event rides in `sensorElementList`. The incident class itself (`PhysicalDamage`, `ThermalEvent`, `DeepDischarge`, `ShortCircuit`, …) is part of the published `battery:NegativeEvent` enumeration; the corroborating narrative or report is referenced from `bizTransactionList` (e.g. an incident-report PDF):

```json [Negative Event]
{
  "@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",
  "battery:incidentSeverity": "Major",
  "sensorElementList": [
    {
      "sensorReport": [
        {
          "type": "battery:stateOfHealth",
          "value": 75,
          "uom": "P1"
        }
      ]
    }
  ],
  "bizTransactionList": [
    {
      "type": "urn:epcglobal:cbv:btt:cert",
      "bizTransaction": "https://example.com/incidents/INC-2025-0034.pdf"
    }
  ]
}
```

## Regulatory Compliance

### GS1 Regulatory Information Pattern

The battery DPP uses the official GS1 regulatory information pattern:

```json
"regulatoryInformation": [{
  "@type": "gs1:RegulatoryInformation",
  "regulationType": {
    "@id": "gs1:RegulationTypeCode-BATTERY_DIRECTIVE"
  },
  "regulatoryAct": "EU 2023/1542"
}]
```

This aligns with GS1's EUDR approach and provides a consistent pattern for regulatory compliance data.

### Annex XIII Compliance Mapping

<table>
<thead>
  <tr>
    <th>
      Requirement
    </th>
    
    <th>
      Implementation
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Unique identifier
    </td>
    
    <td>
      <code>
        @id
      </code>
      
       = GS1 Digital Link
    </td>
  </tr>
  
  <tr>
    <td>
      Manufacturer info
    </td>
    
    <td>
      <code>
        gs1:manufacturer
      </code>
      
       with GLN
    </td>
  </tr>
  
  <tr>
    <td>
      Carbon footprint
    </td>
    
    <td>
      EPCIS event with lifecycle breakdown
    </td>
  </tr>
  
  <tr>
    <td>
      State of Health
    </td>
    
    <td>
      EPCIS <code>
        sensorReport
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Material composition
    </td>
    
    <td>
      <code>
        battery:materialComposition
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Hazardous substances
    </td>
    
    <td>
      <code>
        battery:hazardousSubstances
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Recycled content
    </td>
    
    <td>
      Pre/post consumer split
    </td>
  </tr>
  
  <tr>
    <td>
      Dismantling info
    </td>
    
    <td>
      <code>
        battery:dismantlingDocuments
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Due diligence
    </td>
    
    <td>
      <code>
        battery:supplyChainDueDiligence
      </code>
    </td>
  </tr>
</tbody>
</table>

## Unit of Measure

All measurements use UN/CEFACT Rec 20 codes:

<table>
<thead>
  <tr>
    <th>
      Measurement
    </th>
    
    <th>
      Code
    </th>
    
    <th>
      Symbol
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Percentage
    </td>
    
    <td>
      <code>
        P1
      </code>
    </td>
    
    <td>
      %
    </td>
  </tr>
  
  <tr>
    <td>
      Ampere-hour
    </td>
    
    <td>
      <code>
        AH
      </code>
    </td>
    
    <td>
      Ah
    </td>
  </tr>
  
  <tr>
    <td>
      Kilowatt-hour
    </td>
    
    <td>
      <code>
        KWH
      </code>
    </td>
    
    <td>
      kWh
    </td>
  </tr>
  
  <tr>
    <td>
      Volt
    </td>
    
    <td>
      <code>
        VLT
      </code>
    </td>
    
    <td>
      V
    </td>
  </tr>
  
  <tr>
    <td>
      Kilowatt
    </td>
    
    <td>
      <code>
        KWT
      </code>
    </td>
    
    <td>
      kW
    </td>
  </tr>
  
  <tr>
    <td>
      Ohm
    </td>
    
    <td>
      <code>
        OHM
      </code>
    </td>
    
    <td>
      Ω
    </td>
  </tr>
  
  <tr>
    <td>
      Celsius
    </td>
    
    <td>
      <code>
        CEL
      </code>
    </td>
    
    <td>
      °C
    </td>
  </tr>
</tbody>
</table>

## Timeline

- **August 2025**: Economic operators must prepare DPP infrastructure
- **February 2027**: Full DPP requirements enter into force
- **2030+**: Recycled content thresholds increase

## Getting Started

1. **Clone the repository**```bash
git clone https://github.com/openepcis/openepcis-battery-dpp
```
2. **Review example files**
  - `examples/battery-product.jsonld` - Complete product master
  - `epcis/*.jsonld` - Event examples
3. **Configure your GS1 Digital Link resolver**
  - Set up content negotiation
  - Link to your EPCIS repository
4. **Integrate EPCIS event capture**
  - Use OpenEPCIS tools for event validation
  - Configure sensor data collection from BMS

## Resources

- [Implementation Guide](/docs/digital-product-passport/battery-dpp/implementation-guide)
- [EPCIS Event Types](/docs/digital-product-passport/battery-dpp/event-types)
- [Complete Examples](/docs/digital-product-passport/battery-dpp/complete-examples)
- [Battery vocabulary browser](https://ref.openepcis.io/extensions/eu/battery/) — the live ontology

## GS1 Standards Used

This implementation is built on the following official GS1 standards and guidelines:

<table>
<thead>
  <tr>
    <th>
      Standard
    </th>
    
    <th>
      How We Use It
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <a href="https://www.gs1.org/standards/gs1-digital-link" rel="nofollow">
        GS1 Digital Link
      </a>
    </td>
    
    <td>
      URI structure for <code>
        @id
      </code>
      
      , QR code encoding
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://ref.gs1.org/standards/epcis/" rel="nofollow">
        EPCIS 2.0
      </a>
    </td>
    
    <td>
      Event capture, JSON-LD serialization
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://ref.gs1.org/standards/cbv/" rel="nofollow">
        Core Business Vocabulary (CBV) 2.0
      </a>
    </td>
    
    <td>
      bizStep, disposition values
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://www.gs1.org/voc/" rel="nofollow">
        GS1 Web Vocabulary
      </a>
    </td>
    
    <td>
      Product attributes, organization data
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://www.gs1.org/standards/barcodes/application-identifiers" rel="nofollow">
        GS1 Application Identifiers
      </a>
    </td>
    
    <td>
      GTIN, serial, GLN, GIAI encoding
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://ref.gs1.org/standards/eudr/" rel="nofollow">
        GS1 EUDR Standard
      </a>
    </td>
    
    <td>
      <code>
        regulatoryInformation
      </code>
      
       pattern
    </td>
  </tr>
</tbody>
</table>

**Additional GS1 Resources:**

- [GS1 Check Digit Calculator](https://www.gs1.org/services/check-digit-calculator)
- [GS1 Company Prefix](https://www.gs1.org/standards/id-keys/company-prefix)
- [GS1 Prefix 952 for Demos](https://www.gs1.org/standards/bc-epc-interop)

## Contact

For questions about the Battery DPP implementation, please contact us at [info@openepcis.io](mailto:info@openepcis.io).
