---
title: "Update a member"
method: PUT
path: "/members/{id}"
tags: ["Members"]
---

# Update a member

`PUT /members/{id}`

Update a member. Employment period: changing employment_start_date or employment_end_date so that absences currently inside the period would fall outside the new one is rejected with 400 (error code EMPLOYMENT_PERIOD_ABSENCES_AFFECTED, including the affected counts). Absences that already sat outside the stored period do not by themselves block a change, so existing absences never stand in the way of widening the period. The API never cancels absences; resolve them in the absentify UI, which asks for explicit confirmation before cancelling. Clearing employment_start_date (setting it to null) is rejected with 400 while the member has an ACTIVE assignment to an allowance rule that anchors its accrual year on the hire date (an assignment whose rule_end_date has already passed does not block it) — that rule has nothing to anchor on without the date, and the response names the rule. Either move the member to a rule with a fixed year start first, or keep the date. Setting or changing the date is unaffected, and a member who already has no date stays editable.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `is_admin` boolean
  - `department_ids` object[]
    - `id` string, uuid, required
  - `employment_start_date` string, nullable — Date/time in ISO 8601 format, e.g. `2026-06-01` (interpreted as UTC midnight) or `2026-06-01T09:00:00Z`. Always include a time zone designator (`Z` for UTC) when sending a time of day. Localized formats such as `01.06.2026` or `06/01/2026` are misinterpreted and must not be used.
  - `employment_end_date` string, nullable — Date/time in ISO 8601 format, e.g. `2026-06-01` (interpreted as UTC midnight) or `2026-06-01T09:00:00Z`. Always include a time zone designator (`Z` for UTC) when sending a time of day. Localized formats such as `01.06.2026` or `06/01/2026` are misinterpreted and must not be used.
  - `public_holiday_id` string
  - `birthday` string, nullable — Date/time in ISO 8601 format, e.g. `2026-06-01` (interpreted as UTC midnight) or `2026-06-01T09:00:00Z`. Always include a time zone designator (`Z` for UTC) when sending a time of day. Localized formats such as `01.06.2026` or `06/01/2026` are misinterpreted and must not be used.
  - `custom_id` string, nullable
  - `status` 'INACTIVE' | 'ACTIVE' | 'ARCHIVED'

## Response `200`

Successful response

- string, uuid

## Other responses

- `400` — Invalid input data
- `401` — Authorization not provided
- `403` — Insufficient access
- `404` — Not found
- `500` — Internal server error

---

[API](https://skmtc.net/absentify/apis/absentify-crud-api.md) · [All operations](https://skmtc.net/absentify/apis/absentify-crud-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/absentify/absentify-crud-api/revisions/ef777d51e6f2/schema)
