---
title: "🔒 Обновление параметров существующей роли/должности сотрудника."
method: POST
path: "/team/role/update"
tags: ["Team: Roles"]
---

# 🔒 Обновление параметров существующей роли/должности сотрудника.

`POST /team/role/update`

## Request

- Base URL: `http://localhost`
- URL: `http://localhost/team/role/update`
- Auth: one of:
  - API key in header `sid` and API key in header `rts` and API key in header `sig`
  - HTTP bearer

Обновление параметров существующей роли/должности сотрудника.

**Access:** `authorized` (10 ) · **Scope:** `write`

**Allows:** `user:employment` (все обязательны; проверка в команде по ресурсу из запроса)

### TypeScript (copy-paste)

**`POST /team/role/update`**

<details open><summary><b>Params</b></summary>

```typescript
export interface TeamRoleUpdateParams {
  roleID: string
}
```

</details>

<details open><summary><b>Body (Partial)</b></summary>

```typescript
// Patch-body: все поля опциональны (Valid.Patch)
export type TeamRoleUpdateBody = Partial<UserDto>

export interface TeamRoleUpdateBodyFields {
  ID?: string
  userID?: string
  cID?: string
  type?: UserRole_Type
  level?: UserRole_Level
  title?: string | null
  award?: number
  salary?: number
  total?: number
  /** Day key (YYYYMMDD or internal day index) */
  startDK?: number
  /** Day key (YYYYMMDD or internal day index) */
  trialEndDK?: number | null
  /** Day key (YYYYMMDD or internal day index) */
  endDK?: number | null
  note?: Record<string, any> | null
  isDeleted?: boolean
  isMain?: boolean | null
  /** Unix timestamp in milliseconds */
  updTS?: number
  updUID?: string
}
```

</details>

<details open><summary><b>Response</b></summary>

```typescript
export type TeamRoleUpdateResponse = IServerResponse<UserDto>

export interface IServerResponse<T = any> {
  code: number
  data: T
  srvTS: number
  rkey: string
}
```

</details>

> Полный файл типов: [`/docs/types`](/docs/types) · raw: [`/docs/api-types.ts`](/docs/api-types.ts)

## Query parameters

- `roleID` string, uuid, required

## Headers

- `devID` string, uuid, required
- `tz` string, required
- `app` string, required
- `appVer` string, required
- `rKey` string

## Request body

- TeamRoleUpdateBody: Partial body (Valid.Patch) for `team/role/update` — все поля опциональны
  - `ID` string, uuid
  - `userID` string, uuid
  - `cID` string, uuid
  - `type` 10 | 20 | 30 | 40 | 50 | 60 | 70: `management` = 10, `analytics` = 20, `marketing` = 30, `design` = 40, `development` = 50, `qa` = 60, `support` = 70
  - `level` -1 | 1 | 10 | 50 | 100 | 1000: `intern` = -1, `junior` = 1, `middle` = 10, `upperMiddle` = 50, `senior` = 100, `lead` = 1000
  - `title` string, nullable
  - `award` integer
  - `salary` integer
  - `total` integer
  - `startDK` integer: Day key (YYYYMMDD or internal day index)
  - `trialEndDK` integer, nullable: Day key (YYYYMMDD or internal day index)
  - `endDK` integer, nullable: Day key (YYYYMMDD or internal day index)
  - `note` object, nullable
  - `isDeleted` boolean
  - `isMain` boolean, nullable
  - `updTS` integer: Unix timestamp in milliseconds
  - `updUID` string

## Response `200`

OK — `IServerResponse<UserDto>`

- object
  - `code` integer, required
  - `data` UserDto, required: Entity `User` (table: User )
    - `ID` string, uuid, required
    - `phone` string, nullable: Phone number
    - `email` string, nullable
    - `auth` object, nullable
    - `avatarFID` string, uuid, required
    - `firstName` string, required
    - `lastName` string, required
    - `patronymic` string, nullable
    - `gender` 'male' | 'female': `male` = "male", `female` = "female"
    - `contactInfo` string, nullable
    - `dateOfBirth` string, date-time, nullable
    - `address` object, nullable
      - `country` string, nullable
      - `city` string, nullable
      - `streetAddress` string, nullable
    - `timeZone` string, nullable
    - `meetingInfo` object, nullable
      - `zoomEmail` string, nullable
    - `position` string, nullable
    - `hourCost` number, required
    - `docsEmployment` object, nullable
    - `docsLibrary` object, nullable
    - `isDraft` boolean, required
    - `createDT` string, date-time, required
    - `createdUID` string, required
    - `updTS` integer, required: Unix timestamp in milliseconds
    - `updUID` string, required
  - `srvTS` integer, required: Server timestamp (ms)
  - `rkey` string, required: Request key

## Other responses

- `400`: BadRequest / Validation — неверные params/body/headers
- `401`: Unauthorized: Active user session required
- `403`: AccessNotAllowed: Privilege user:employment (common) required
- `404`: NotFound: Target role or user access record not found
- `406`: TimeResync — расхождение rts с сервером

---

[API](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api.md) · [All operations](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api/revisions/a143b51ba29a?raw)
