# Regulatory compliance

Place your products inside the ESPR and the battery regulation, separate firm dates from forecasts, and know requirement by requirement what SealTrust covers.

Source: https://docs.sealtrust.io/en/conformite/

---

When you leave this page, you will know which European digital passport
obligations weigh on your products today, which ones do not exist yet, and which
dates are written into a legal text. You will also know, requirement by
requirement, what SealTrust covers and what it does not.

> [!ATTENTION] This page is not a substitute for legal advice
> It says what our teams have read in the legal texts and what our product does
> today. The detail that applies to your product category will be set by a
> delegated act of the Commission, and by that act alone. Have your conclusions
> reviewed by your own counsel.

## Two texts, two logics

Brands almost always ask us the same question: by what date do we have to be
ready. The answer depends on which text concerns you, because the two main ones
work in opposite ways.

### The ESPR sets a framework, then switches it on category by category

Regulation (EU) 2024/1781 on ecodesign for sustainable products, known as the
ESPR, has been in force since July 18, 2024. It targets almost every physical
product placed on the Union market, whatever the size of the company and its
country of establishment.

It is a framework regulation. It creates the digital product passport, then
switches it on product group by product group. Each group gets its own delegated
act, generally with a transition period of about eighteen months. There is
therefore no single switch-on date for the ESPR passport.

The consequence is direct. As long as the delegated act for your category is not
adopted, no list of mandatory fields applies to you. No supplier can hand you
the compliant list for textiles, electronics or construction today, because that
list is not written yet.

### The battery regulation carries its date in its own text

Regulation (EU) 2023/1542 on batteries works differently. The passport
obligation is written into article 77, with a firm date: the battery passport is
required from February 18, 2027. The expected content is described in Annex XIII
of the same regulation.

The scope covers three families: electric vehicle batteries, industrial
batteries above 2 kWh, and light means of transport batteries, for example those
of electric bikes and scooters. Portable batteries and starter batteries stay
outside this scope.

It is also the only category whose passport level is known to date: each battery
carries its own.

## The dates, firm and indicative

The table separates what is written in a legal text from what remains a
forecast. The "Status" column is the only one that matters when arbitrating a
budget.

| Text | Status | What is settled |
| --- | --- | --- |
| ESPR (EU) 2024/1781 | In force | Since July 18, 2024. No single passport date: each product group follows its own delegated act. |
| European passport registry, ESPR articles 12 and 13 | In force | Switched on in July 2026. |
| Battery regulation (EU) 2023/1542, article 77 | Firm | Battery passport required from February 18, 2027, for electric vehicle batteries, industrial batteries above 2 kWh and light means of transport batteries. |
| ESPR delegated act, textiles and clothing | Expected | Not published. Act expected around 2027, obligation expected around 2028. A planning horizon, not written into law. |
| ESPR, electrical and electronic equipment | Expected | No delegated act creates a passport for EEE to date. Electronics are handled through horizontal measures: repairability targeted around 2027, recyclability around 2029, as an indication. |
| Construction Products Regulation (EU) 2024/3110 | In force | Since January 7, 2025, applied in stages since January 8, 2026. No confirmed passport date for any product family. This sector does not take its dates from the ESPR working plan. |
| Ecodesign Regulation (EU) 2023/1670, smartphones and tablets | In force | Since June 20, 2025. This text imposes ecodesign requirements and does not create a passport obligation. |

The console renders six of these entries, without the row on the European
registry. It picks them according to the passport template attached to your
product model: a battery model displays the battery regulation, a textile model
displays the textile delegated act and the ESPR framework, an electronics model
displays the smartphone regulation and the EEE part of the ESPR. The state of
the European registry is displayed elsewhere, in the "Readiness" tab.

> [!INFO] Why we also display the empty cells
> An expected date remains a forecast as long as its act is not adopted. We flag
> them as such in the console and on this page. An obligation only begins when
> its act is adopted.

## The passport level decides your budget

The ESPR provides, in its recital 33, that delegated acts examine the
establishment of information requirements through a digital passport **at the
level of the model, the batch or the item**. The level is therefore decided act
by act, product family by product family.

Today, only batteries have a known level, and it is the item. For every other
category, the level is not set.

This point drives your labeling bill. A model passport calls for one record per
catalog reference. An item passport calls for a unique identifier per
manufactured piece, so unit-level marking across the whole production run. The
gap is counted in factors of one hundred or one thousand.

SealTrust attaches a passport either to a product model or to one specific item.
The reference passport, attached to the model, is shared by every item of that
model. The item passport carries the data specific to one unit, for example the
state of health of a battery.

