服务端 API/通讯录/用户/修改用户部分信息
# 修改用户部分信息

该接口用于更新通讯录中用户的字段，未传递的参数不会更新。

**注意事项**：并发操作冻结用户时因事务冲突会遇到概率性失败。请尝试降低请求速率或改为串行执行。变更department_ids、is_frozen时限制调用频率为1QPS。

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.larksuite.com/open-apis/contact/v3/users/:user_id
HTTP Method | PATCH
接口频率限制 | [1000 次/分钟、50 次/秒](https://open.larksuite.com/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App、Store App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用**<br>开启任一权限即可 | 更新用户基本信息(contact:user.base)<br>更新通讯录(contact:contact)
字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请<br>获取用户基本信息(contact:user.base:readonly)<br>获取用户组织架构信息(contact:user.department:readonly)<br>查看成员的虚线上级 ID(contact:user.dotted_line_leader_info.read)<br>获取用户受雇信息(contact:user.employee:readonly)<br>查看成员工号(contact:user.employee_number:read)<br>获取用户性别(contact:user.gender:readonly)<br>获取用户邮箱信息(contact:user.email:readonly)<br>查询用户所属的工作序列(contact:user.job_family:readonly)<br>获取用户 user ID(contact:user.employee_id:readonly)<br>查询用户职级(contact:user.job_level:readonly)<br>获取用户手机号(contact:user.phone:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)

### 请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Authorization | string | 是 | `tenant_access_token`<br>或<br>`user_access_token`<br>**值格式**："Bearer `access_token`"<br>**示例值**："Bearer u-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"

### 路径参数

名称 | 类型 | 描述
---|---|---
user_id | string | 用户ID，需要与查询参数中的user_id_type类型保持一致。<br>**示例值**："ou_7dab8a3d3cdcc9da365777c7ad535d62"

### 查询参数

名称 | 类型 | 必填 | 描述
---|---|---|---
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：以自定义department_id来标识部门<br>- open_department_id：以open_department_id来标识部门<br>**默认值**：`open_department_id`

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
name | string | 否 | 用户名<br>**示例值**："张三"<br>**数据校验规则**：<br>- 最小长度：`1` 字符
en_name | string | 否 | 英文名<br>**示例值**："San Zhang"
nickname | string | 否 | 别名<br>**示例值**："Alex Zhang"
email | string | 否 | 邮箱<br>注意：<br>1. 非中国大陆手机号成员必须同时添加邮箱<br>2. 邮箱不可重复<br>**示例值**："zhangsan@gmail.com"
mobile | string | 否 | 手机号<br>注意：<br>1. 在本企业内不可重复<br>2. 未认证企业仅支持添加中国大陆手机号，通过Lark认证的企业允许添加海外手机号<br>3. 国际电话区号前缀中必须包含加号 +<br>4. 该 mobile 字段在海外版Lark非必填<br>**示例值**："13011111111 (其他例子，中国大陆手机号: 13011111111 或 +8613011111111, 非中国大陆手机号:  +41446681800)"
mobile_visible | boolean | 否 | 手机号码可见性，true 为可见，false 为不可见，目前默认为 true。不可见时，组织员工将无法查看该员工的手机号码<br>**示例值**：false
gender | int | 否 | 性别<br>**示例值**：1<br>**可选值有**：<br>- 0：保密<br>- 1：男<br>- 2：女<br>- 3：其他
avatar_key | string | 否 | 头像的文件Key，可通过“消息与群组/消息/图片信息”中的“上传图片”接口上传并获取头像文件 Key<br>“上传图片”功能参见[上传图片](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)<br>**示例值**："2500c7a9-5fff-4d9a-a2de-3d59614ae28g"
department_ids | string\[\] | 否 | 用户所属部门的ID列表，一个用户可属于多个部门。<br>ID值的类型与查询参数中的department_id_type 对应。<br>不同 ID 的说明与department_id的获取方式参见 [部门ID说明](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)<br>**示例值**：["od-4e6ac4d14bcd5071a37a39de902c7141"]
leader_user_id | string | 否 | 用户的直接主管的用户ID，ID值与查询参数中的user_id_type 对应。<br>不同 ID 的说明参见 [用户相关的 ID 概念](https://open.larksuite.com/document/home/user-identity-introduction/introduction)<br>获取方式参见[如何获取user_id](https://open.larksuite.com/document/home/user-identity-introduction/how-to-get)<br>**示例值**："ou_7dab8a3d3cdcc9da365777c7ad535d62"
city | string | 否 | 工作城市<br>**示例值**："杭州"
country | string | 否 | 国家或地区Code缩写，具体写入格式请参考 [国家/地区码表](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/country-code-description)<br>**示例值**："CN"
work_station | string | 否 | 工位<br>**示例值**："北楼-H34"
join_time | int | 否 | 入职时间，时间戳格式，表示从1970年1月1日开始所经过的秒数<br>**示例值**：2147483647
employee_no | string | 否 | 工号<br>**示例值**："1"
employee_type | int | 否 | 员工类型，可选值有：<br>- `1`：正式员工<br>- `2`：实习生<br>- `3`：外包<br>- `4`：劳务<br>- `5`：顾问   <br>同时可读取到自定义员工类型的 int 值，可通过下方接口获取到该租户的自定义员工类型的名称，参见[获取人员类型](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)<br>**示例值**：1
orders | user_order\[\] | 否 | 用户排序信息。<br>用于标记通讯录下组织架构的人员顺序，人员可能存在多个部门中，且有不同的排序。
department_id | string | 否 | 排序信息对应的部门ID， ID值与查询参数中的department_id_type 对应。<br>表示用户所在的、且需要排序的部门。<br>不同 ID 的说明参见及获取方式参见 [部门ID说明](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)<br>**示例值**："od-4e6ac4d14bcd5071a37a39de902c7141"
user_order | int | 否 | 用户在其直属部门内的排序，数值越大，排序越靠前<br>**示例值**：100
department_order | int | 否 | 用户所属的多个部门间的排序，数值越大，排序越靠前<br>**示例值**：100
is_primary_dept | boolean | 否 | 标识用户的唯一主部门，主部门为用户所属部门中排序第一的部门(department_order最大)<br>**示例值**：true
custom_attrs | user_custom_attr\[\] | 否 | 自定义字段，请确保你的组织管理员已在管理后台/组织架构/成员字段管理/自定义字段管理/全局设置中开启了“允许开放平台 API 调用“，否则该字段不会生效/返回。<br>更多详情参见[用户接口相关问题](https://open.larksuite.com/document/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN#77061525)
type | string | 否 | 自定义字段类型   <br>- `TEXT`：文本<br>- `HREF`：网页<br>- `ENUMERATION`：枚举<br>- `PICTURE_ENUM`：图片<br>- `GENERIC_USER`：用户<br>具体说明参见常见问题的[用户接口相关问题](https://open.larksuite.com/document/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN#77061525)<br>**示例值**："TEXT"
id | string | 否 | 自定义字段ID<br>**示例值**："DemoId"
value | user_custom_attr_value | 否 | 自定义字段取值
text | string | 否 | 字段类型为`TEXT`时该参数定义字段值，必填，长度限制为100字符；字段类型为`HREF`时该参数定义网页标题，必填<br>**示例值**："DemoText"
url | string | 否 | 字段类型为 HREF 时，该参数定义默认 URL，例如手机端跳转小程序，PC端跳转网页<br>**示例值**："http://www.fs.cn"
pc_url | string | 否 | 字段类型为 HREF 时，该参数定义PC端 URL<br>**示例值**："http://www.fs.cn"
option_id | string | 否 | 字段类型为 ENUMERATION 或 PICTURE_ENUM 时，该参数定义选项值<br>**示例值**："edcvfrtg"
generic_user | custom_attr_generic_user | 否 | 字段类型为 GENERIC_USER 时，该参数定义引用人员
id | string | 是 | 用户的user_id ，具体参见[用户相关的 ID 概念](https://open.larksuite.com/document/home/user-identity-introduction/introduction)<br>**示例值**："9b2fabg5"
type | int | 是 | 用户类型:  <br>1：用户<br>目前固定为1，表示用户类型<br>**示例值**：1
enterprise_email | string | 否 | 企业邮箱，请先确保已在管理后台启用Lark邮箱服务<br>创建用户时，企业邮箱的使用方式参见[用户接口相关问题](https://open.larksuite.com/document/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN#77061525)<br>**示例值**："demo@mail.com"
job_title | string | 否 | 职务<br>**示例值**："xxxxx"
is_frozen | boolean | 否 | 是否暂停用户<br>**示例值**：false
job_level_id | string | 否 | 职级ID<br>**示例值**："mga5oa8ayjlp9rb"
job_family_id | string | 否 | 序列ID<br>**示例值**："mga5oa8ayjlp9rb"
subscription_ids | string\[\] | 否 | 分配给用户的席位ID列表，需开通“分配用户席位”权限。可通过下方接口获取到该租户的可用席位ID，参见[获取企业席位信息](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/tenant-v2/tenant-product_assign_info/query)<br>**示例值**：["23213213213123123"]
dotted_line_leader_user_ids | string\[\] | 否 | 虚线上级ID<br>**示例值**：["ou_7dab8a3d3cdcc9da365777c7ad535d62"]

### 请求体示例
```json
{
    "name": "张三",
    "en_name": "San Zhang",
    "nickname": "Alex Zhang",
    "email": "zhangsan@gmail.com",
    "mobile": "13011111111 (其他例子，中国大陆手机号: 13011111111 或 +8613011111111, 非中国大陆手机号:  +41446681800)",
    "mobile_visible": false,
    "gender": 1,
    "avatar_key": "2500c7a9-5fff-4d9a-a2de-3d59614ae28g",
    "department_ids": [
        "od-4e6ac4d14bcd5071a37a39de902c7141"
    ],
    "leader_user_id": "ou_7dab8a3d3cdcc9da365777c7ad535d62",
    "city": "杭州",
    "country": "CN",
    "work_station": "北楼-H34",
    "join_time": 2147483647,
    "employee_no": "1",
    "employee_type": 1,
    "orders": [
        {
            "department_id": "od-4e6ac4d14bcd5071a37a39de902c7141",
            "user_order": 100,
            "department_order": 100,
            "is_primary_dept": true
        }
    ],
    "custom_attrs": [
        {
            "type": "TEXT",
            "id": "DemoId",
            "value": {
                "text": "DemoText",
                "url": "http://www.fs.cn",
                "pc_url": "http://www.fs.cn",
                "option_id": "edcvfrtg",
                "generic_user": {
                    "id": "9b2fabg5",
                    "type": 1
                }
            }
        }
    ],
    "enterprise_email": "demo@mail.com",
    "job_title": "xxxxx",
    "is_frozen": false,
    "job_level_id": "mga5oa8ayjlp9rb",
    "job_family_id": "mga5oa8ayjlp9rb",
    "subscription_ids": [
        "23213213213123123"
    ],
    "dotted_line_leader_user_ids": [
        "ou_7dab8a3d3cdcc9da365777c7ad535d62"
    ]
}
```

**Go 请求示例**
```go
import (
	"context"

"github.com/larksuite/oapi-sdk-go/v3"
	"github.com/larksuite/oapi-sdk-go/v3/service/contact/v3"
)

func main() {
	// 创建 Client
	client := lark.NewClient("appID", "appSecret")

// 创建请求对象
	req := larkcontact.NewPatchUserReqBuilder().
		UserId(`ou_7dab8a3d3cdcc9da365777c7ad535d62`).
		User(larkcontact.NewUserBuilder().
			Name(`张三`).
			EnName(`San Zhang`).
			Nickname(`Alex Zhang`).
			Email(`zhangsan@gmail.com`).
			Build()).
		Build()

// 发起请求
	resp, err := client.Contact.User.Patch(context.Background(), req)
}
```

**Java 请求示例**
```java
import com.lark.oapi.Client;
import com.lark.oapi.service.contact.v3.model.*;
import com.lark.oapi.core.request.RequestOptions;

public class Main {
    public static void main(String arg[]) throws Exception {
        // 构建client
        Client client = Client.newBuilder("appId", "appSecret").build();

// 创建请求对象
        PatchUserReq req = PatchUserReq.newBuilder()
                .userId("ou_7dab8a3d3cdcc9da365777c7ad535d62")
                .user(User.newBuilder()
                        .name("张三")
                        .enName("San Zhang")
                        .nickname("Alex Zhang")
                        .email("zhangsan@gmail.com")
                        .build())
                .build();

// 发起请求
        PatchUserResp resp = client.contact().user().patch(req, RequestOptions.newBuilder().build());
    }
}
```

## 响应

### 响应体

名称 | 类型 | 描述
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-
user | user | 用户信息
union_id | string | 用户的union_id，应用开发商发布的不同应用中同一用户的标识，不同ID的说明参见 [用户相关的 ID 概念](https://open.larksuite.com/document/home/user-identity-introduction/introduction)
user_id | string | 用户的user_id，租户内用户的唯一标识，不同ID的说明参见 [用户相关的 ID 概念](https://open.larksuite.com/document/home/user-identity-introduction/introduction)<br>**字段权限要求**：<br>获取用户 user ID(contact:user.employee_id:readonly)
open_id | string | 用户的open_id，应用内用户的唯一标识，不同ID的说明参见 [用户相关的 ID 概念](https://open.larksuite.com/document/home/user-identity-introduction/introduction)
name | string | 用户名<br>**字段权限要求（满足任一）**：<br>获取用户基本信息(contact:user.base:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
en_name | string | 英文名<br>**字段权限要求（满足任一）**：<br>获取用户基本信息(contact:user.base:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
nickname | string | 别名<br>**字段权限要求（满足任一）**：<br>获取用户基本信息(contact:user.base:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
email | string | 邮箱<br>注意：<br>1. 非中国大陆手机号成员必须同时添加邮箱<br>2. 邮箱不可重复<br>**字段权限要求**：<br>获取用户邮箱信息(contact:user.email:readonly)
mobile | string | 手机号<br>注意：<br>1. 在本企业内不可重复<br>2. 未认证企业仅支持添加中国大陆手机号，通过Lark认证的企业允许添加海外手机号<br>3. 国际电话区号前缀中必须包含加号 +<br>4. 该 mobile 字段在海外版Lark非必填<br>**字段权限要求**：<br>获取用户手机号(contact:user.phone:readonly)
mobile_visible | boolean | 手机号码可见性，true 为可见，false 为不可见，目前默认为 true。不可见时，组织员工将无法查看该员工的手机号码
gender | int | 性别<br>**可选值有**：<br>- 0：保密<br>- 1：男<br>- 2：女<br>- 3：其他<br>**字段权限要求（满足任一）**：<br>获取用户性别(contact:user.gender:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
avatar_key | string | 头像的文件Key，可通过“消息与群组/消息/图片信息”中的“上传图片”接口上传并获取头像文件 Key<br>“上传图片”功能参见[上传图片](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)
avatar | avatar_info | 用户头像信息<br>**字段权限要求（满足任一）**：<br>获取用户基本信息(contact:user.base:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
avatar_72 | string | 72*72像素头像链接
avatar_240 | string | 240*240像素头像链接
avatar_640 | string | 640*640像素头像链接
avatar_origin | string | 原始头像链接
status | user_status | 用户状态，枚举类型，包括is_frozen、is_resigned、is_activated、is_exited 。<br>用户状态转移参见：[用户状态图](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/field-overview#4302b5a1)<br>**字段权限要求（满足任一）**：<br>获取用户受雇信息(contact:user.employee:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
is_frozen | boolean | 是否暂停
is_resigned | boolean | 是否离职
is_activated | boolean | 是否激活
is_exited | boolean | 是否主动退出，主动退出一段时间后用户会自动转为已离职
is_unjoin | boolean | 是否未加入，需要用户自主确认才能加入团队
department_ids | string\[\] | 用户所属部门的ID列表，一个用户可属于多个部门。<br>ID值的类型与查询参数中的department_id_type 对应。<br>不同 ID 的说明与department_id的获取方式参见 [部门ID说明](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)<br>**字段权限要求（满足任一）**：<br>获取用户组织架构信息(contact:user.department:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
leader_user_id | string | 用户的直接主管的用户ID，ID值与查询参数中的user_id_type 对应。<br>不同 ID 的说明参见 [用户相关的 ID 概念](https://open.larksuite.com/document/home/user-identity-introduction/introduction)<br>获取方式参见[如何获取user_id](https://open.larksuite.com/document/home/user-identity-introduction/how-to-get)<br>**字段权限要求（满足任一）**：<br>获取用户组织架构信息(contact:user.department:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
city | string | 工作城市<br>**字段权限要求（满足任一）**：<br>获取用户受雇信息(contact:user.employee:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
country | string | 国家或地区Code缩写，具体写入格式请参考 [国家/地区码表](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/country-code-description)<br>**字段权限要求（满足任一）**：<br>获取用户受雇信息(contact:user.employee:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
work_station | string | 工位<br>**字段权限要求（满足任一）**：<br>获取用户受雇信息(contact:user.employee:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
join_time | int | 入职时间，时间戳格式，表示从1970年1月1日开始所经过的秒数<br>**字段权限要求（满足任一）**：<br>获取用户受雇信息(contact:user.employee:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
is_tenant_manager | boolean | 是否是租户超级管理员<br>**字段权限要求（满足任一）**：<br>获取用户受雇信息(contact:user.employee:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
employee_no | string | 工号<br>**字段权限要求（满足任一）**：<br>查看成员工号(contact:user.employee_number:read)<br>获取用户受雇信息(contact:user.employee:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
employee_type | int | 员工类型，可选值有：<br>- `1`：正式员工<br>- `2`：实习生<br>- `3`：外包<br>- `4`：劳务<br>- `5`：顾问   <br>同时可读取到自定义员工类型的 int 值，可通过下方接口获取到该租户的自定义员工类型的名称，参见[获取人员类型](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)<br>**字段权限要求（满足任一）**：<br>获取用户受雇信息(contact:user.employee:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
orders | user_order\[\] | 用户排序信息。<br>用于标记通讯录下组织架构的人员顺序，人员可能存在多个部门中，且有不同的排序。<br>**字段权限要求（满足任一）**：<br>获取用户组织架构信息(contact:user.department:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
department_id | string | 排序信息对应的部门ID， ID值与查询参数中的department_id_type 对应。<br>表示用户所在的、且需要排序的部门。<br>不同 ID 的说明参见及获取方式参见 [部门ID说明](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)
user_order | int | 用户在其直属部门内的排序，数值越大，排序越靠前
department_order | int | 用户所属的多个部门间的排序，数值越大，排序越靠前
is_primary_dept | boolean | 标识用户的唯一主部门，主部门为用户所属部门中排序第一的部门(department_order最大)
custom_attrs | user_custom_attr\[\] | 自定义字段，请确保你的组织管理员已在管理后台/组织架构/成员字段管理/自定义字段管理/全局设置中开启了“允许开放平台 API 调用“，否则该字段不会生效/返回。<br>更多详情参见[用户接口相关问题](https://open.larksuite.com/document/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN#77061525)<br>**字段权限要求（满足任一）**：<br>获取用户受雇信息(contact:user.employee:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
type | string | 自定义字段类型   <br>- `TEXT`：文本<br>- `HREF`：网页<br>- `ENUMERATION`：枚举<br>- `PICTURE_ENUM`：图片<br>- `GENERIC_USER`：用户<br>具体说明参见常见问题的[用户接口相关问题](https://open.larksuite.com/document/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN#77061525)
id | string | 自定义字段ID
value | user_custom_attr_value | 自定义字段取值
text | string | 字段类型为`TEXT`时该参数定义字段值，必填；字段类型为`HREF`时该参数定义网页标题，必填
url | string | 字段类型为 HREF 时，该参数定义默认 URL，例如手机端跳转小程序，PC端跳转网页
pc_url | string | 字段类型为 HREF 时，该参数定义PC端 URL
option_id | string | 字段类型为 ENUMERATION 或 PICTURE_ENUM 时，该参数定义选项值
option_value | string | 选项类型的值。<br>表示 成员详情/自定义字段 中选项选中的值
name | string | 选项类型为图片时，表示图片的名称
picture_url | string | 图片链接
generic_user | custom_attr_generic_user | 字段类型为 GENERIC_USER 时，该参数定义引用人员
id | string | 用户的user_id ，具体参见[用户相关的 ID 概念](https://open.larksuite.com/document/home/user-identity-introduction/introduction)
type | int | 用户类型:  <br>1：用户<br>目前固定为1，表示用户类型
enterprise_email | string | 企业邮箱，请先确保已在管理后台启用Lark邮箱服务<br>创建用户时，企业邮箱的使用方式参见[用户接口相关问题](https://open.larksuite.com/document/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN#77061525)<br>**字段权限要求（满足任一）**：<br>获取用户受雇信息(contact:user.employee:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
job_title | string | 职务<br>**字段权限要求（满足任一）**：<br>获取用户受雇信息(contact:user.employee:readonly)<br>以应用身份访问通讯录(contact:contact:access_as_app)<br>读取通讯录(contact:contact:readonly)<br>以应用身份读取通讯录(contact:contact:readonly_as_app)
is_frozen | boolean | 是否暂停用户
job_level_id | string | 职级ID<br>**字段权限要求**：<br>查询用户职级(contact:user.job_level:readonly)
job_family_id | string | 序列ID<br>**字段权限要求**：<br>查询用户所属的工作序列(contact:user.job_family:readonly)
dotted_line_leader_user_ids | string\[\] | 虚线上级ID<br>**字段权限要求**：<br>查看成员的虚线上级 ID(contact:user.dotted_line_leader_info.read)

### 响应体示例
```json
{
    "code": 0,
    "msg": "success",
    "data": {
        "user": {
            "union_id": "on_94a1ee5551019f18cd73d9f111898cf2",
            "user_id": "3e3cf96b",
            "open_id": "ou_7dab8a3d3cdcc9da365777c7ad535d62",
            "name": "张三",
            "en_name": "San Zhang",
            "nickname": "Alex Zhang",
            "email": "zhangsan@gmail.com",
            "mobile": "13011111111 (其他例子，中国大陆手机号: 13011111111 或 +8613011111111, 非中国大陆手机号:  +41446681800)",
            "mobile_visible": false,
            "gender": 1,
            "avatar_key": "2500c7a9-5fff-4d9a-a2de-3d59614ae28g",
            "avatar": {
                "avatar_72": "https://foo.icon.com/xxxx",
                "avatar_240": "https://foo.icon.com/xxxx",
                "avatar_640": "https://foo.icon.com/xxxx",
                "avatar_origin": "https://foo.icon.com/xxxx"
            },
            "status": {
                "is_frozen": false,
                "is_resigned": false,
                "is_activated": true,
                "is_exited": false,
                "is_unjoin": false
            },
            "department_ids": [
                "od-4e6ac4d14bcd5071a37a39de902c7141"
            ],
            "leader_user_id": "ou_7dab8a3d3cdcc9da365777c7ad535d62",
            "city": "杭州",
            "country": "CN",
            "work_station": "北楼-H34",
            "join_time": 2147483647,
            "is_tenant_manager": false,
            "employee_no": "1",
            "employee_type": 1,
            "orders": [
                {
                    "department_id": "od-4e6ac4d14bcd5071a37a39de902c7141",
                    "user_order": 100,
                    "department_order": 100,
                    "is_primary_dept": true
                }
            ],
            "custom_attrs": [
                {
                    "type": "TEXT",
                    "id": "DemoId",
                    "value": {
                        "text": "DemoText",
                        "url": "http://www.fs.cn",
                        "pc_url": "http://www.fs.cn",
                        "option_id": "edcvfrtg",
                        "option_value": "option",
                        "name": "name",
                        "picture_url": "https://xxxxxxxxxxxxxxxxxx",
                        "generic_user": {
                            "id": "9b2fabg5",
                            "type": 1
                        }
                    }
                }
            ],
            "enterprise_email": "demo@mail.com",
            "job_title": "xxxxx",
            "is_frozen": false,
            "job_level_id": "mga5oa8ayjlp9rb",
            "job_family_id": "mga5oa8ayjlp9rb",
            "dotted_line_leader_user_ids": [
                "ou_7dab8a3d3cdcc9da365777c7ad535d62"
            ]
        }
    }
}
```

### 错误码

HTTP状态码 | 错误码 | 描述 | 排查建议
---|---|---|---
400 | 41001 | mobile has already exist error | 手机号已存在
400 | 41002 | email has already exist error | 邮箱已存在
409 | 41003 | user account conflict error | 用户的联系方式属于两个不同的Lark账号，添加失败。建议用户换其它的手机号或邮箱，或是先注销手机号或邮箱对应的帐号，然后再创建或更新，具体注销的流程见[帮助中心](https://www.feishu.cn/hc/zh-CN/articles/360049067831)<br>有关这个错误的详细介绍请参考[通用错误码](https://open.larksuite.com/document/ukTMukTMukTM/ugjM14COyUjL4ITN#74588198)中的介绍
400 | 41004 | mobile is invalid error | 手机号不合法，请检查是否是正确的手机号格式
400 | 41005 | email is invalid error | 不是合法邮箱的邮箱地址，请检查邮箱地址的有效性
400 | 41006 | no user name error | 没有设置user的name
400 | 41009 | no email or mobile error | 电子邮箱和手机号不能都为空。
400 | 41010 | no mobile error | 手机号不能为空。
400 | 41011 | user id already exist error | user_id是企业内用户的唯一ID，不能重复
400 | 41014 | user name sensitive error | name中包含敏感信息，如有疑问，请联系客服
400 | 41016 | department has too many users  error | 一个部门中有过多的用户，用户数量超过了500
400 | 41017 | department is required error | 部门信息不能为空
400 | 41018 | position info is invalid error | 岗位信息无效
400 | 41019 | position department is invalid error | 岗位部门无效
400 | 41020 | position code has already exist  error | 岗位code无效
400 | 41021 | position multiple main count error | 一个用户至多只能有设置一个主岗
400 | 41022 | user tenant not match error | 检查是否使用其他企业的凭证访问当前企业的资源
400 | 41023 | update department conflict position department error | 用户的岗位部门必须与用户的部门一致，更新用户部门需要同时更新相应的岗位部门，否则阻断更新操作
400 | 41024 | update position department conflict department error | 用户的岗位部门必须与用户的部门一致，用户的新岗位部门也必须是用户的部门之一，否则阻断更新操作
400 | 41025 | order department invalid error | 请求的用户排序信息中的部门ID必须是用户的部门ID之一
405 | 41028 | user multi department need upgrade visibility error | 请在企业管理后台更新“组织架构可见范围”的补充规则
400 | 41029 | create or update user multi department error | 当前企业不支持用户同时加入多个部门，如有疑问，请联系客服
400 | 41030 | set leader to oneself error | 请检查用户的直属上级参数值
504 | 41031 | position feature not enable error | 当前企业不支持设置用户岗位信息，如有疑问，请联系客服
504 | 41032 | user multi department feature not enable error | 当前企业不支持用户同时加入多个部门，如有疑问，请联系客服
400 | 41033 | user in too many departments  error | 不支持用户同时属于50个以上的部门，请检查
400 | 41034 | email prefix already exist error | email的前缀已经存在
400 | 41035 | email prefix is invalid error | email的前缀不合法，请检查拼写
400 | 41036 | avatar key is invalid error | 头像key无效
400 | 41037 | avatar key is sensitive error | 头像key存在敏感信息
400 | 41038 | gender is invalid error | 性别不合法，请检查
400 | 41040 | user name is null error | 用户名不能为空
400 | 41041 | department id is not assigned  error | 用户所属的部门不能为空
400 | 41042 | join time is invalid error | 用户加入时间不能为空
400 | 41043 | employee id is invalid error | 无效的user id。 大小位于1-64个字节之间
400 | 41044 | Custom attribute is not set error | 设置用户自定义字段，必须指明设定的字段ID，字段ID可以通过获取企业自定义字段接口查询
400 | 41045 | Custom attribute id is not exist error | 自定义字段ID不存在，请确认自定义字段ID来源，自定义字段ID可以通过获取企业自定义字段接口查询
400 | 41046 | Custom attribute value is not set error | 设置自定义字段，需要传入字段value字段
400 | 41047 | Custom attribute href text  is null error | 设置HREF类型自定义字段，text字段为必填字段
400 | 41048 | Custom attribute href url  is null error | 设置HREF类型自定义字段，url字段为必填字段
400 | 41050 | no user authority error | 操作的用户需在通讯录权限范围中，[了解更多](https://open.larksuite.com/document/ukTMukTMukTM/uETNz4SM1MjLxUzM/v3/guides/scope_authority)
400 | 41051 | user id info not provide error | 用户ID没有填写
403 | 40004 | no dept authority error | 操作的部门需在通讯录权限范围中，[了解更多](https://open.larksuite.com/document/ukTMukTMukTM/uETNz4SM1MjLxUzM/v3/guides/scope_authority)
403 | 41056 | no field authority error | 没有该字段的权限。
400 | 41057 | invalid employee type error | 员工类型不合法
400 | 41059 | invalid employee type error | 用户的雇员类型错误，请填写1-5之间的数字，1 正式员工 2 实习生 3 外包 4 劳务 5 顾问
400 | 41060 | inactive employee type error | 雇员类型企业未使用，请咨询管理员
400 | 41063 | job_title length exceed 100 character | 职务的设置长度超过100字符，请检查字段长度
400 | 42008 | tenant id is invalid error | 请检查请求租户是否为合法租户。
400 | 41068 | Number of email aliases exceeds the upper limit | 企业邮箱账户已经达到上线，请咨询企业管理员
400 | 41069 | Business email is in the recycle bin | 企业邮正在回收中，不可使用
400 | 41070 | name length exceed 64 character | 姓名长度超过64个字符
400 | 41071 | en_name length exceed 64 character | 英文名长度超过64个字符
400 | 41072 | nickname length exceed 64 character | 别名长度超过64个字符
400 | 44001 | business email domain not available error | 企业无对应的企业邮域名，咨询企业管理员
400 | 44002 | update order must update department together | 修改用户部门排序时，请求必须同时带上部门ID列表
400 | 44003 | avatarkey and description cannot be empty when update resigned user | -
400 | 44006 | name length exceed 64 character | 姓名超过64个字符
400 | 44007 | en_name length exceed 64 character | 英文名超过64个字符
400 | 44008 | nickname length exceed 64 character | 别名超过64个字符
400 | 44010 | unJoined user not allow to update | 未加入状态用户禁止更新
400 | 44011 | exited user not allow to update | 主动退出用户禁止更新
400 | 42006 | user has resigned error | 用户已经离职。
400 | 44013 | User enterprise Email password is not valid | --
400 | 44014 | Can not update inactive user email when email equal enterprise | -
400 | 44015 | can not update password when user already have password | -
400 | 44016 | can not set enterprise email password | --
400 | 44017 | Suite_Admin_Common_UnableToEditUpper | -
400 | 44018 | lark not support +86 mobile | --
400 | 44019 | feishu only support +86 mobile | 未认证企业仅支持添加中国大陆+86 手机号，添加非 +86 手机号请先完成Lark认证，完成认证后次日可添加。
400 | 44020 | mobile and email need together exist | 已认证企业，添加非 +86 手机号成员时必须同时添加邮箱
400 | 44024 | User enterprise email has already been registered as a member's account | 企业邮箱已注册
400 | 44025 | update user lock error,wait some seconds and retry | 并发更新User受限，请等待一段时间重试
400 | 44035 | departmentID is invaild | 部门ID是无效的
400 | 44036 | freeze tenant founder is forbidden | 禁止冻结租户创始人
400 | 44038 | req set user geo not find in geo list | 设置的geo不存在geo列表中
400 | 44041 | anonymize user info is not allowed to update | -
400 | 44044 | invalid job level id | 职级ID无效
400 | 44045 | invalid job family id | 序列ID无效
400 | 44046 | user license subscription id must not empty in multi-license tenant | 创建用户时需指定席位id
400 | 44047 | license subscription id exceed limit | 该席位id已超过上限
400 | 44048 | user license subscription id invalid | 请确认传入正确的席位id
400 | 44049 | license subscription update fail | 更新席位信息失败，请重试
403 | 44050 | not set subscription ids auth | 请开通“分配用户席位”权限
400 | 44051 | employee_no already existed | 员工工号重复，请修改后重试
400 | 41410 | user primary dept must be the first department in the order | 主部门必须为用户所属部门中排序第一的部门(department_order最大)

