/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). Vengono eliminati anche i file archiviati che appartenevano solo a questo prodotto.
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; l'eliminazione viene registrata nella traccia di controllo del tuo account.
Parametri di percorso
- idobbligatorio
string (24 hex chars)
ID del prodotto.
Header
- Authorizationobbligatorio
string
Bearer <token>— una chiave APItp_(Developer → API Keys; più semplice, per server-to-server) oppure un access token OAuth 2.0 (Developer → OAuth Apps; per app autorizzate dall'utente, scoped e revocabili). La pagina Authentication contiene il flusso OAuth completo e l'elenco degli scopes.e.g. Bearer tp_REDACTED_xxxxxxxxxxxx
- 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,
"filesDeleted": 4
}
}
}