> [!ATTENTION] The batch level does not exist here yet
> The text provides for three levels. SealTrust serves two: the model and the
> item. If a delegated act one day imposes the passport at batch level for your
> category, that level will have to be added. It is not available today.

## Requirement by requirement, what SealTrust covers

### A unique identifier carried by a data carrier

The ESPR provides that the delegated act of each product group specifies one or
more data carriers. Carrying both a QR code and a chip is therefore provided for
by the text.

Every item created in SealTrust receives a public serial number of twelve
characters, drawn at random. That number resolves at
`https://sealtrust.io/p/{serial}`, where `{serial}` is the number itself. That
is the address printed in the QR code.

The QR code alone is enough to identify a product and reach its passport. An NFC
seal is added when you want a proof of originality carried by the chip itself.
The battery passport template shipped with SealTrust declares the QR code as the
carrier, which is what the battery regulation requires.

### Machine-readable data, in standardized vocabularies

The ESPR requires, in its article 10, paragraph 1, point (d), that the passport
rely on standardized vocabularies.

SealTrust renders the passport in JSON-LD, with the Schema.org and GS1 Web
Vocabulary vocabularies. You get this format by adding `format=jsonld` to the
public read of an item.

:::onglets
```bash title="curl"
curl "https://api.sealtrust.io/v1/passport/000000000000?format=jsonld"
```
```typescript
const reponse = await fetch(
  "https://api.sealtrust.io/v1/passport/000000000000?format=jsonld"
);
const passeport = await reponse.json();
console.log(passeport["@context"]);
```
```python
import requests

reponse = requests.get(
    "https://api.sealtrust.io/v1/passport/000000000000",
    params={"format": "jsonld"},
    timeout=30,
)
passeport = reponse.json()
print(passeport["@context"])
```
:::

The rendered document declares three namespaces: `https://schema.org/` by
default, `gs1` for `https://gs1.org/voc/`, and `espr` for
`https://data.europa.eu/espr/`.

> [!INFO] The JSON-LD format applies to the item
> The `format=jsonld` parameter exists on the read of an item,
> `GET /passport/{identifier}`. The model-level read,
> `GET /passport/01/{gtin}`, does not accept it and returns the default JSON.

### Layered access, according to who is reading

The ESPR distinguishes several audiences: the public, consumers, value chain
professionals, and market surveillance authorities. One and the same passport
does not show the same fields to each of them.

SealTrust applies that distinction with six access tiers, asked for through the
`access_tier` parameter:

| Tier | Who gets it |
| --- | --- |
| `public` | everyone, without authentication |
| `end_user` | everyone, without authentication |
| `repairer` | authenticated account, accredited as a repairer on the brand |
| `recycler` | authenticated account, accredited as a recycler on the brand |
| `upstream` | authenticated account of the brand, or an authority |
| `authority` | authenticated account carrying the market surveillance authority role |

The three professional tiers and the authority tier require authentication. An
anonymous call that asks for one of them receives 401. An authenticated call
without the matching accreditation receives 403.

The three professional tiers, repairer, recycler and upstream, are different
audiences. None of them contains the others. Each of them inherits the public
tier and the end user tier, then adds what its trade calls for, and nothing
more: a repairer does not see the recycler's substances, a recycler does not see
the manufacturing origin. That is the only property that makes need-to-know hold
up.

`upstream` deserves a clarification, because it surprises people: no partner
accreditation opens it. It is reserved for the accounts of the brand itself and
for surveillance authorities. The two accreditations you can grant to a partner
are repairer and recycler.

We provide default values. You can replace them with your own rules, section by
section, in the "Access Rules" tab of the console. The full table of the fields
served at each tier is in the guide
[Digital Product Passport](/en/passeport-dpp/).

### Substances of concern

The ESPR handles substances of concern in its article 7, paragraph 5. It calls
for identifying them, saying where they sit in the product, at what
concentration, and which safety instructions apply.

The console carries a "Substances" tab dedicated to these declarations. A
declaration is attached to a product model, and optionally to one specific
component. It accepts:

| Data | What it contains |
| --- | --- |
| Identification | substance name, CAS number, EC number, IUPAC name |
| Location | where the substance sits in the product |
| Concentration | a numeric value, a unit and a level. The unit and the level are entered as free text, for example `ppm` and `trace` |
| Safety | usage instructions and a link to the safety data sheet |
| Classification | two checkboxes, substance of very high concern and restricted substance, plus a REACH status as free text |
| SCIP notification | the notification number in ECHA's SCIP database, when there is one |
| Origin | where the declaration comes from, for example a manufacturer declaration, a laboratory test or a supplier sheet |

