---
title: Sospendere un passaporto
description: Sospensione reversibile — viewer pubblico restituisce HTTP 423 con corpo strutturato. Per richiami, controversie, blocchi, indagini di qualità.
canonical: "https://www.tracepass.eu/it/docs/suspend-passport"
locale: it
source: "https://www.tracepass.eu/it/docs/suspend-passport"
---

# Sospendere un passaporto

> Sospensione reversibile — viewer pubblico restituisce HTTP 423 con corpo strutturato. Per richiami, controversie, blocchi, indagini di qualità.

```http
POST /api/v1/passports/{id}/suspend
```

Sospensione reversibile. Il visualizzatore pubblico passa alla pagina di stato sospeso (HTTP 423 con corpo strutturato); le scansioni QR di fatto smettono di funzionare senza che l'URL vada in 404. Usatelo per richiami, controversie, blocchi interni o indagini sulla qualità del prodotto. Ripubblicate dalla dashboard una volta risolto.

Corpo opzionale `{ reason: string }` — compare nel payload del webhook `passport.suspended` e nella traccia di controllo della dashboard (troncato a 500 caratteri). Un corpo vuoto va bene; la sospensione attiva comunque il webhook. Conta come una scrittura v1. Rispetta `Idempotency-Key`. Il corrispondente `POST /api/v1/passports/by-serial/{serial}/suspend` è l'alternativa per numero di serie.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Authorization` | header | string | yes | `Bearer <token>` — una chiave API `tp_` (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. |
| `Idempotency-Key` | header | string | no | UUID v4. |
| `id` | path | ObjectId | yes | ID del passaporto. |
| `reason` | body | string (≤ 500) | no | Motivo della sospensione a testo libero. |

## Examples

```bash
curl -sS -X POST \
  https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/suspend \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Quality investigation pending — batch BB-2026-04-12." }'
```

```typescript
await fetch(
  `https://app.tracepass.eu/api/v1/passports/${id}/suspend`,
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ reason: "Quality investigation pending" }),
  },
);
```

```python
import os, requests
res = requests.post(
    f"https://app.tracepass.eu/api/v1/passports/{passport_id}/suspend",
    headers={"Authorization": f"Bearer {os.environ['TRACEPASS_API_KEY']}"},
    json={"reason": "Quality investigation pending"},
)
res.raise_for_status()
```

## Responses

### 200 — Sospeso

```json
{
  "_id": "6650b2c3d4e5f6a7b8c9d0e1",
  "status": "suspended",
  "suspendedAt": "2026-05-09T16:00:00.000Z",
  "suspensionReason": "Quality investigation pending — batch BB-2026-04-12."
}
```

### 422 — Stato errato

```json
{ "error": "Cannot suspend passport in status 'archived'" }
```

### 404 — Non trovato

```json
{ "error": "Passport not found" }
```

## Related

- [Archiviare un passaporto (irreversibile)](https://www.tracepass.eu/it/docs/archive-passport.md)
- [Leggere un passaporto](https://www.tracepass.eu/it/docs/get-passport.md)
