# 创建岗位信息

创建岗位，可定义岗位关联的职务、职级、序列，以及岗位描述等
**注意事项**：- 非必填字段，不传时默认为空
- 此接口字段是否必填以【飞书人事-组织配置】为准。建议参照【飞书人事-组织管理-岗位-新建】页面来传参

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.feishu.cn/open-apis/corehr/v2/positions
HTTP Method | POST
接口频率限制 | [5 次/秒](https://open.feishu.cn/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App、Store App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用** | 读写岗位信息(corehr:position:write)

### 请求头

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

### 查询参数

名称 | 类型 | 必填 | 描述
---|---|---|---
client_token | string | 否 | 根据client_token是否一致来判断是否为同一请求<br>**示例值**：1245464678<br>**数据校验规则**：<br>- 长度范围：`0` ～ `128` 字符
department_id_type | string | 否 | 此次调用中使用的部门 ID 类型，三种类型的 ID 都可通过飞书人事的[批量查询部门（ V2）](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 来获取<br>**示例值**：people_corehr_department_id<br>**可选值有**：<br>- open_department_id：以 open_department_id 来标识部门<br>- department_id：以 department_id 来标识部门<br>- people_corehr_department_id：以 people_corehr_department_id 来标识部门<br>**默认值**：`people_corehr_department_id`

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
code | string | 否 | 岗位编码 (不能与其他记录的编码重复)<br>- 开启自动编码时，以自动生成的编码值为准，传入值不生效<br>- 未开启自动编码时，编码字段值以传入值为准<br>**示例值**："A01234"
names | i18n\[\] | 是 | 名称<br>**数据校验规则**：<br>- 长度范围：`0` ～ `2`
lang | string | 是 | 名称信息的语言，支持中文和英文。中文用zh-CN；英文用en-US<br>**示例值**："zh-CN"
value | string | 是 | - 支持 zh-CN 和 en-US，最大长度为 255 字符<br>- 名称不能包含「/」「；」「;」「\」「'」字符<br>**示例值**："高级产品经理"
descriptions | i18n\[\] | 否 | 描述<br>**数据校验规则**：<br>- 长度范围：`0` ～ `2`
lang | string | 是 | 名称信息的语言，支持中文和英文。中文用zh-CN；英文用en-US<br>**示例值**："zh-CN"
value | string | 是 | 支持 zh-CN 和 en-US，最大长度为 255 字符<br>**示例值**："岗位的描述"
job_family_ids | string\[\] | 否 | 序列 ID 列表，详细信息可通过[查询单个序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/get)接口获得<br>**示例值**：["4719519211875096301"]<br>**数据校验规则**：<br>- 长度范围：`0` ～ `50`
cost_center_id | string | 否 | 成本中心 ID，可以通过[搜索成本中心信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)接口获取对应的成本中心信息<br>**示例值**："4719519211875096301"
job_id | string | 是 | 职务，可通过[【查询单个职务】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job/get)获取详细信息<br>**示例值**："4719519211875096301"
job_level_ids | string\[\] | 否 | 职级 ID 列表，可通过[【查询单个职级】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/get)获取详细信息<br>**示例值**：["4719519211875096301"]<br>**数据校验规则**：<br>- 长度范围：`0` ～ `50`
employee_type_ids | string\[\] | 否 | 人员类型 ID 列表，可通过文档[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/get)获得详细信息<br>**示例值**：["4719519211875096301"]<br>**数据校验规则**：<br>- 长度范围：`0` ～ `50`
job_grade_ids | string\[\] | 否 | 职等 ID 列表，可通过 [【查询职等】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job_grade/query)获取详细信息<br>**示例值**：["4719519211875096301"]<br>**数据校验规则**：<br>- 长度范围：`0` ～ `50`
work_location_ids | string\[\] | 否 | 工作地点 ID 列表，详细信息可通过[查询单个地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/get)接口获得<br>**示例值**：["4719519211875096301"]<br>**数据校验规则**：<br>- 长度范围：`0` ～ `50`
working_hours_type_id | string | 否 | 工时制度 ID 列表，可通过[【查询单个工时制度】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/working_hours_type/get)查询详细信息<br>**示例值**："4719519211875096301"
department_id | string | 是 | 部门 ID，详细信息可通过[查询单个部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/get)接口获得<br>- ID 类型必须与查询参数 department_id_type 的取值一致<br>**示例值**："4719519211875096301"
direct_leader_id | string | 否 | 直属上级岗位ID，详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得<br>**示例值**："4719519211875096301"
dotted_line_leader_id | string | 否 | 虚线上级岗位ID，详细信息可通过[查询岗位信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)接口获得<br>**示例值**："4719519211875096301"
is_key_position | boolean | 否 | 是否关键岗位<br>**示例值**：true
effective_time | string | 是 | 生效日期，输入日期格式的字符串<br>**示例值**："2020-05-01"<br>**数据校验规则**：<br>- 正则校验：`^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$`
custom_fields | custom_field_data\[\] | 否 | 自定义字段<br>**数据校验规则**：<br>- 长度范围：`0` ～ `200`
custom_api_name | string | 是 | 自定义字段 apiname，即自定义字段的唯一标识，由租户自定义，可通过 [查询岗位信息] (https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query) 获取<br>- 最多传入 200 个自定义字段<br>**示例值**："name"
value | string | 是 | 字段值，是 json 转义后的字符串，根据元数据定义不同，字段格式不同（如 123, 123.23, "true", ["id1","id2"], "2006-01-02 15:04:05"）<br>**示例值**："\"231\""

### 请求体示例
```json
{
    "code": "A01234",
    "names": [
        {
            "lang": "zh-CN",
            "value": "高级产品经理"
        }
    ],
    "descriptions": [
        {
            "lang": "zh-CN",
            "value": "岗位的描述"
        }
    ],
    "job_family_ids": [
        "4719519211875096301"
    ],
    "cost_center_id": "4719519211875096301",
    "job_id": "4719519211875096301",
    "job_level_ids": [
        "4719519211875096301"
    ],
    "employee_type_ids": [
        "4719519211875096301"
    ],
    "job_grade_ids": [
        "4719519211875096301"
    ],
    "work_location_ids": [
        "4719519211875096301"
    ],
    "working_hours_type_id": "4719519211875096301",
    "department_id": "4719519211875096301",
    "direct_leader_id": "4719519211875096301",
    "dotted_line_leader_id": "4719519211875096301",
    "is_key_position": true,
    "effective_time": "2020-05-01",
    "custom_fields": [
        {
            "custom_api_name": "name",
            "value": "\"231\""
        }
    ]
}
```

## 响应

### 响应体

名称 | 类型 | 描述
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-
position_id | string | 岗位ID

### 响应体示例
```json
{
    "code": 0,
    "msg": "success",
    "data": {
        "position_id": "12345678"
    }
}
```

### 错误码

HTTP状态码 | 错误码 | 描述 | 排查建议
---|---|---|---
400 | 1160263 | Name or code already exists | 名称或编码已存在，请检查后重试
400 | 1160903 | Name already exists | 名称已存在，请检查后重试
400 | 1160352 | Invalid enum option | 枚举值非法，请检查后重试
400 | 1160259 | Individual is offboarded on the effecitve date | 传入的人员类型字段的人员在生效日期当天已离职，请检查后重试
400 | 1160517 | Number out of range | 传入的数字类型数字值超过最大限制，请检查后重试
400 | 1160572 | URL is illegal | 链接有问题，请检查链接格式是否符合要求或确保链接有效
400 | 1160402 | The data is not activated on the effective date | 关联的对象在生效日期是失效状态，请检查后重试
400 | 1160251 | Required field(s) is empty | 必填字段不能为空，请检查并补充必填字段后重试
400 | 1160701 | The job doesn't exist on the effective date. | 传入的职务在生效日期当天不存在，请检查后重试
400 | 1160253 | Name can't include "/" or ";" | 名称包含不允许的字符，请修改名称后重试
400 | 1160702 | The job will be deactivated on or after the effective date. | 传入的职务在生效日期当天或未来停用，请检查后重试
400 | 1160269 | Effective date can't be later than the year 9999 | 生效日期不能晚于9999，请检查并调整生效日期后重试
400 | 1160353 | Effective Date cannot earlier than 1900 | 生效日期不能早于1900，请检查并调整生效日期后重试
400 | 1160703 | The job family doesn't exist on the effective date. | 传入的序列在生效日期当天不存在，请检查后重试
400 | 1160704 | The job family will be deactivated on or after the effective date | 传入的序列在生效日期当天或未来停用，请检查后重试
400 | 1160705 | The job level doesn't exist | 传入的职级不存在，请检查后重试
400 | 1160707 | The job grade doesn't exist | 传入的职等不存在，请检查后重试
400 | 1160709 | The job and job family doesn't match | 传入的职务和序列不匹配，请检查后重试
400 | 1160710 | The job and job level doesn't match | 传入的职务和职级不匹配，请检查后重试
400 | 1160711 | The job level and job family doesn't match | 传入的职级和序列不匹配，请检查后重试
400 | 1160712 | The job level and job grade doesn't match | 传入的职级和职等不匹配，请检查后重试
400 | 1160714 | The position doesn't exist on the effective date. | 岗位在传入的生效日期当天不存在，请检查后重试
400 | 1160715 | The position will be deactivated on or after the effective date | 岗位在传入的生效日期当天或未来停用，请检查后重试
400 | 1160349 | Field(s) will be deactivated on or after this effective date | 关联的对象字段在生效日期当天或未来停用，请检查后重试
400 | 1160255 | Parent position hasn't taken effect on effective date | 上级岗位在传入的生效日期当天未生效，请检查后重试
400 | 1160256 | Parent position will be deactivated on or after this effective date | 上级岗位在生效日期当天或未来停用，请检查后重试
400 | 1160264 | This operation will make the relationship between the superior and the subordinate into a ring | 更新后，会出现岗位上下级关系成环，请检查后重试
400 | 1161603 | Name already exists | 岗位名称重复，请修改名称后重试
503 | 1161204 | Requset timeout | 接口超时，请重试。必要时请联系 [技术支持](https://applink.feishu.cn/TLJpeNdW)
429 | 1161604 | QPS over limit | QPS 超出限制，请降低请求频率重试，必要时请联系 [技术支持](https://applink.feishu.cn/TLJpeNdW)

