Passports

Suspend a passport (reversible).

Reversible suspend. The public viewer flips to the suspended state page (HTTP 423 with structured body); QR scans effectively die without the URL going to 404.

Optional reason body surfaces in the passport.suspended webhook payload and the dashboard audit trail (truncated at 500 chars). Empty body is fine.

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

Request

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

Request body

reasonstring

Response

Suspended.

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