These declarations feed three outputs: the signed attestation of the passport,
the JSON-LD export of the console, and the readiness score described further
down. In those outputs they sit under the `substances_of_concern` section,
served at the `recycler`, `upstream` and `authority` tiers, and closed at the
open tiers.

> [!ATTENTION] The JSON read of the passport does not go and fetch these declarations
> The public read of a passport returns the data of the passport itself, and
> nothing else. You will therefore only get a `substances_of_concern` section
> from that read if you have entered it in the passport data. To retrieve the
> declarations of the "Substances" tab, use the signed attestation or the
> JSON-LD export.

### The European passport registry

The ESPR provides, in its articles 12 and 13, for a central European registry.
That registry is an index. It does not host the data of your passports. It
records the unique product identifier, called UPI, and the address at which the
passport can be reached. It checks by itself that this address answers.

SealTrust builds that record for you. The UPI is the short address
`https://sealtrust.io/p/{serial}`. The record also carries the GTIN of the model
when it has one, the version of the passport, its hash, and the economic
operator identifiers filled in on your brand.

Three constraints of the registry are already known: the UPI must be an https
address, it must answer, and it must not exceed fifty characters. We check the
length before any submission and we set aside from the file any record that is
too long, because a single invalid record gets a whole file rejected.

> [!ATTENTION] Filing with the registry stays your responsibility
> Three facts, verified in July and August 2026. The only product group inside
> the scope of the registry today is batteries, and its semantic catalog is not
> published, which makes the validation of any submission fail. Enrollment
> requires a verified economic operator, registered with the identifier of its
> national trade register, an LEI code, a VAT number or an electronic identity,
> and a declaration sealed with a qualified electronic seal issued by a
> qualified trust service provider. That seal is held by you, never by us.
> Finally, the role of DPP service provider does not exist in the battery
> regulation: nobody can file in place of an economic operator as long as no
> delegated act has said who may.
>
> SealTrust therefore stops deliberately at the file. We produce the record and
> the file in the official format of the Commission, in JSON or in XML, cut into
> one hundred records per file. You upload it yourself.

You obtain that file today by asking SealTrust for it, with the list of items to
include, designated by their serial number. No console screen produces it yet.
The file comes with the list of the identifiers that were set aside, with the
reason for each exclusion.

In the console, the "Readiness" tab displays the state of the connector to the
registry. As long as sending is not switched on, the registration request
returns the complete record we have built, without any network call. You see the
content before it leaves.

> [!ATTENTION] The field names are ours
> The semantic catalog of the Commission is not published, and neither are the
> downloadable JSON and XML templates. The record we build therefore follows our
> own shape. The final mapping of the fields remains to be established when
> those documents appear.

> [!INFO] Registration with the registry applies to the item
> The registration path builds a record from the serial number of one unit. A
> reference passport, attached to a model without a unit, has no path to the
> registry today, whereas the ESPR recognizes that level. That is a limit of our
> implementation.

## The battery passport in detail

The battery passport template shipped with SealTrust follows the categories of
Annex XIII of Regulation (EU) 2023/1542. It applies to electric vehicle
batteries, to industrial batteries above 2 kWh and to light means of transport
batteries.

| Passport section | What it carries |
| --- | --- |
| Product identity | battery passport identifier, unique battery identifier, economic operator identifier, manufacturer identifier, category, status (`original`, `repurposed`, `reused`, `waste`), manufacturing date, date of putting into service, mass |
| Specification | chemistry, rated capacity, nominal voltage, minimum and maximum voltages, rated energy, power, internal resistance, temperature range, expected number of cycles |
| Materials | critical raw materials present, cathode, anode, electrolyte, hazardous substances |
| Environmental impact | total carbon footprint, footprint per kWh, footprint declared for the four life cycle stages (raw material acquisition, manufacturing, distribution, end-of-life recycling), link to the study, link to the due diligence report |
| State of health | remaining capacity, state of charge, certified energy, number of cycles, increase of the internal resistance, measurement date |
| Circularity | recycled content per metal, split between pre-consumer and post-consumer, for cobalt, lithium, nickel and lead, share of renewable content, recyclability, repairability, dismantling instructions, fire safety instructions, take-back scheme |

Two reading points matter for compliance.

