---
title: Produkt archivieren
description: Produkt soft-archivieren — aus Listen ausgeblendet, neue Pässe blockiert. Bestehende Pässe lösen weiter auf. Reversibel. 409 bei verbleibenden Pässen.
canonical: "https://www.tracepass.eu/de/docs/archive-product"
locale: de
source: "https://www.tracepass.eu/de/docs/archive-product"
---

# Produkt archivieren

> Produkt soft-archivieren — aus Listen ausgeblendet, neue Pässe blockiert. Bestehende Pässe lösen weiter auf. Reversibel. 409 bei verbleibenden Pässen.

```http
POST /api/v1/products/{id}/archive
```

Soft-Archivierung. `Product.status` wechselt zu `archived`; das Produkt verschwindet aus den Standard-Listen (mit dem `?showArchived=true`-Filter weiterhin sichtbar). Bestehende Pässe lösen weiterhin auf — Archivieren blockiert die Erstellung NEUER Pässe gegen dieses Produkt fortan, es zerstört keinen QR-Code, der bereits bei Kunden ist.

Gibt `409 Conflict` zurück, wenn ein nicht-archivierter Pass das Produkt noch referenziert — archivieren Sie zuerst jeden Pass und rufen Sie diesen Endpoint dann erneut auf. Auf jedem Bezahlplan verfügbar. Zählt als ein v1-Schreibvorgang. Unterstützt `Idempotency-Key`.

Hier gibt es kein DELETE-Verb am selben Pfad: `DELETE /api/v1/products/{id}` ist der Hard-Delete-Endpoint mit strengeren Berechtigungen (null Pässe jeglichen Status). Archivieren ist das sichere Standard-Bereinigungsverb.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Authorization` | header | string | yes | `Bearer <token>` — entweder ein `tp_` API-Schlüssel (Developer → API Keys; am einfachsten, für Server-zu-Server) oder ein OAuth-2.0-Access-Token (Developer → OAuth Apps; für nutzerautorisierte Apps, scoped und widerrufbar). Die Authentication-Seite enthält den vollständigen OAuth-Flow und die Scope-Liste. |
| `Idempotency-Key` | header | string | no | UUID v4. |
| `id` | path | ObjectId | yes | Produkt-ID. |

## Examples

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

```typescript
await fetch(
  `https://app.tracepass.eu/api/v1/products/${id}/archive`,
  {
    method: "POST",
    headers: { Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}` },
  },
);
```

```python
import os, requests
res = requests.post(
    f"https://app.tracepass.eu/api/v1/products/{product_id}/archive",
    headers={"Authorization": f"Bearer {os.environ['TRACEPASS_API_KEY']}"},
)
res.raise_for_status()
```

## Responses

### 200 — Archiviert

```json
{
  "_id": "6650b2c3d4e5f6a7b8c9d0e1",
  "name": "Demo product",
  "status": "archived",
  "updatedAt": "2026-05-23T17:00:00.000Z"
}
```

### 409 — Aktive Pässe

```json
{
  "error": "Cannot archive product with 3 active passport(s). Archive every passport first."
}
```

### 404 — Nicht gefunden

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

## Related

- [Produkt dauerhaft löschen](https://www.tracepass.eu/de/docs/delete-product.md)
- [Produkt aktualisieren](https://www.tracepass.eu/de/docs/update-product.md)
