forbidden_actionHTTP 403Dem Schlüssel fehlt die gesondert zu vergebende Handlung
Zwei Handlungen sind gefährlicher als gewöhnliches Schreiben auf ihrem Modul und brauchen deshalb einen eigenen, ausdrücklich gesetzten Haken: `reservations.status` (ein gemeldeter No-Show zieht eine hinterlegte Gebühr ein und belastet das betriebsübergreifende Risikoprofil eines echten Menschen) und `guests.personal` (gibt `isBlocked`, `blockReason`, `noShowCount` und `notes` frei). Das Modulrecht allein reicht für beide nicht.
Wiederholen?
Nein — unverändertes Wiederholen ergibt genau dieselbe Antwort. Die Anfrage muss sich ändern.
Woran es liegt
- Ein Statuswechsel einer Reservierung ohne `action:reservations.status`.
- Ein Zugriff auf die persönlichen Vermerke eines Gastes ohne `action:guests.personal`.
Was zu tun ist
`action` im Körper nennt die fehlende Handlung. Sie wird im Dashboard einzeln vergeben — „Alle auswählen" setzt sie absichtlich NICHT mit.
Zusätzliche Felder im Körper
Neben error, message, docs und requestId, die jede Fehlerantwort trägt:
actionmoduleopWo dieser Fehler entsteht
- POST /api/v1/reservations`internalNotes` ohne die Handlung `action:guests.personal`.
- POST /api/v1/reservations/{id}/statusDem Schlüssel fehlt `action:reservations.status`. Sie wird getrennt vom Schreibrecht vergeben.
- POST /api/v1/guests`notes`, `isBlocked` oder `blockReason` ohne die Handlung `action:guests.personal`.
- PATCH /api/v1/guests/{id}Persönliche Felder ohne `action:guests.personal`.
- GET /api/v1/guests/{id}/exportDem Schlüssel fehlt `action:guests.personal`. `guests:read` allein reicht nicht — die Auskunft enthält Notizen, Sperrgrund und No-Show-Zähler.
- POST /api/v1/guests/{id}/anonymizeDem Schlüssel fehlt `action:guests.personal`.