# Einstellungen aktualisieren

`PUT https://{tenant}.stamp.eu/rest/settings`

Returns the full settings map after the update (same shape as GET).

## Request-Body

| Feld | Typ | Pflicht | Beschreibung |
| --- | --- | --- | --- |
| `company_name` | string | nein |  |
| `timezone` | string | nein |  |
| `language` | `de`, `en` | nein |  |
| `mail_reply_to` | string \| null | nein |  |
| `terminal_message` | string \| null | nein |  |
| `card_format` | `dec_10`, `dec_6`, `hex_6`, `hex_14` \| null | nein |  |
| `zucchetti_terminal_key` | string \| null | nein |  |
| `datev_berater_nr` | string \| null | nein |  |
| `datev_mandanten_nr` | string \| null | nein |  |
| `auto_clockout_time` | string \| null | nein |  |
| `night_shift_boundary` | string \| null | nein |  |
| `accommodation_tolerance_minutes` | integer | nein |  |
| `auto_approve_corrections_minutes` | integer \| null | nein |  |
| `activities_required_on_clock_in` | `0`, `1` | nein |  |
| `compliance_min_rest_hours` | integer | nein |  |
| `compliance_night_start` | integer | nein |  |
| `compliance_night_end` | integer | nein |  |
| `compliance_min_free_sundays` | integer | nein |  |
| `compliance_average_period_weeks` | integer | nein |  |
| `compliance_night_worker_avg_weeks` | integer | nein |  |
| `vacation_carryover_cutoff` | string | nein |  |
| `vacation_extra_expiry` | string \| null | nein |  |
| `vacation_rounding_enabled` | `0`, `1` | nein |  |
| `vacation_waiting_period_enabled` | `0`, `1` | nein |  |
| `vacation_waiting_period_display_mode` | `anteilig`, `voll_mit_hinweis`, `zurueckhalten` | nein |  |
| `vacation_reminder_channels` | string | nein |  |
| `pause_staged` | `0`, `1` | nein |  |
| `export_format` | `csv`, `csv_extended`, `datev`, `datev_lug`, `agenda`, `zucchetti`, `projects` | nein | Registry of all file-based export formats. Adding a new export (e.g. Agenda Lohn und Gehalt) means: implement ExportProvider, add a case here, add the i18n label in the frontend. |
| `roster.auto_pause_mode` | `off`, `legal`, `planned`, `max_of_both` | nein | Automatic minimum-pause deduction mode for roster days (tenant setting `roster.auto_pause_mode`). |
| `roster.no_show_detection` | `0`, `1` | nein |  |
| `roster.clock_in_window_minutes` | integer \| null | nein |  |
| `roster.capture_capping` | `off`, `shift_start`, `shift_bounds` | nein |  |
| `roster.capture_rounding` | `off`, `5`, `10`, `15` | nein |  |
| `roster.capture_rounding_mode` | `employer`, `nearest` | nein |  |
| `roster.flag_unplanned_capture` | `0`, `1` | nein |  |
| `roster.unplanned_tolerance_minutes` | integer | nein |  |
| `roster.enforce_work_areas` | `0`, `1` | nein |  |
| `roster.fairness_window_weeks` | integer | nein |  |
| `roster.wish_budget_per_month` | integer | nein |  |
| `roster.auto_post_open_on_understaffing` | `0`, `1` | nein |  |
| `roster.self_service_swap_auto_approve` | `0`, `1` | nein |  |
| `roster.acknowledgement_window_hours` | integer | nein |  |
| `payroll.surcharge_source` | `flags`, `rules` | nein |  |
| `apps.mobile\` | object | nein |  |
| `apps.mobile\.location` | `off`, `optional`, `required` | nein | Three-state policy an app channel setting can take (tenant settings `apps.{channel}.{feature}`): the feature is unavailable, offered to the employee, or mandated by the company. |
| `apps.mobile\.clock_comment` | `off`, `optional`, `required` | nein | Three-state policy an app channel setting can take (tenant settings `apps.{channel}.{feature}`): the feature is unavailable, offered to the employee, or mandated by the company. |

## Antworten

### 200

| Feld | Typ | Pflicht |
| --- | --- | --- |
| `data` | object | ja |

### 401: Unauthenticated

| Feld | Typ | Pflicht | Beschreibung |
| --- | --- | --- | --- |
| `message` | string | ja | Error overview. |

### 422: Validation error

| Feld | Typ | Pflicht | Beschreibung |
| --- | --- | --- | --- |
| `message` | string | ja | Errors overview. |
| `errors` | object | ja | A detailed description of each field that failed validation. |
