---
title: "Update organization member/permission"
method: PUT
path: "/v1/organizations/{organizationId}/members/{permissionId}"
tags: ["Organization"]
---

# Update organization member/permission

`PUT /v1/organizations/{organizationId}/members/{permissionId}`

Updates a specific user's permission flags within an organization. Can modify admin, invoicing, and billing permission flags. Requires admin access in the organization. Cannot remove the last admin of an organization - at least one admin must remain.

## Path parameters

- `organizationId` string, required
- `permissionId` string, required

## Request body

- OrganizationMemberUpdateDto
  - `invoicing` boolean
  - `billing` boolean
  - `admin` boolean
  - `teamAssignments` OrganizationMemberTeamAssignmentDto[]
    - `teamMemberId` string
    - `teamId` string
    - `teamName` string
    - `employeeId` string
    - `deleted` boolean
    - `permission` TeamPermissionDto
      - `role` string
      - `manager` boolean
      - `owner` boolean
      - `member` boolean
      - `managerOrOwner` boolean
    - `projectRegistrations` TeamMemberProjectRegistrationDto[]
      - `projectId` string
      - `permission` ProjectPermissionDto
        - `role` string
        - `manager` boolean
        - `owner` boolean
        - `member` boolean
        - `managerOrOwner` boolean
    - `lastUpdate` integer
    - `created` integer

## Response `200`

Updated member/permission details

- OrganizationMemberDto
  - `id` string
  - `user` string
  - `email` string
  - `firstname` string
  - `lastname` string
  - `imageUrl` string
  - `deleted` boolean
  - `invited` boolean
  - `permission` OrganizationPermissionDto
    - `invoicing` boolean
    - `billing` boolean
    - `admin` boolean
  - `teamAssignments` OrganizationMemberTeamAssignmentDto[]
    - `teamMemberId` string
    - `teamId` string
    - `teamName` string
    - `employeeId` string
    - `deleted` boolean
    - `permission` TeamPermissionDto
      - `role` string
      - `manager` boolean
      - `owner` boolean
      - `member` boolean
      - `managerOrOwner` boolean
    - `projectRegistrations` TeamMemberProjectRegistrationDto[]
      - `projectId` string
      - `permission` ProjectPermissionDto
        - `role` string
        - `manager` boolean
        - `owner` boolean
        - `member` boolean
        - `managerOrOwner` boolean
    - `lastUpdate` integer
    - `created` integer
  - `hasActiveContract` boolean
  - `hasLicense` boolean
  - `lastUpdate` integer
  - `created` integer
  - `displayName` string
  - `initials` string

## Other responses

- `400` — Bad request (e.g., permission not found, cannot remove last admin)
- `401` — Not authorized
- `403` — Invalid permission (e.g., not admin)

---

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