forbiddenHTTP 403Dem Schlüssel fehlt das Recht auf diesem Modul
Der Schlüssel ist gültig, trägt aber nicht `<modul>:read` bzw. `<modul>:write` für den angefragten Bereich. Die Rechte eines Schlüssels sind zu jeder Zeit höchstens die Rechte der Person, die ihn angelegt hat — verliert sie ein Recht, verliert der Schlüssel es im selben Moment mit. Geprüft wird bei jedem Aufruf neu.
Wiederholen?
Nein — unverändertes Wiederholen ergibt genau dieselbe Antwort. Die Anfrage muss sich ändern.
Woran es liegt
- Beim Anlegen wurde der Haken für diesen Bereich nicht gesetzt.
- Die Person, die den Schlüssel angelegt hat, hat ihr eigenes Recht auf diesen Bereich verloren.
- Ein Bereich, der einem Schlüssel grundsätzlich nie zuweisbar ist (Schlüsselverwaltung, Mitarbeiterrechte, Abrechnung, Einstellungen, E-Mail-Konten, Posteingang, KI-Assistent).
Was zu tun ist
`module` und `op` im Körper nennen genau das fehlende Recht. Lassen Sie es im Dashboard unter „API-Einstellungen" am Schlüssel nachsetzen — ein neuer Schlüssel ist dafür nicht nötig.
Zusätzliche Felder im Körper
Neben error, message, docs und requestId, die jede Fehlerantwort trägt:
moduleopWo dieser Fehler entsteht
- GET /api/v1/reservationsDem Schlüssel fehlt `reservations:read`.
- POST /api/v1/reservationsDem Schlüssel fehlt `reservations:write`.
- GET /api/v1/reservations/{id}Dem Schlüssel fehlt `reservations:read`.
- POST /api/v1/reservations/{id}/statusDem Schlüssel fehlt `reservations:write`.
- GET /api/v1/availabilityDem Schlüssel fehlt `reservations:read`.
- GET /api/v1/table-occupanciesDem Schlüssel fehlt `tables:read`.
- POST /api/v1/table-occupanciesDem Schlüssel fehlt `tables:write`.
- PATCH /api/v1/table-occupancies/{id}Dem Schlüssel fehlt `tables:write`.
- GET /api/v1/guestsDem Schlüssel fehlt `guests:read`.
- POST /api/v1/guestsDem Schlüssel fehlt `guests:write`.
- GET /api/v1/guests/{id}Dem Schlüssel fehlt `guests:read`.
- GET /api/v1/guests/{id}/visitsDem Schlüssel fehlt `guests:read` — oder `reservations:read`. Die Meldung sagt ausdrücklich, dass `guests:read` allein das Reservierungsbuch nicht öffnet.
- GET /api/v1/guests/{id}/exportDem Schlüssel fehlt `guests:read`.
- POST /api/v1/guests/{id}/anonymizeDem Schlüssel fehlt `guests:write`.
- GET /api/v1/restaurantDem Schlüssel fehlt `website:read`.
- GET /api/v1/brandingDem Schlüssel fehlt `website:read`.
- GET /api/v1/opening-hoursDem Schlüssel fehlt `reservations:read`.
- GET /api/v1/areasDem Schlüssel fehlt `areas:read`.
- GET /api/v1/tablesDem Schlüssel fehlt `tables:read`.
- GET /api/v1/menusDem Schlüssel fehlt `menu:read`.
- GET /api/v1/menus/{menuId}/categoriesDem Schlüssel fehlt `menu:read`.
- GET /api/v1/menu-itemsDem Schlüssel fehlt `menu:read`.
- GET /api/v1/blocksDem Schlüssel fehlt `tables:read`.
- POST /api/v1/blocksDem Schlüssel fehlt `tables:write`.
- DELETE /api/v1/blocks/{blockId}Dem Schlüssel fehlt `tables:write`.
- GET /api/v1/suppliersDem Schlüssel fehlt `suppliers:read`.
- POST /api/v1/suppliersDem Schlüssel fehlt `suppliers:write`.
- GET /api/v1/suppliers/{id}Dem Schlüssel fehlt `suppliers:read`.
- GET /api/v1/raw-materialsDem Schlüssel fehlt `rawMaterials:read`.
- POST /api/v1/raw-materialsDem Schlüssel fehlt `rawMaterials:write`.
- GET /api/v1/raw-materials/{id}Dem Schlüssel fehlt `rawMaterials:read`.
- PATCH /api/v1/raw-materials/{id}Dem Schlüssel fehlt `rawMaterials:write`.
- GET /api/v1/recipesDem Schlüssel fehlt `recipes:read`.
- POST /api/v1/recipesDem Schlüssel fehlt `recipes:write`.
- GET /api/v1/recipes/{id}Dem Schlüssel fehlt `recipes:read`.
- PATCH /api/v1/recipes/{id}Dem Schlüssel fehlt `recipes:write`.
- GET /api/v1/warehousesDem Schlüssel fehlt `products:read` — nicht `rawMaterials:read`.
- GET /api/v1/warehouse-stockDem Schlüssel fehlt `products:read`.
- PUT /api/v1/warehouse-stockDem Schlüssel fehlt `products:write`. Ein Schlüssel mit `rawMaterials:write` reicht hier NICHT.