---
title: Klassifizierungs-Flags setzen
description: Klassifizierungs-Flags setzen oder löschen. Ein Flag kann Felder als Pflicht markieren und die Veröffentlichung blockieren, wenn diese Felder leer sind.
canonical: "https://www.tracepass.eu/de/docs/set-condition-flags"
locale: de
source: "https://www.tracepass.eu/de/docs/set-condition-flags"
---

# Klassifizierungs-Flags setzen

> Klassifizierungs-Flags setzen oder löschen. Ein Flag kann Felder als Pflicht markieren und die Veröffentlichung blockieren, wenn diese Felder leer sind.

```http
PATCH /api/v1/passports/{id}/condition-flags
```

Schreibt ein oder mehrere Condition Flags auf einen Pass. Der Anfragekörper ist `Record<flagKey, boolean | null>` — `true` oder `false` setzt das Flag; `null` löscht es. Nur Schlüssel, die für die Kategorie des Passes registriert sind, werden akzeptiert; unbekannte Schlüssel geben 400 mit den gültigen Schlüsseln für diese Kategorie zurück.

**Warnung: Das Aktivieren eines Flags kann bisher optionale Felder zu Pflichtfeldern machen.** Bei Batteriepässen aktiviert `hasBMS: true` die BMS-Felder aus Annex XIII 4(b); `rechargeable: true` aktiviert die Lade-/Entlade- und State-of-Health-Felder gemäß Art. 10 Abs. 1; `isStationaryBess: true` aktiviert die Felder aus Anhang VII Teile A und B. Wenn der Pass bereits veröffentlicht ist und diese Felder leer sind, wird die nächste Konformitätsprüfung kritische `conditional_missing`-Findings auslösen — **füllen Sie diese Felder vor oder unmittelbar nach dem Setzen des Flags**, sonst schlägt die Neuveröffentlichung fehl.

v1-Schreibvorgänge sind standardmäßig `status: "approved"` (vertrauenswürdige Integration). Jede Flag-Änderung wird mit `"via API key <prefix>"` in das interne Audit-Log des Flags geschrieben. Das vollständige Audit-Log ist im Dashboard sichtbar, aber aus dieser Antwort entfernt. Unterstützt `Idempotency-Key`. Eine alternative Adressierungsform gibt es unter `PATCH /api/v1/passports/by-serial/{serial}/condition-flags` mit denselben Körper- und Antwortformen. Zählt als ein v1-Schreibzugriff gegen das Tageslimit.

## 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. |
| `id` | path | ObjectId | yes | Pass-ID. |
| `Idempotency-Key` | header | string | no | Optionaler Idempotenz-Schlüssel (UUID v4 oder beliebiger opaker String ≤ 64 Zeichen). Gleicher Schlüssel + gleicher Körper replayed die gecachte Antwort für 24 h. |

## Examples

```bash
curl -sS -X PATCH \
  https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/condition-flags \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"hasBMS": true, "rechargeable": true}'
```

```typescript
const res = await fetch(
  `https://app.tracepass.eu/api/v1/passports/${id}/condition-flags`,
  {
    method: "PATCH",
    headers: {
      Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}`,
      "Content-Type": "application/json",
      "Idempotency-Key": crypto.randomUUID(),
    },
    body: JSON.stringify({ hasBMS: true, rechargeable: true }),
  },
);
const { conditionProfile, version } = await res.json();
console.log("Updated profile:", conditionProfile, "version:", version);
```

```python
import os, uuid, requests
res = requests.patch(
    f"https://app.tracepass.eu/api/v1/passports/{passport_id}/condition-flags",
    headers={
        "Authorization": f"Bearer {os.environ['TRACEPASS_API_KEY']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={"hasBMS": True, "rechargeable": True},
)
res.raise_for_status()
data = res.json()
print("version:", data["version"])
for flag, info in data["conditionProfile"].items():
    print(flag, "→", info["value"], f"({info['status']})")
```

## Responses

### 200 — Flags aktualisiert

```json
{
  "passportId": "6650b2c3d4e5f6a7b8c9d0e1",
  "conditionProfile": {
    "hasBMS": {
      "value": true,
      "status": "approved",
      "source": "api:tp_abc123"
    },
    "rechargeable": {
      "value": true,
      "status": "approved",
      "source": "api:tp_abc123"
    }
  },
  "version": 4
}
```

### 400 — Unbekannter Flag-Schlüssel

```json
{
  "error": "Unknown condition flag keys",
  "details": "Keys not registered for category \"battery\": unknownFlag"
}
```

### 402 — Zahlung erforderlich

```json
{ "error": "Active subscription required" }
```

### 404 — Nicht gefunden

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

## Related

- [Flags lesen](https://www.tracepass.eu/de/docs/get-condition-flags.md)
- [Konformität prüfen](https://www.tracepass.eu/de/docs/passport-compliance.md)
