跳转到主要内容
调用本接口,创建新部门。

请求

基本信息
HTTP URLhttps://oapi.dingtalk.io/topapi/v2/department/create
HTTP MethodPOST
支持的应用类型appType-企业内部应用
权限要求permission-qyapi_manage_addresslist-通讯录数据管理权限

查询参数

名称类型是否必填示例值描述
access_tokenStringbE74xxxx调用该接口的应用凭证,通过获取企业内部应用的access_token接口获取。

请求体

名称类型是否必填示例值描述
nameString开发部门部门名称。 长度限制为1~64个字符,不允许包含字符”-"",“以及”,“。
parent_idNumber10父部门ID,根部门ID为1。
hide_deptBooleantrue是否隐藏本部门: - true:隐藏部门,隐藏后本部门将不会显示在公司通讯录中 - false(默认值):显示部门
dept_permitsString”123,456”指定可以查看本部门的其他部门列表,总数不能超过50。 当hide_depttrue时,则此值生效。
user_permitsString”user123,manager222”指定可以查看本部门的人员userId列表,总数不能超过50。 当hide_depttrue时,则此值生效。
outer_deptBooleantrue是否限制本部门成员查看通讯录: - true:开启限制。开启后本部门成员只能看到限定范围内的通讯录 - false(默认值):不限制
outer_dept_only_selfBooleanfalse本部门成员是否只能看到所在部门及下级部门通讯录: - true:只能看到所在部门及下级部门通讯录 - false:不能查看所有通讯录,在通讯录中仅能看到自己 当outer_depttrue时,此参数生效。
outer_permit_usersString”manager123,user123”指定本部门成员可查看的通讯录用户userId列表,总数不能超过50。 当outer_depttrue时,此参数生效。
outer_permit_deptsString”456,123”指定本部门成员可查看的通讯录部门ID列表,总数不能超过50。 当outer_depttrue时,此参数生效。
create_dept_groupBooleantrue是否创建一个关联此部门的企业群,默认为false即不创建。
auto_approve_applyBooleanfalse是否默认同意加入该部门的申请: - **true:**表示加入该部门的申请将默认同意 - **false:**表示加入该部门的申请需要有权限的管理员同意
orderNumber10在父部门中的排序值,order值小的排序靠前。
source_identifierStringHR部门部门标识字段,开发者可用该字段来唯一标识一个部门,并与钉钉外部通讯录里的部门做映射。

请求示例

curl -X POST "https://oapi.dingtalk.io/topapi/v2/department/create" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=d5ca5xxxxa8' \
-d 'parent_id=10' \
-d 'outer_dept=true' \
-d 'hide_dept=true' \
-d 'create_dept_group=true' \
-d 'order=10' \
-d 'name=HR' \
-d 'source_identifier=HR%E9%83%A8%E9%97%A8' \
-d 'dept_permits=3%2C4%2C5' \
-d 'user_permits=100%2C200' \
-d 'outer_permit_users=500%2C600' \
-d 'outer_permit_depts=6%2C7%2C8' \
-d 'outer_dept_only_self=true'
Java
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/v2/department/create");
OapiV2DepartmentCreateRequest req = new OapiV2DepartmentCreateRequest();
req.setParentId(10L);
req.setOuterDept(true);
req.setHideDept(true);
req.setCreateDeptGroup(true);
req.setOrder(10L);
req.setName("HR");
req.setSourceIdentifier("HR部门");
req.setDeptPermits("3,4,5");
req.setUserPermits("100,200");
req.setOuterPermitUsers("500,600");
req.setOuterPermitDepts("6,7,8");
req.setOuterDeptOnlySelf(true);
OapiV2DepartmentCreateResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
Python
# -*- coding: utf-8 -*-
import dingtalk.api

req=dingtalk.api.OapiV2DepartmentCreateRequest("https://oapi.dingtalk.io/topapi/v2/department/create")

req.parent_id=10
req.outer_dept=true
req.hide_dept=true
req.create_dept_group=true
req.order=10
req.name="HR"
req.source_identifier="HR部门"
req.dept_permits="3,4,5"
req.user_permits="100,200"
req.outer_permit_users="500,600"
req.outer_permit_depts="6,7,8"
req.outer_dept_only_self=true
try:
  resp= req.getResponse(access_token)
  print(resp)
except Exception,e:
  print(e)
PHP
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');

$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST , DingTalkConstant::$FORMAT_JSON);
$req = new OapiV2DepartmentCreateRequest;
$req->setName("HR");
$req->setParentId("10");
$req->setHideDept("true");
$req->setDeptPermits("3,4,5");
$req->setUserPermits("100,200");
$req->setOuterPermitUsers("500,600");
$req->setOuterPermitDepts("6,7,8");
$req->setOuterDeptOnlySelf("true");
$req->setOuterDept("true");
$req->setCreateDeptGroup("true");
$req->setOrder("10");
$req->setSourceIdentifier("HR部门");
$resp = $c->execute($req, $access_token, "https://oapi.dingtalk.io/topapi/v2/department/create");
C#
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/v2/department/create");
OapiV2DepartmentCreateRequest req = new OapiV2DepartmentCreateRequest();
req.ParentId = 10L;
req.OuterDept = true;
req.HideDept = true;
req.CreateDeptGroup = true;
req.Order = 10L;
req.Name = "HR";
req.SourceIdentifier = "HR部门";
req.DeptPermits = "3,4,5";
req.UserPermits = "100,200";
req.OuterPermitUsers = "500,600";
req.OuterPermitDepts = "6,7,8";
req.OuterDeptOnlySelf = true;
OapiV2DepartmentCreateResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);

响应

响应体

名称类型示例值描述
request_idString6iq4zcul5zjp请求ID。
errcodeNumber0返回码。
errmsgStringok返回码描述。
resultDeptCreateResponse调用结果。
dept_idNumber100部门ID。

响应体示例

{
  "errcode": 0,
  "errmsg":"ok",
  "result": {
    "dept_id": 41xxxx76
  },
  "request_id": "6iq4zcul5zjp"
}

错误码

若调用该接口报错,可根据错误信息在全局错误码文档中查找解决方案。
错误码(errcode)错误码描述(errmsg)解决方案
40035参数非法请确认参数按照上述文档要求填写
43007需要授权请确认access_token有权限进行此操作
60004父部门不存在请检查parent_id是否正确
600109不合法的可见id列表请确认可见列表是否符合要求
-1系统繁忙请稍后再试