服务端 API/通讯录/部门/更新部门所有信息
# 更新部门所有信息

该接口用于更新当前部门所有信息。

**注意事项**：- 调用该接口需要具有该部门与更新部门信息涉及的通讯录权限。

- 没有填写的字段会被置为空值（order字段除外）。

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.larksuite.com/open-apis/contact/v3/departments/:department_id
HTTP Method | PUT
支持的应用类型 | Custom App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用** | 更新通讯录(contact:contact)
字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请<br>获取部门组织架构信息(contact:department.organize:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门基础信息(contact:department.base:readonly)<br>获取用户 user ID(contact:user.employee_id:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)

### 请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Authorization | string | 是 | `tenant_access_token`<br>**值格式**："Bearer `access_token`"<br>**示例值**："Bearer t-7f1bcd13fc57d46bac21793a18e560"<br>[了解更多：如何选择与获取 access token](https://open.larksuite.com/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-choose-which-type-of-token-to-use)
Content-Type | string | 是 | **固定值**："application/json; charset=utf-8"

### 路径参数

名称 | 类型 | 描述
---|---|---
department_id | string | 部门ID，需要与查询参数中传入的department_id_type类型保持一致。<br>注意：除需要满足正则规则外，同时不能以od-开头<br>**示例值**："D096"<br>**数据校验规则**：<br>- 最大长度：`64` 字符<br>- 正则校验：`^[a-zA-Z0-9][a-zA-Z0-9_\-@.]{0,63}$`

### 查询参数

名称 | 类型 | 必填 | 描述
---|---|---|---
user_id_type | string | 否 | 用户 ID 类型<br>**示例值**："open_id"<br>**可选值有**：<br>- open_id：标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多：如何获取 Open ID](https://open.larksuite.com/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)<br>- union_id：标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的，在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID，应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多：如何获取 Union ID？](https://open.larksuite.com/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)<br>- user_id：标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内，一个用户的 User ID 在所有应用（包括商店应用）中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多：如何获取 User ID？](https://open.larksuite.com/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)<br>**默认值**：`open_id`<br>**当值为 `user_id`，字段权限要求**：<br>获取用户 user ID(contact:user.employee_id:readonly)
department_id_type | string | 否 | 此次调用中使用的部门ID的类型<br>**示例值**："open_department_id"<br>**可选值有**：<br>- department_id：用来标识租户内一个唯一的部门<br>- open_department_id：用来在具体某个应用中标识一个部门，同一个部门 在不同应用中的 open_department_id 不相同。<br>**默认值**：`open_department_id`

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
name | string | 是 | 部门名称<br>**示例值**："DemoName"<br>**数据校验规则**：<br>- 最小长度：`1` 字符
i18n_name | department_i18n_name | 否 | 国际化的部门名称
zh_cn | string | 否 | 部门的中文名<br>**示例值**："Demo名称"
ja_jp | string | 否 | 部门的日文名<br>**示例值**："デモ名"
en_us | string | 否 | 部门的英文名<br>**示例值**："Demo Name"
parent_department_id | string | 是 | 父部门的ID<br>* 在根部门下创建新部门，该参数值为 “0”<br>**示例值**："D067"
leader_user_id | string | 否 | 部门主管用户ID<br>**示例值**："ou_7dab8a3d3cdcc9da365777c7ad535d62"
order | string | 否 | 部门的排序，即部门在其同级部门的展示顺序<br>**示例值**："100"
unit_ids | string\[\] | 否 | 部门单位自定义ID列表，当前只支持一个<br>**示例值**：custom_unit_id
create_group_chat | boolean | 否 | 是否创建部门群，默认不创建。创建部门群时，默认群名为部门名，默认群主为部门主负责人<br>**示例值**：false
leaders | departmentLeader\[\] | 否 | 部门负责人
leaderType | int | 是 | 负责人类型<br>**示例值**：1<br>**可选值有**：<br>- 1：主负责人<br>- 2：副负责人
leaderID | string | 是 | 负责人ID<br>**示例值**："ou_7dab8a3d3cdcc9da365777c7ad535d62"
group_chat_employee_types | int\[\] | 否 | 部门群雇员类型限制。[]空列表时，表示为无任何雇员类型。类型字段可包含以下值，支持多个类型值；若有多个，用英文','分隔：<br>1、正式员工<br>2、实习生<br>3、外包<br>4、劳务<br>5、顾问<br>6、其他自定义类型字段，可通过下方接口获取到该租户的自定义员工类型的名称，参见[获取人员类型](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)。<br>**示例值**：[1,2,3]

### 请求体示例
```json
{
    "name": "DemoName",
    "i18n_name": {
        "zh_cn": "Demo名称",
        "ja_jp": "デモ名",
        "en_us": "Demo Name"
    },
    "parent_department_id": "D067",
    "leader_user_id": "ou_7dab8a3d3cdcc9da365777c7ad535d62",
    "order": "100",
    "unit_ids": [
        "custom_unit_id"
    ],
    "create_group_chat": false,
       "leaders": [
                {
                    "leaderID": "ou_357368f98775f04bea02afc6b1d33478",
                    "leaderType": 1
                }
            ],
}
```

## 响应

### 响应体

名称 | 类型 | 描述
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-
department | department | 部门信息
name | string | 部门名称<br>**字段权限要求（满足任一）**：<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门基础信息(contact:department.base:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)
i18n_name | department_i18n_name | 国际化的部门名称<br>**字段权限要求（满足任一）**：<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门基础信息(contact:department.base:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)
zh_cn | string | 部门的中文名
ja_jp | string | 部门的日文名
en_us | string | 部门的英文名
parent_department_id | string | 父部门的ID<br>* 在根部门下创建新部门，该参数值为 “0”<br>**字段权限要求（满足任一）**：<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门组织架构信息(contact:department.organize:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)
department_id | string | 本部门的自定义部门ID<br>注意：除需要满足正则规则外，同时不能以`od-`开头<br>**字段权限要求（满足任一）**：<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门基础信息(contact:department.base:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)
open_department_id | string | 部门的open_id，类型与通过请求的查询参数传入的department_id_type相同
leader_user_id | string | 部门主管用户ID<br>**字段权限要求（满足任一）**：<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门组织架构信息(contact:department.organize:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)
chat_id | string | 部门群ID<br>**字段权限要求（满足任一）**：<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门基础信息(contact:department.base:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)
order | string | 部门的排序，即部门在其同级部门的展示顺序<br>**字段权限要求（满足任一）**：<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门组织架构信息(contact:department.organize:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)
unit_ids | string\[\] | 部门单位自定义ID列表，当前只支持一个<br>**字段权限要求（满足任一）**：<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门组织架构信息(contact:department.organize:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)
member_count | int | 部门下用户的个数<br>**字段权限要求（满足任一）**：<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门组织架构信息(contact:department.organize:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)
status | department_status | 部门状态<br>**字段权限要求（满足任一）**：<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门基础信息(contact:department.base:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)
is_deleted | boolean | 是否被删除
leaders | departmentLeader\[\] | 部门负责人
leaderType | int | 负责人类型<br>**可选值有**：<br>- 1：主负责人<br>- 2：副负责人
leaderID | string | 负责人ID<br>**字段权限要求（满足任一）**：<br>以应用身份读取通讯录(contact:contact:readonly_as_app)<br>获取部门组织架构信息(contact:department.organize:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)
group_chat_employee_types | int\[\] | 部门群雇员类型限制。[]空列表时，表示为无任何雇员类型。类型字段可包含以下值，支持多个类型值；若有多个，用英文','分隔：<br>1、正式员工<br>2、实习生<br>3、外包<br>4、劳务<br>5、顾问<br>6、其他自定义类型字段，可通过下方接口获取到该租户的自定义员工类型的名称，参见[获取人员类型](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)。

### 响应体示例
```json
{
    "code": 0,
    "msg": "success",
    "data": {
        "department": {
            "name": "DemoName",
            "i18n_name": {
                "zh_cn": "Demo名称",
                "ja_jp": "デモ名",
                "en_us": "Demo Name"
            },
            "parent_department_id": "D067",
            "department_id": "D096",
            "open_department_id": "od-4e6ac4d14bcd5071a37a39de902c7141",
            "leader_user_id": "ou_7dab8a3d3cdcc9da365777c7ad535d62",
            "chat_id": "oc_5ad11d72b830411d72b836c20",
            "order": "100",
            "unit_ids": [
                "custom_unit_id"
            ],
            "member_count": 100,
            "status": {
                "is_deleted": false
            },
            "leaders": [
                {
                    "leaderID": "ou_357368f98775f04bea02afc6b1d33478",
                    "leaderType": 1
                }
            ],
        }
    }
}
```

### 错误码

HTTP状态码 | 错误码 | 描述 | 排查建议
---|---|---|---
400 | 43005 | duplicate order error | 部门的order必须唯一，请检查后重试。
400 | 40002 | process root dept error | 不能对根部门进行移除
400 | 40003 | internal error | 内部错误，请提供 X-Request-Id向客服反馈。[联系客服](https://applink.larksuite.com/client/helpdesk/open?id=6626260912531570952&extra=%7B%22channel%22%3A14%2C%22created_at%22%3A1614493146%2C%22scenario_id%22%3A6885151765134622721%2C%22signature%22%3A%22ca94c408b966dc1de2083e5bbcd418294c146e98%22%7D)。
403 | 40004 | no dept authority error | 操作的部门需在通讯录权限范围中，[了解更多](https://open.larksuite.com/document/ukTMukTMukTM/uETNz4SM1MjLxUzM/v3/guides/scope_authority)
400 | 40008 | dept Info is null error | 部门的信息不能为空
400 | 40010 | chat id is invalid error | 部门群ID格式错误。
403 | 40014 | no parent dept authority error | 没有父部门权限（组织架构可见范围权限）。
401 | 42008 | tenant id is invalid error | 请检查请求租户是否为合法租户。
400 | 40016 | dept name can not be nul error | 部门名不能为空。
400 | 40017 | parent id can not be null in updateRequest | 父部门id不能为空
400 | 40018 | duplicate name error | （同一父部门下）部门名必须唯一，请检查后重试。
400 | 43004 | illegal unit error | 部门unit id无效。
400 | 43017 | relate dept over limit | 关联部门超过限制
400 | 43018 | duplicate i18n name | 重复的i18n名字
400 | 43019 | exceed dept max level | 超过部门层级深度
400 | 43021 | department chat not exist | 部门群不存在
400 | 43022 | department name duplicate | 部门名重复
400 | 43023 | dept structure no permissione | 组织架构没有权限
400 | 43024 | dept structure tenant lock fail | 部门结构变动获取租户锁失败
400 | 43025 | top department leader unjoined | 用户未加入不能成为企业负责人
400 | 43026 | employee type is not valid | 请使用准确的雇员类型

