获取审批数据
获取员工在某段时间内的请假、加班、外出和出差四种审批数据。
Tip: 请假的假期时长字段,暂未开放提供,待后续提供。
请假、加班:仅支持查询已通过和已撤回状态的审批数据
外出、出差:支持查询所有状态的审批数据
请求
| 项目 | 值 |
|---|---|
| HTTP URL | https://open.feishu.cn/open-apis/attendance/v1/user_approvals/query |
| HTTP Method | POST |
| 接口频率限制 | 50 次/秒 |
| 支持的应用类型 | custom |
| 权限要求 调用该 API 所需的权限。开启其中任意一项权限即可调用 | attendance:task:readonly 导出打卡数据 |
请求头
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| Authorization | string | 是 | tenant_access_token 值格式:"Bearer access_token" 示例值:"Bearer t-7f1bcd13fc57d46bac21793a18e560" 了解更多:如何选择与获取 access token |
| Content-Type | string | 是 | 固定值:"application/json; charset=utf-8" |
查询参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
employee_type | string | 是 | 请求体中的 user_ids 和响应体中的 user_id 的员工ID类型。如果没有后台管理权限,可使用通过手机号或邮箱获取用户 ID 示例值:employee_id 可选值有: - employee_id: 员工 employee ID,即飞书管理后台 > 组织架构 > 成员与部门 > 成员详情中的用户 ID - employee_no: 员工工号,即飞书管理后台 > 组织架构 > 成员与部门 > 成员详情中的工号 - open_id: 用户在某个应用中的身份查询Open ID |
请求体
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
user_ids | string\[\] | 是 | employee_no 或 employee_id 列表。传入的ID类型需要与employee_type的取值一致 示例值:["abd754f7"] |
check_date_from | int | 是 | 查询的起始日期。格式yyyyMMdd 注意:传入的日期不能超过当天 +1 天,例如当天 20241010,则传入 20241011 支持查询,但传入 20241012 会报错。 示例值:20190817 |
check_date_to | int | 是 | 查询的结束日期,与 check_date_from 的时间间隔不超过 30 天。格式yyyyMMdd 示例值:20190820 |
check_date_type | string | 否 | 查询依据的时间类型(不填默认依据PeriodTime) 示例值:"PeriodTime" 可选值有: - PeriodTime: 单据作用时间 - CreateTime: 单据创建时间 - UpdateTime: 单据状态更新时间(灰度中,暂不开放) |
status | int | 否 | 查询状态(不填默认查询已通过状态) 请假、加班:仅支持已通过和已撤回状态 外出、出差:支持查询所有状态 示例值:2 可选值有: - 0: 待审批 - 1: 未通过 - 2: 已通过 - 3: 已撤回 - 4: 已撤销 |
check_time_from | string | 否 | 查询的起始时间,精确到秒的时间戳(灰度中,暂不开放) 示例值:"1566641088" |
check_time_to | string | 否 | 查询的结束时间,精确到秒的时间戳(灰度中,暂不开放) 示例值:"1592561088" |
请求体示例
json
{
"user_ids": [
"abd754f7"
],
"check_date_from": 20190817,
"check_date_to": 20190820,
"check_date_type": "PeriodTime",
"status": 2,
"check_time_from": "1566641088",
"check_time_to": "1592561088"
}响应
响应体
| 名称 | 类型 | 描述 |
|---|---|---|
code | int | 错误码,非 0 表示失败 |
msg | string | 错误描述 |
data | \- | - |
└ user_approvals | user_approval\[\] | 审批结果列表 |
└ user_id | string | 审批用户 ID,类型与employee_type的取值一致 |
└ date | string | 审批作用日期,格式yyyyMMdd |
└ outs | user_out\[\] | 外出信息 |
└ approval_id | string | 审批实例 ID |
└ uniq_id | string | 外出类型唯一 ID,代表一种假期类型,长度小于 14 * 此ID对应外出类型(i.e.: i18n_names),因此需要保证唯一 |
└ unit | int | 外出时长单位 可选值有: - 1: 天 - 2: 小时 - 3: 半天 - 4: 半小时 |
└ interval | int | 关联审批单外出时长,单位为秒,与unit无关 |
└ start_time | string | 开始时间,时间格式为 yyyy-MM-dd HH:mm:ss。 时间按照审批发起人当前考勤组的时区进行取值,如果发起人已离职,则默认为 0 时区。 |
└ end_time | string | 结束时间,时间格式为 yyyy-MM-dd HH:mm:ss。 时间按照审批发起人当前考勤组的时区进行取值,如果发起人已离职,则默认为 0 时区。 |
└ i18n_names | i18n_names | 外出多语言展示,格式为 map,key 为 ["ch"、"en"、"ja"],其中 ch 代表中文、en 代表英语、ja 代表日语 |
└ ch | string | 中文描述 |
└ en | string | 英语描述 |
└ ja | string | 日语描述 |
└ default_locale | string | 默认语言类型,由于飞书客户端支持中、英、日三种语言,当用户切换语言时,如果假期名称没有所对应的语言,会使用默认语言的名称 |
└ reason | string | 外出理由 |
└ approve_pass_time | string | 审批通过时间,时间格式为 yyyy-MM-dd HH:mm:ss |
└ approve_apply_time | string | 审批申请时间,时间格式为 yyyy-MM-dd HH:mm:ss |
└ idempotent_id | string | 唯一幂等键 |
└ correct_process_id | string\[\] | 更正流程实例 ID |
└ cancel_process_id | string\[\] | 撤销流程实例 ID |
└ process_id | string\[\] | 发起流程实例 ID |
└ leaves | user_leave\[\] | 请假信息 |
└ approval_id | string | 审批实例 ID |
└ uniq_id | string | 假期类型唯一 ID,代表一种假期类型,长度小于 14 * 此ID对应假期类型(i.e.: i18n_names),因此需要保证唯一 |
└ unit | int | 假期时长单位 可选值有: - 1: 天 - 2: 小时 - 3: 半天 - 4: 半小时 |
└ interval | int | 关联审批单休假时长,单位为秒,与unit无关 |
└ start_time | string | 开始时间,时间格式为 yyyy-MM-dd HH:mm:ss。 时间按照审批发起人当前考勤组的时区进行取值,如果发起人已离职,则默认为 0 时区。 |
└ end_time | string | 结束时间,时间格式为 yyyy-MM-dd HH:mm:ss。 时间按照审批发起人当前考勤组的时区进行取值,如果发起人已离职,则默认为 0 时区。 |
└ i18n_names | i18n_names | 假期多语言展示,格式为 map,key 为 ["ch"、"en"、"ja"],其中 ch 代表中文、en 代表英语、ja 代表日语 |
└ ch | string | 中文描述 |
└ en | string | 英语描述 |
└ ja | string | 日语描述 |
└ default_locale | string | 默认语言类型,由于飞书客户端支持中、英、日三种语言,当用户切换语言时,如果假期名称没有所对应的语言,会使用默认语言的名称 可选值有: - ch: 中文 - en: 英文 - ja: 日文 |
└ reason | string | 请假理由,必选字段 |
└ approve_pass_time | string | 审批通过时间,时间格式为 yyyy-MM-dd HH:mm:ss |
└ approve_apply_time | string | 审批申请时间,时间格式为 yyyy-MM-dd HH:mm:ss |
└ idempotent_id | string | 唯一幂等键 |
└ overtime_works | user_overtime_work\[\] | 加班信息 |
└ approval_id | string | 审批实例 ID |
└ duration | number(float) | 加班时长 |
└ unit | int | 加班时长单位 可选值有: - 1: 天 - 2: 小时 - 3: 半天 - 4: 半小时 |
└ category | int | 加班日期类型 可选值有: - 1: 工作日 - 2: 休息日 - 3: 节假日 |
└ type | int | 加班规则类型 可选值有: - 0: 不关联加班规则 - 1: 调休 - 2: 加班费 - 3: 关联加班规则,没有调休或加班费 |
└ start_time | string | 开始时间,时间格式为 yyyy-MM-dd HH:mm:ss。 时间按照审批发起人当前考勤组的时区进行取值,如果发起人已离职,则默认为 0 时区。 |
└ end_time | string | 结束时间,时间格式为 yyyy-MM-dd HH:mm:ss。 时间按照审批发起人当前考勤组的时区进行取值,如果发起人已离职,则默认为 0 时区。 |
└ reason | string | 加班事由 |
└ idempotent_id | string | 唯一幂等键 |
└ correct_process_id | string\[\] | 更正流程实例 ID |
└ cancel_process_id | string\[\] | 撤销流程实例 ID |
└ process_id | string\[\] | 发起流程实例 ID |
└ trips | user_trip\[\] | 出差信息 |
└ approval_id | string | 审批实例 ID |
└ start_time | string | 开始时间,时间格式为 yyyy-MM-dd HH:mm:ss。 时间按照审批发起人当前考勤组的时区进行取值,如果发起人已离职,则默认为 0 时区。 |
└ end_time | string | 结束时间,时间格式为 yyyy-MM-dd HH:mm:ss。 时间按照审批发起人当前考勤组的时区进行取值,如果发起人已离职,则默认为 0 时区。 |
└ reason | string | 出差理由 |
└ approve_pass_time | string | 审批通过时间,时间格式为 yyyy-MM-dd HH:mm:ss |
└ approve_apply_time | string | 审批申请时间,时间格式为 yyyy-MM-dd HH:mm:ss |
└ idempotent_id | string | 唯一幂等键 |
└ correct_process_id | string\[\] | 更正流程实例 ID |
└ cancel_process_id | string\[\] | 撤销流程实例 ID |
└ process_id | string\[\] | 发起流程实例 ID |
└ departure | region_place | 出发地(只有一个) |
└ region_level | string | 地理等级(国家|省|市|区) |
└ region_id | string | 地理id |
└ destinations | region_place\[\] | 目的地(可写多个) |
└ region_level | string | 地理等级(国家|省|市|区) |
└ region_id | string | 地理id |
└ transportation | int\[\] | 交通工具(1 飞机,2 火车,3 汽车,4 高铁/动车,5 船,6 其他) |
└ trip_type | int | 出差类型(1:单程 2:往返) |
└ remarks | string | 出差备注 |
└ time_zone | string | 计算时间所用的时区信息,为空则为0时区 |
响应体示例
json
{
"code": 0,
"msg": "success",
"data": {
"user_approvals": [
{
"user_id": "abd754f7",
"date": "20210104",
"outs": [
{
"approval_id": "6737202939523236113",
"uniq_id": "9496E43696967658A512969523E89870",
"unit": 1,
"interval": 8,
"start_time": "2021-01-04 09:00:00",
"end_time": "2021-01-04 19:00:00",
"i18n_names": {
"ch": "中文描述",
"en": "English description",
"ja": "日本語の説明"
},
"default_locale": "ch",
"reason": "外出办事",
"approve_pass_time": "2021-01-04 12:00:00",
"approve_apply_time": "2021-01-04 11:00:00",
"idempotent_id": "1233432312",
"correct_process_id": [
"7304865941202929196"
],
"cancel_process_id": [
"7304865941202929196"
],
"process_id": [
"7304865941202929196"
]
}
],
"leaves": [
{
"approval_id": "6737202939523236113",
"uniq_id": "6852582717813440527",
"unit": 1,
"interval": 8,
"start_time": "2021-01-04 09:00:00",
"end_time": "2021-01-04 19:00:00",
"i18n_names": {
"ch": "中文描述",
"en": "English description",
"ja": "日本語の説明"
},
"default_locale": "ch",
"reason": "家里有事",
"approve_pass_time": "2021-01-04 12:00:00",
"approve_apply_time": "2021-01-04 11:00:00",
"idempotent_id": "1233432312"
}
],
"overtime_works": [
{
"approval_id": "6737202939523236113",
"duration": 1.5,
"unit": 1,
"category": 2,
"type": 1,
"start_time": "2021-01-09 09:00:00",
"end_time": "2021-01-10 13:00:00",
"reason": "推进项目进度",
"idempotent_id": "1233432312",
"correct_process_id": [
"7304865941202929196"
],
"cancel_process_id": [
"7304865941202929196"
],
"process_id": [
"7304865941202929196"
]
}
],
"trips": [
{
"approval_id": "6737202939523236113",
"start_time": "2021-01-04 09:00:00",
"end_time": "2021-01-04 19:00:00",
"reason": "培训",
"approve_pass_time": "2021-01-04 12:00:00",
"approve_apply_time": "2021-01-04 11:00:00",
"idempotent_id": "1233432312",
"correct_process_id": [
"7304865941202929196"
],
"cancel_process_id": [
"7304865941202929196"
],
"process_id": [
"7304865941202929196"
],
"departure": {
"region_level": "l1:国家级",
"region_id": "6863333418483058189"
},
"destinations": [
{
"region_level": "l1:国家级",
"region_id": "6863333418483058189"
}
],
"transportation": [
1
],
"trip_type": 1,
"remarks": "出差备注"
}
],
"time_zone": "Asia/Shanghai"
}
]
}
}错误码
| HTTP状态码 | 错误码 | 描述 | 排查建议 |
|---|---|---|---|
| 400 | 1220001 | param is invalis | 入参校验失败,请根据具体返回的信息检查入参。例如“employee_type invalid”代表人员类型异常。如仍无法解决可联系 技术支持 |
| 400 | 1220002 | tenant_id is empty | 请检查入参中的 tenant_access_token是否正确 |
| 400 | 1220004 | param is invalis | 请参考实际返回的错误信息排查问题。例如“user_id is not exist or does not have permission”代表入参传入的用户id不存在或者没有权限。如仍无法解决可联系 技术支持 |
| 400 | 1220005 | 没有权限 | 请前往考勤管理后台检查数据权限范围 |
| 500 | 1225000 | param is invalis | 请参考实际返回的错误信息排查问题。例如“internal server error”代表内部服务异常。如仍无法解决可联系 技术支持 |
| 500 | 1226000 | param is invalis | 班次服务异常错误码,请参考实际返回的错误信息排查问题。例如“internal server error”代表内部服务异常。如仍无法解决可联系 技术支持 |
| 500 | 1226500 | 历史错误码,不再使用 | - |
| 400 | 1220600 | 通用错误信息 | 通用错误信息包含多条,详细的错误信息以及处理建议可参见错误信息。 |
