The public passport (current version)
No authentication. Only the public tier, as stored when the version was published (ADR-013).
Passports that are not public (qr_locked, withdrawn, suspended, deleted_recycled) answer
with their status and no content. Cached for 5 minutes; rate-limited per client address.
passportId*stringThe UUID of the passport identifier urn:dpp:{uuid}.
uuidThe passport.
application/json- response
The public passport JSON. document is the signed public projection (ADR-013); the other members
can change over the passport's life and are not signed.
document?A passport version projected to an access tier. The public projection is stored and signed at
publication (ADR-013); verify it by canonicalising this object with RFC 8785 (JCS), hashing it with
SHA-256 and checking the Ed25519 signature.
links*passport_id*stringstatus*PassportStatusStatus of a unit's passport (docs/domain-model.md §7).
"draft""qr_locked""published""update_needed""suspended""withdrawn""deleted_recycled"valid_until?stringSet when this version was replaced by a later one (history by date).
date-timeverification?curl -X GET 'https://example.com/api/v1/public/passports/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "document": { "category": { "key": "string", "label": { "de": "string", "en": "string" } }, "economic_operator": { "address": { "city": "string", "confirmed_source": "manual", "country": "string", "extra_line": "string", "place_id": "string", "postal_code": "string", "region": "string", "street": "string" }, "contact_person": "string", "name": "string", "spare_parts_contact": "string", "support_email": "user@example.com", "website": "string" }, "gs1_digital_link": "string", "gtin": "string", "model_name": "string", "passport_id": "string", "predecessor_passport_id": "string", "restricted_fields_present": [ "string" ], "sections": [ { "fields": [ { "documents": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "kind": "declaration_of_conformity", "mime": "string", "sha256": "string", "size_bytes": 0, "title": "string", "url": "string" } ], "key": "string", "label": { "de": "string", "en": "string" }, "legal": { "property1": "string", "property2": "string" }, "level": "model", "schema": { "enum": [ null ], "enum_labels": [ { "de": "string", "en": "string" } ], "items": {}, "label": { "de": "string", "en": "string" }, "max": 0, "max_bytes": 0, "max_items": 0, "max_length": 0, "mime": [ "string" ], "min": 0, "pattern": "string", "properties": [ { "name": "string", "schema": {} } ], "type": "string", "unit": "string" }, "status": "provided", "tier": "public", "trigger": { "de": "string", "en": "string" }, "unit": "string", "value": null } ], "key": "string", "label": { "de": "string", "en": "string" } } ], "serial_number": "string", "tier": "public", "version": { "no": 1, "published_at": "2019-08-24T14:15:22Z", "registry_version": "string" } }, "links": { "gs1_digital_link": "string", "json": "string", "keys": "string", "page": "string", "predecessor": "string", "restricted": "string", "successors": [ "string" ] }, "passport_id": "string", "status": "draft", "valid_until": "2019-08-24T14:15:22Z", "verification": { "algorithm": "Ed25519", "canonicalization": "RFC8785", "hash": "string", "key_id": "string", "keys_url": "string", "signature": "string", "signed_at": "2019-08-24T14:15:22Z" }}The public passport as it was at a point in time GET
No authentication. The version with `published_at ≤ at < valid_until`; `404` before the first publication. Versions are immutable, so the response is cached for a day.
Check the signatures of a version on the server GET
No authentication. A convenience: the same check works offline with the public JSON and `/.well-known/batterypass/keys.json` (ADR-004, ADR-013). Without `version_no`, the current version.