Passports

Read one passport.

Default response includes the full passport — translatable fields carry their sourceLocale and a per-locale translations map. ?lang=<locale> resolves every field through the public-viewer chain and returns one resolved value per field; ?format=full adds template-derived labels, units, and access levels alongside each value.

An alternate addressing form exists at GET /api/v1/passports/by-serial/{serial} with the same body and query-parameter behaviour.

get/api/v1/passports/{id}

Request

  • Base URL: https://app.tracepass.eu
  • URL: https://app.tracepass.eu/api/v1/passports/{id}
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://app.tracepass.eu/api/oauth/authorize, token URL https://app.tracepass.eu/api/oauth/token, scopes: passports:read)

Query parameters

format'full'

Set to full to include template field labels, units, and access levels alongside each field value.

langstring

ISO 639-1 locale to resolve every field value through the public-viewer chain (viewer-locale translation → source-locale value → English → first-applied → universal source). One of the 24 EU locales. When set, the translations map is dropped from each field.

Response

Passport.

_idstring

MongoDB ObjectId hex string (24 chars).

companyIdstring

MongoDB ObjectId hex string (24 chars).

productIdstring

MongoDB ObjectId hex string (24 chars).

templateIdstring

MongoDB ObjectId hex string (24 chars).

identifierKeystring

Canonical dedup key in <scheme>:<parts> form, e.g. gs1:00012345678905:SN-001 or did:did:example:123. Globally unique (sparse index) — the same identifier cannot exist across different accounts.

status'draft' | 'in_review' | 'approved' | 'published' | 'suspended' | 'expired' | 'archived'
completionPercentageinteger
fieldsobject
partiesPartyMap

Map of role → Party. Each role appears at most once.

dynamicDataAsOfstring date-time nullable

measuredAt of the newest battery measurement applied to this passport; null before the first one. Returned with format=full.

publishedAtstring date-time
suspendedAtstring date-time
suspensionReasonstring
archivedAtstring date-time
createdAtstring date-time
updatedAtstring date-time

Example response

{
  "_id": "6650a1b2c3d4e5f6a7b8c9d0",
  "companyId": "6650a1b2c3d4e5f6a7b8c9d0",
  "productId": "6650a1b2c3d4e5f6a7b8c9d0",
  "templateId": "6650a1b2c3d4e5f6a7b8c9d0",
  "identifier": {
    "gtin": "04012345000015"
  },
  "gs1": {
    "gtin": "04012345000015",
    "serialNumber": "BP-48V-100-000001",
    "digitalLinkUri": "https://id.tracepass.eu/p/01/04012345000015/21/BP-48V-100-000001"
  },
  "lineage": {
    "predecessors": [
      {
        "internalPassportId": "6650a1b2c3d4e5f6a7b8c9d0"
      }
    ]
  },
  "successors": [
    {
      "passportId": "6650a1b2c3d4e5f6a7b8c9d0"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.