Skip to main content
Sustainista

For integrators

The battery passport interface

Mandatory methods per EN 18222 Table 17 on top of the EN 18223 data model. The OpenAPI file describes every call in full. It is the handover to integrators and replaces reading our code.

Reading needs no key

Annex XIII point 1 of Regulation (EU) 2023/1542 is public by definition, and EN 18222 attaches no access condition to it. A key raises the disclosure tier; it does not unlock the interface.

The response carries no envelope

If you expect a DPP object, DigitalProductPassportID sits under “data”, not under “data.data”. The Table 14 result object sits beside it under “result”.

Endpoints

Path and method at a glance. Parameters, response shapes and error codes live in the specification, there and nowhere else, so no second description can drift away from it.

Read and resolve

  • GET/api/dpp/v1/dppsByIdAndDate/{dppId}
  • GET/api/dpp/v1/dppsByProductId/{productId}
  • GET/api/dpp/v1/dppsByProductIdAndDate/{productId}
  • POST/api/dpp/v1/dppsByProductIds

Create and change

  • GETPATCHDELETE/api/dpp/v1/dpps/{dppId}
  • GETPATCH/api/dpp/v1/dpps/{dppId}/collections/{elementId}
  • GETPATCH/api/dpp/v1/dpps/{dppId}/elements/{elementPath}
  • POST/api/dpp/v1/dpps

Semantics

  • GET/api/dpp/v1/context
  • GET/api/dpp/v1/context/{version}
  • GET/api/dpp/v1/vocab
  • GET/api/dpp/v1/dict/{key}/{version}

Proof

  • GET/api/v1/dpps/{uid}/proof

Access beyond the public tier

Recyclers, repairers, notified bodies and market surveillance see more than the public. A key carries exactly one of those roles and belongs to exactly one tenant; we issue it, not a signup form.

How a passport is created and lives
Battery passport API: specification and endpoints | Sustainista