---
title: "Prueffall mit Versionsschutz bearbeiten"
method: PATCH
path: "/actions/{id}"
tags: ["Aktionen"]
---

# Prueffall mit Versionsschutz bearbeiten

`PATCH /actions/{id}`

## Request

- Base URL: `https://firmenwatch.ch/api/v1`
- URL: `https://firmenwatch.ch/api/v1/actions/{id}`
- Auth: HTTP bearer

Setzt einen aktiven oder vertagten Fall wieder auf offen, stellt ihn bis zu einem Schweizer Kalendertag zurueck oder schliesst ihn mit einem strukturierten Ergebnis. Abgeschlossene Faelle bleiben unveraenderlich. If-Match muss den starken ETag der zuletzt gelesenen version enthalten. Damit ueberschreibt kein Prozess unbemerkt die inzwischen gespeicherte Arbeit eines anderen Nutzers oder Systems. Ein exakt identischer Retry desselben API-Schluessels ist idempotent und liefert nochmals 200.

## Path parameters

- `id` string, required

## Headers

- `If-Match` string, required

## Request body

- union
  - ActionOpenRequest
    - `operation` 'open', required: Setzt einen aktiven oder vertagten Fall auf offen; kein Wiedereroeffnen abgeschlossener Faelle.
  - ActionSnoozeRequest
    - `operation` 'snooze', required
    - `until` string, date, required: Wiedervorlage als Schweizer Kalendertag (Europe/Zurich), fruehestens morgen und hoechstens 730 Tage in der Zukunft.
  - ActionDecideRequest
    - `operation` 'decide', required
    - `outcome` 'action_taken' | 'no_action_needed' | 'not_relevant' | 'other', required: Finaler Ausgang. forwarded wird nicht angeboten, weil eine Uebergabe ohne Wiedervorlage keinen geschlossenen Prozess bildet.
    - `note` string: Optionaler interner Ergebnis- und Entscheidungsnachweis; fuer other erforderlich.

## Response `200`

Gespeicherter, vollstaendiger Prueffall in seiner neuen Version; auch bei einem erkannten identischen Retry desselben API-Schluessels.

- object
  - `data` ActionMutationResult, required
    - `id` string, required
    - `operation` 'open' | 'snooze' | 'decide', required
    - `status` 'open' | 'snoozed' | 'resolved' | 'dismissed', required
    - `version` string, required
    - `replayed` boolean, required: true bei einer erkannten, unveraenderten Wiederholung desselben API-Auftrags.
    - `snoozed_until` string, date-time, nullable, required: Gespeicherter Wiedervorlagezeitpunkt in UTC; null ausserhalb des Status snoozed.
    - `decision` ActionMutationDecision, required
      - `outcome` 'action_taken' | 'no_action_needed' | 'not_relevant' | 'other', required
      - `note` string, required
      - `decided_by` string, required: Von Firmenwatch abgeleitete Kennung des API-Schluessels; nicht aus dem Request-Body.
      - `decided_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `400`: JSON-Rumpf oder If-Match-Format ist ungueltig (invalid_request).
- `401`: Kein oder ungueltiger Schluessel (unauthorized).
- `402`: Monatskontingent erschoepft (quota_exceeded).
- `403`: Dem Schluessel fehlt actions:write oder das Abonnement ist nicht aktiv (forbidden).
- `404`: Der Prueffall gehoert nicht zum Konto oder existiert nicht (not_found).
- `409`: Die gelesene Version ist veraltet; Fall neu laden und bewusst erneut entscheiden (conflict).
- `428`: If-Match mit dem zuletzt gelesenen starken ETag fehlt (precondition_required).
- `429`: Ratenbegrenzung erreicht (rate_limited).
- `500`: Unerwarteter Fehler (internal).
- `503`: Der Dienst ist voruebergehend nicht verfuegbar (temporarily_unavailable). Dieselbe Anfrage spaeter erneut senden.

---

[API](https://skmtc.dev/firmenwatch/apis/firmenwatch-api.md) · [All operations](https://skmtc.dev/firmenwatch/apis/firmenwatch-api/llms.txt) · [OpenAPI document](https://skmtc.dev/firmenwatch/apis/firmenwatch-api/revisions/65e774135677?raw)
