Passports

Archive a passport (irreversible).

Irreversible. Public viewer returns 404, the GS1 Digital Link URL stops resolving and the QR code dies for good, unless the passport has been forwarded to a new provider. Use ONLY for products that never shipped — archiving a passport for a product already in customers' hands breaks every QR scan they'll ever make.

The HTTP method is POST and the path includes a literal archive segment, both intentional friction. Fires the passport.archived webhook.

post/api/v1/passports/{id}/archive

Request

  • Base URL: https://app.tracepass.eu
  • URL: https://app.tracepass.eu/api/v1/passports/{id}/archive
  • 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:write)

Response

Archived. Idempotent — an already archived passport returns 200 with the existing document.

_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.