OwnYourData DPP Service
Entry maintained by the operator
- Operator
- OwnYourData · AT
- Web page
- https://dpp-service.ownyourdata.eu/
- Source code
- https://github.com/OwnYourData/dpp-service-public
- Licence
- Apache-2.0 (SPDX: Apache-2.0)
- API base
- https://dpp-service.ownyourdata.eu/dpp/v1
- Contact
- office@ownyourdata.eu
- Checks
- 15 of 15 passed · full, daily
- Listed since
- 2026-10-08
- Entry
- services/ownyourdata-dpp-service.yaml
Example passports · dpplint
reference passport
https://dpp.oydapp.eu/01/09520123456788/21/000001 · open in dpplint
5 of 5 automated checks passed (0 failed, 1 with warnings, 1 skipped) · checked 2026-10-18
Proposed criteria failed, not counted: 0
| Criterion | Title | Result |
|---|---|---|
| DPP-ID-016 | DID identifiers follow DID Core, DID Resolution and VC 2.0 | warning |
| DPP-DAT-003 | Passport is delivered as structured JSON | passed |
| DPP-DAT-016 | Passport is available as HTML | passed |
| DPP-ID-001 | Product identifier resolves to its passport | passed |
| DPP-ID-013 | Passport readable without registration or credentials | passed |
| DPP-SEC-002 | Integrity of the passport version is verifiable | skipped no evidence |
Service checks · dpp-validator
Run 2026-10-18T21:03:09Z · dpp-criteria 08ee851 · JSON
15 of 15 automated checks passed
(0 failed, 0 with warnings, 0 skipped)
Proposed criteria, not counted: 2 of 3 automated checks passed
| Criterion | Requirement and findings | Level | Result |
|---|---|---|---|
| DPP-API-007 v2 | Errors use the EN 18222 status codes | MUST | passed |
| DPP-API-013 v1 | Lifecycle API provides ReadDPPById | MUST | passed |
| DPP-API-014 v1 | Lifecycle API provides ReadDPPByProductId | MUST | passed |
| DPP-API-015 v1 | Lifecycle API provides ReadDPPIdsByProductIds | MUST | passed |
| DPP-API-019 v1 | Lifecycle API provides ReadDPPVersionByIdAndDate | SHOULD | passed |
| DPP-API-020 v1 | API paths carry the version prefix v1/ | MUST | passed |
| DPP-API-021 v2 | elementIdPath uses RFC 9535 JSONPath | MUST | passed |
| DPP-API-022 v1 | Unknown passport ID is answered with 404 | MUST | passed |
| DPP-API-023 v1 | API honours the representation query flag | MUST | passed |
| DPP-DEX-002 v1 | HTTPS with a valid certificate | MUST | passed |
| DPP-DEX-003 v1 | TLS 1.2 or higher, older versions refused | MUST | passed |
| DPP-DEX-004 v1 | API responses are JSON | MUST | passed |
| DPP-DEX-005 v1 | HTTP/2 is supported | MUST | passed |
| DPP-DEX-006 v1 | HTTP versions below HTTP/2 are not used | MUST | passed |
| DPP-SEC-001 v3 | Passport cannot be changed without authorisation | MUST | passed |
| DPP-ACC-012 v1 | Fine-granular read of a controlled element without credentials is refused (proposed, not counted)
|
MUST | failed |
| DPP-ACC-006 v1 | Controlled data elements are not delivered without authorisation (proposed, not counted) | MUST | passed |
| DPP-STO-017 v1 | Archived versions keep the access restrictions (proposed, not counted) | MUST | passed |
| DPP-ACC-003 v1 | Controlled data elements are delivered per role (proposed, not counted)
|
MUST | skipped needs credentials |
| DPP-ACC-008 v1 | Access policy defines element-level rights, granting and revocation (proposed, not counted)
|
MUST | skipped not evaluated |
| DPP-ACC-014 v1 | Access to controlled data is logged tamper-evidently (proposed, not counted)
|
MUST | skipped not evaluated |
| DPP-API-016 v1 | Lifecycle API provides UpdateDPPById (proposed, not counted)
|
MUST | skipped needs credentials |
| DPP-BAT-004 v2 | Battery passport releases Annex XIII point 3 data only to authorities (proposed, not counted)
|
MUST | skipped not applicable |
| DPP-OPS-006 v1 | Separate test and production environments (proposed, not counted)
|
SHOULD | skipped not evaluated |
Results of automated checks only. They are no certification and establish no presumption of conformity.