TracePass
Produkte

Produkt dauerhaft löschen

**Dauerhaft und unumkehrbar.** Entfernt die Produkt-Zeile + alle hochgeladenen Dokumente, deren einzige Referenz dieses Produkt war (Dokumente, die mit anderen Produkten/Pässen verknüpft sind, bleiben erhalten, nur ohne `productId`). Der R2-Speicher unter `<companyId>/products/<productId>/` wird bereinigt.

DELETE/api/v1/products/{id}
OpenAPI 3.1 herunterladen
DELETE/api/v1/products/{id}

Produkt dauerhaft löschen

**Dauerhaft und unumkehrbar.** Entfernt die Produkt-Zeile + alle hochgeladenen Dokumente, deren einzige Referenz dieses Produkt war (Dokumente, die mit anderen Produkten/Pässen verknüpft sind, bleiben erhalten, nur ohne `productId`). Der R2-Speicher unter `<companyId>/products/<productId>/` wird bereinigt.

**Nur Produkte mit NULL Pässen jeglichen Status sind berechtigt** — einschließlich archivierter. Gibt `409 Conflict` mit der Live-Passzahl in `reason` zurück, wenn nicht berechtigt. Die Regel bewahrt die Audit-Historie: Ein archivierter Pass trägt die regulatorische Geschichte ("wir haben dies veröffentlicht, dann zurückgezogen"), die verwaist wäre, wenn das übergeordnete Produkt verschwindet.

**Bezahlplan-Funktion.** Gibt auf Free-Plänen `403 Forbidden` zurück; verwenden Sie stattdessen `POST /api/v1/products/{id}/archive` — Archivieren behält die Zeile für Audit und funktioniert auf jedem Plan.

Zählt als ein v1-Schreibvorgang. Unterstützt `Idempotency-Key`. Kein Webhook (der `billingEvents`-Audit-Eintrag ist die Spur).

Pfad-Parameter

  • iderforderlich

    ObjectId

    Produkt-ID.

Header

  • Authorizationerforderlich

    string

    `Bearer <api-key>`.

  • Idempotency-Key

    string

    UUID v4.

Anfrage

curl -sS -X DELETE \
  https://app.tracepass.eu/api/v1/products/6650b2c3d4e5f6a7b8c9d0e1 \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx"

Antwort

{
  "message": "Product permanently deleted",
  "summary": {
    "productId": "6650b2c3d4e5f6a7b8c9d0e1",
    "name": "Demo product",
    "deletedCounts": {
      "documentRefsUnlinked": 2,
      "documentsDeleted": 1,
      "r2ObjectsDeleted": 3,
      "documentR2ObjectsDeleted": 1
    }
  }
}

Verwandte Endpoints