/api/v1/passports/{id}/mark-for-deletionPass zur Löschung markieren
Schritt eins von zwei. Ein Pass wird in zwei Schritten gelöscht: hier zur Löschung markieren, dann DELETE /api/v1/passports/{id} aufrufen (ein nie veröffentlichter Pass im Status draft oder in_review kann direkt gelöscht werden). Die Löschung ist ein Soft Delete: Es wird nichts vernichtet, aber der Pass verschwindet aus der API und von allen öffentlichen Oberflächen. Wer den QR-Code scannt, sieht eine Seite mit dem Hinweis, dass der Pass beendet ist, und die maschinenlesbaren Formate antworten mit 410 Gone.
Ein markierter Pass kann nicht mehr bearbeitet werden, und das Markieren eines veröffentlichten Passes gibt seinen Platz im Plan frei. Markiert werden kann ein Pass in jedem Status außer archiviert; eine zweite Markierung gibt 409 already_marked_for_deletion zurück. Sendet den passport.marked_for_deletion-Webhook.
Batteriepässe brauchen einen Grund. Nach der Batterieverordnung endet ein Batteriepass erst, wenn die Batterie recycelt wurde (Art. 77 Abs. 8), daher nennt die Anfrage den Grund, aus dem dieser Pass endet: 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 reason optional; wenn angegeben, muss es einer der drei Werte sein.
Abgelehnt, solange ein neuerer Pass darauf verweist. Solange ein neuerer Batteriepass in Ihrem Konto diesen Pass als Vorgänger verknüpft, antwortet die Markierung mit 409 has_live_successor; löschen Sie zuerst den neueren Pass.
Löschen über die API erfordert einen Bezahlplan: Auf Free antwortet die Markierung mit 403 deletion_not_on_plan. Zählt als ein v1-Schreibvorgang. Unterstützt Idempotency-Key. POST /api/v1/passports/by-serial/{serial}/mark-for-deletion ist die By-Serial-Alternative (mit dem ?gtin=-Disambiguator).
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 eintp_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_placedoderduplicate_or_error. Pflicht für Batteriepässe, optional für andere Kategorien.e.g. recycled
Anfrage
curl -sS -X POST \
https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/mark-for-deletion \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 4f9c2a7e-1b3d-4c5e-8f60-7a8b9c0d1e2f" \
-d '{ "reason": "recycled" }'Antwort
{
"_id": "6650b2c3d4e5f6a7b8c9d0e1",
"status": "marked_for_deletion",
"markedForDeletionAt": "2026-11-01T10:00:00.000Z",
"markedForDeletionReason": "recycled"
}