**The general specification is public.** Annex XIII, part A, makes the general
information of the battery accessible to everyone. The `battery_specification`
section is therefore served from the `public` tier on. Without that, the public
battery passport would hold none of its specification.

**The state of health is restricted and specific to the unit.** We serve those
dynamic data at the `repairer`, `recycler` and `authority` tiers. They stay
closed to the public and to the upstream tier. A state of health value only
holds for one given physical battery, which matches the item level chosen by the
regulation.

## What the console gives you to steer with

The console gathers DPP compliance in a single area, under "DPP Compliance",
with seven tabs: Readiness, DPP Templates, Substances, Vocabulary, Access Rules,
EPCIS and DPP Passports.

> [!INFO] This area does not appear for every account
> The console hides the whole area if the profile chosen at the first sign-in of
> your account is the Basics profile. Change profile in the settings of the
> brand if the tabs do not show.

The "Readiness" tab computes a readiness score from 0 to 100 per product model.
The score is spread over seven dimensions, with the following weights:

| Dimension | Weight |
| --- | --- |
| Identity | 10 |
| Materials | 15 |
| Suppliers | 15 |
| Life cycle | 10 |
| Compliance | 20 |
| Substances | 15 |
| Evidence | 15 |

The "Evidence" dimension measures the actual coverage of your units. It counts
five factors of equal weight: the share of items carrying a published passport,
a signed attestation, a data hash, an IPFS copy and an active certificate of
authenticity. It answers the first question an auditor asks: on how many pieces.

For the models attached to the battery or consumer electronics passport
template, a sixth factor is added: the presence of at least one substance
declaration, or the statement in the passport that no substance is present above
the threshold. Either one is enough.

The console records the score over time, which traces a curve. A drop of more
than five points against the previous measurement raises an alert.

Two exports go with the score. The evidence pack in PDF format exists for a
product model and for your whole brand. The regulatory calendar takes up the six
regulatory entries described above, picked according to the passport template
attached to the product model.

> [!INFO] Substances are only required where a text requires them
> The score calls for substance declarations for batteries and for consumer
> electronics. It does not call for them for construction products, because the
> delegated act that would set the list is not published. Lowering a grade for a
> requirement nobody has written would amount to inventing an obligation.

## What SealTrust does not cover

This list is as important as the previous one.

- **The passport at batch level.** The text provides for three levels, SealTrust
  serves two, the model and the item.
- **Filing with the European registry in your place.** We produce the record and
  the file. Your company does the enrollment and the upload, with its own
  qualified electronic seal.
- **A console screen for the filing file.** No screen produces it yet. You ask
  SealTrust for it.
- **The final mapping of the registry fields.** The semantic catalog of the
  Commission is not published. Our record follows our own shape in the
  meantime.
- **The registration of a reference passport with the registry.** The
  registration path starts from the serial number of one unit.
- **Returning substance declarations through the JSON read of the passport.**
  They go through the signed attestation and through the JSON-LD export.
- **A compliant list of fields for textiles, electronics or construction.** Our
  passport templates for these categories are anticipatory. They take up data
  that these sectors already produce elsewhere. They cannot be compliant with a
  delegated act that does not exist.
- **Legal advice.** We describe legal texts and a product.

## Where to start

Four steps, in this order, whatever your category.

1. **Determine whether a firm date concerns you.** If you manufacture electric
   vehicle batteries, industrial batteries above 2 kWh or light means of
   transport batteries, your date is February 18, 2027 and your level is the
   item. In every other case, no passport date applies to you today.
2. **Set the level of your passport.** Model or item. That choice decides the
   marking to order, and it corrects badly once the production run is labeled.
3. **Structure identity and data.** A unique identifier per product, a durable
   data carrier, a composition and suppliers filled in per reference. That work
   stays valid whatever the delegated act that will come.
4. **Measure.** Publish a passport on one reference, look at the readiness
   score, deal with the gaps it names, and export the evidence pack.

## What to remember

- The ESPR has been in force since July 18, 2024, and it switches on category by
  category. No single passport date exists.
- The battery regulation carries a firm date in its own text: February 18, 2027,
  for electric vehicle batteries, industrial batteries above 2 kWh and light
  means of transport batteries.
- The delegated act of each family decides the passport level, model, batch or
  item. Only batteries have a known level today.
- SealTrust covers the unique identifier, the data carrier, the JSON-LD render,
  layered access, substance declarations and the building of the record for the
  European registry.
- SealTrust does not serve the batch level, does not file with the registry in
  your place, and cannot deliver a compliant list of fields for a category whose
  delegated act is not published.
