---
title: Einzelnes Feld in einem Pass aktualisieren
description: Ein einzelnes Feld auf einem Pass mit Audit-Eintrag patchen. Standard status approved; mit ai_suggested oder supplier in die Review-Queue umleiten.
canonical: "https://www.tracepass.eu/de/docs/update-field"
locale: de
source: "https://www.tracepass.eu/de/docs/update-field"
---

# Einzelnes Feld in einem Pass aktualisieren

> Ein einzelnes Feld auf einem Pass mit Audit-Eintrag patchen. Standard status approved; mit ai_suggested oder supplier in die Review-Queue umleiten.

```http
PATCH /api/v1/passports/{id}/fields/{key}
```

Patcht ein einzelnes Feld auf einem Pass. Der Wert wird gegen den Feldschlüssel validiert (muss in der Vorlage des Passes vorhanden sein) und mit einem Audit-Trail-Eintrag persistiert, der mit `via API key <prefix>` gekennzeichnet ist. Bevorzugen Sie das gegenüber dem Schreiben der gesamten `fields`-Karte, wenn Sie nur eine Zahl aktualisieren müssen — das ist ein kleinerer Schreibvorgang und der Audit-Eintrag ist das, was Dashboard-Prüfer sehen.

Schreibvorgänge sind standardmäßig `status: "approved"` — API-Schlüssel-getriebene Integrationen sind per Konvention vertrauenswürdig (anders als Dashboard-Editoren, wo Nicht-Admins `pending_review` schreiben). Überschreiben Sie mit `source: "ai_suggested"` oder `source: "supplier"`, wenn der Wert stattdessen in die Prüf-Queue gehen soll.

Eine alternative Adressierungsform existiert unter PATCH /api/v1/passports/by-serial/{serial}/fields/{key} — gleicher Body, gleiche Antwort, nützlich wenn Ihr ERP nur die kundenseitige Seriennummer kennt. Zählt als ein v1-Schreibvorgang. Unterstützt Idempotency-Key.

## 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 pro logischer Operation. |
| `id` | path | ObjectId | yes | Pass-ID. Adressierung per Seriennummer: PATCH /api/v1/passports/by-serial/{serial}/fields/{key}. |
| `key` | path | string | yes | Feldschlüssel (camelCase) wie in der Vorlage des Passes definiert — z. B. `nominalVoltage`, `batteryChemistry`, `recycledContentCobalt`. 400, wenn der Schlüssel nicht in der Vorlage existiert. |
| `value` | body | string \| number \| boolean \| array \| object | yes | Neuer Wert. Die Plattform formatiert keine Strings in Zahlen um — senden Sie den Wert im erwarteten Feldtyp. |
| `source` | body | enum | no | Markiert den Ursprung des Werts. Einer von: `manual`, `ai_suggested`, `ai_approved`, `reference_db`, `supplier`, `system`. Standard `manual`. `ai_suggested` und `supplier` landen in der Prüf-Queue; alles andere wird als approved geschrieben. |
| `sourceLocale` | body | string (ISO 639-1) | no | Locale des Werts (eines der 24 EU-Locales). Steuert Übersetzungsrichtung + Sprachauflösung des öffentlichen Viewers. Standardmäßig der `sourceLocale` des Passes, wenn ausgelassen. |

## Examples

```bash
curl -sS -X PATCH \
  https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/fields/ratedCapacity \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "value": 5.24 }'
```

```typescript
await fetch(
  `https://app.tracepass.eu/api/v1/passports/${id}/fields/ratedCapacity`,
  {
    method: "PATCH",
    headers: {
      Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ value: 5.24 }),
  },
);
```

```python
import os, requests
res = requests.patch(
    f"https://app.tracepass.eu/api/v1/passports/{passport_id}/fields/ratedCapacity",
    headers={"Authorization": f"Bearer {os.environ['TRACEPASS_API_KEY']}"},
    json={"value": 5.24},
)
res.raise_for_status()
```

## Responses

### 200 — Aktualisiert

```json
{
  "field": {
    "value": 5.24,
    "source": "manual",
    "status": "approved",
    "accessLevel": "public",
    "sourceLocale": "en",
    "lastUpdatedAt": "2026-05-09T10:30:00.000Z",
    "lastUpdatedBy": "api_key:tp_89b2482d"
  },
  "version": 4
}
```

### 400 — Ungültiger Schlüssel

```json
{ "error": "Invalid field key: notARealField" }
```

### 404 — Nicht gefunden

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

## Related

- [Pass anlegen](https://www.tracepass.eu/de/docs/create-passport.md)
- [Wirtschaftsakteurs-Partei anhängen](https://www.tracepass.eu/de/docs/upsert-party.md)
