TracePass
Prodotti

Eliminare un prodotto definitivamente

**Permanente e irreversibile.** Rimuove la riga del prodotto + qualsiasi documento caricato la cui unica referenza era questo prodotto (i documenti collegati ad altri prodotti/passaporti restano, solo con `productId` rimosso). Lo storage R2 sotto `<companyId>/products/<productId>/` viene ripulito.

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

Eliminare un prodotto definitivamente

**Permanente e irreversibile.** Rimuove la riga del prodotto + qualsiasi documento caricato la cui unica referenza era questo prodotto (i documenti collegati ad altri prodotti/passaporti restano, solo con `productId` rimosso). Lo storage R2 sotto `<companyId>/products/<productId>/` viene ripulito.

**Solo i prodotti con ZERO passaporti di qualsiasi stato sono idonei** — inclusi archiviati. Restituisce `409 Conflict` con il conteggio attivo dei passaporti in `reason` quando non idoneo. La regola preserva la cronologia di audit: un passaporto archiviato porta la storia normativa ("abbiamo pubblicato questo, poi ritirato") che sarebbe orfana se il prodotto padre scomparisse.

**Funzione del piano a pagamento.** Restituisce `403 Forbidden` sui piani Free; utilizzare invece `POST /api/v1/products/{id}/archive` — l'archiviazione mantiene la riga per l'audit e funziona su ogni piano.

Conta come una scrittura v1. Rispetta `Idempotency-Key`. Nessun webhook (la voce di audit in `billingEvents` è la traccia).

Parametri di percorso

  • idobbligatorio

    ObjectId

    ID del prodotto.

Header

  • Authorizationobbligatorio

    string

    `Bearer <api-key>`.

  • Idempotency-Key

    string

    UUID v4.

Richiesta

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

Risposta

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

Endpoint correlati