TracePass
Pässe

Pass archivieren (unumkehrbar)

Unumkehrbar. Der öffentliche Viewer gibt 404 zurück, die GS1-Digital-Link-URL löst nicht mehr auf, der QR-Code stirbt endgültig, es sei denn, der Pass wurde an einen neuen Anbieter weitergeleitet. Nur für Produkte verwenden, die nie ausgeliefert wurden — das Archivieren eines Passes für ein Produkt, das bereits bei Kunden ist, zerstört jeden QR-Scan, den sie je damit machen werden.

POST/api/v1/passports/{id}/archive
OpenAPI 3.1 herunterladen
POST/api/v1/passports/{id}/archive

Pass archivieren (unumkehrbar)

Unumkehrbar. Der öffentliche Viewer gibt 404 zurück, die GS1-Digital-Link-URL löst nicht mehr auf, der QR-Code stirbt endgültig, es sei denn, der Pass wurde an einen neuen Anbieter weitergeleitet. Nur für Produkte verwenden, die nie ausgeliefert wurden — das Archivieren eines Passes für ein Produkt, das bereits bei Kunden ist, zerstört jeden QR-Scan, den sie je damit machen werden.

Die HTTP-Methode ist POST und der Pfad enthält das literale archive-Segment — beides bewusste Reibung. Um einen Pass stattdessen aus der API und von allen öffentlichen Oberflächen zu nehmen, löschen Sie ihn in zwei Schritten: POST /api/v1/passports/{id}/mark-for-deletion, dann DELETE /api/v1/passports/{id}. Ein zur Löschung markierter Pass kann nicht archiviert werden (409 passport_already_marked_for_deletion). Zählt als ein v1-Schreibvorgang. Unterstützt Idempotency-Key. Sendet den passport.archived-Webhook. Idempotent: das Archivieren eines bereits archivierten Passes gibt 200 zurück.

Batteriepässe brauchen einen Grund. Nach der Batterieverordnung endet ein Batteriepass erst, wenn die Batterie recycelt wurde (Art. 77 Abs. 8), daher nennt das Archivieren den Grund: recycled, never_placed (nie in Verkehr gebracht) oder duplicate_or_error. Ohne Grund antwortet ein Batteriepass mit 400 reason_required. Für andere Kategorien ist der Body optional; ein angegebener reason muss einer der drei Werte sein. Der Grund wird im Payload des passport.archived-Webhooks mitgeliefert. POST /api/v1/passports/by-serial/{serial}/archive nimmt denselben Body.

never_placed wird bei einem in Verkehr gebrachten Pass abgelehnt. Ein als in Verkehr gebracht registrierter Pass antwortet bei diesem Grund mit 409 reason_contradicts_placement. recycled und duplicate_or_error bleiben möglich.

Pfad-Parameter

  • iderforderlich

    string (24 hex chars)

    Pass-ID.

Header

  • Authorizationerforderlich

    string

    Bearer <token> — entweder ein tp_ API-Schlüssel (Developer → API Keys; am einfachsten, für Server-zu-Server) oder ein OAuth-2.0-Access-Token (Developer → OAuth Apps; für nutzerautorisierte Apps, scoped und widerrufbar). Die Authentication-Seite enthält den vollständigen OAuth-Flow und die Scope-Liste.

    e.g. Bearer tp_REDACTED_xxxxxxxxxxxx

  • Idempotency-Key

    string

    UUID v4.

Body-Felder

  • reason

    enum

    recycled, never_placed oder duplicate_or_error. Pflicht für Batteriepässe, optional für andere Kategorien.

    e.g. never_placed

Anfrage

curl -sS -X POST \
  https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/archive \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "never_placed" }'

Antwort

{
  "_id": "6650b2c3d4e5f6a7b8c9d0e1",
  "status": "archived",
  "archivedAt": "2026-05-09T17:00:00.000Z",
  "archiveReason": "never_placed"
}