/api/v1/passports/{id}Eliminare un passaporto definitivamente
**Permanente e irreversibile** — la riga del passaporto più ogni dipendenza in cascata vengono rimosse dal database. La cascata include estrazioni IA, stato della sessione dell'agente, richieste ai fornitori collegate solo a questo passaporto, eventi di scansione + assistenza, e qualsiasi documento caricato la cui unica referenza era questo passaporto (i documenti condivisi con altri passaporti/prodotti restano). Anche lo storage R2 sotto la cartella del passaporto viene ripulito.
**Solo i passaporti mai pubblicati sono idonei.** Un passaporto con stato `draft` o `in_review` e `publishedAt: null` può essere eliminato; tutto il resto restituisce `409 Conflict` con un campo `reason` che nomina la policy. Questo è intenzionale: la protezione di conformità per i codici QR stampati in circolazione viene preservata — un passaporto che ha mai risolto pubblicamente non può essere distrutto silenziosamente.
**Funzione del piano a pagamento.** L'endpoint restituisce `403 Forbidden` con `reason` sui piani Free; utilizzare invece `POST /api/v1/passports/{id}/archive` — l'archiviazione mantiene la riga nella traccia di controllo e funziona su ogni piano.
Conta come una scrittura v1. Rispetta `Idempotency-Key`. Nessun webhook viene attivato (la voce di audit in `billingEvents` è la traccia).
Parametri di percorso
- idobbligatorio
ObjectId
ID del passaporto.
Header
- Authorizationobbligatorio
string
`Bearer <api-key>`.
- Idempotency-Key
string
UUID v4.
Richiesta
curl -sS -X DELETE \
https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1 \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx"Risposta
{
"message": "Passport permanently deleted",
"summary": {
"passportId": "6650b2c3d4e5f6a7b8c9d0e1",
"serialNumber": "SN-001",
"gtin": "09506000134369",
"deletedCounts": {
"extractions": 3,
"agentSessions": 1,
"serviceEvents": 0,
"scanEvents": 0,
"ownershipTransfers": 0,
"supplierRequestRefsRemoved": 0,
"supplierRequestsDeleted": 0,
"epcisEventRefsRemoved": 0,
"epcisEventsDeleted": 0,
"documentRefsRemoved": 1,
"documentsDeleted": 1,
"r2ObjectsDeleted": 4,
"documentR2ObjectsDeleted": 1
},
"dppsActiveDelta": -1
}
}