电子合同¶
获取企业签署额度¶
使用场景:该接口用于查询企业剩余额度
请求方式:GET(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/sign_balance/?access_token=ACCESS_TOKEN
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"single_signature_balance": 0,
"account_type": 2,
"total_balance": 49,
"double_signature_balance": 0
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| single_signature_balance | E签宝单方签署额度 |
| double_signature_balance | E签宝双方签署额度 |
| total_balance | 法大大签署额度 |
| account_type | 账户类型 1 E签宝;2 法大大 |
获取企业合同分类信息¶
使用场景:该接口用于获取企业所有合同分类信息
请求方式:GET(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/contract_category/list/?access_token=ACCESS_TOKEN
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": [
{
"company_seal_id": "23544*****s123*******123214",
"company_seal_name": "测试合同印章",
"employee_sign_method": 2,
"has_template": true,
"id": "787b*******41758a******bce733",
"name": "合同分类名称",
"remark": "备注信息",
"seal_point_type": 1,
"sign_target_type": 3
}
]
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| company_seal_id | 合同分类关联的印章id |
| company_seal_name | 合同分类关联的印章名称 |
| employee_sign_method | 员工签署的方式 1 默认印章; 2 手写签名 |
| has_template | 合同分类是否存在合同模版 |
| id | 合同分类id |
| name | 合同分类名称 |
| remark | 合同分类备注 |
| seal_point_type | 印章定位方式 1 固定位置定位;2 关键词定位 |
| sign_target_type | 签署对象 1 企业单方签署;2 企业员工双方签署;3 员工单方签署 |
获取企业的合同包列表¶
使用场景:该接口用于获取企业设置的所有电子合同签署包列表
请求方式:GET(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/package/list/?access_token=ACCESS_TOKEN
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| access_token | String | 是 | 调用接口凭证 |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": [
{
"id": "d22ba6*****f44c7a89ae*****19c7f5",
"name": "自招派遣合同包",
"expire_days": 14
},
{
"id": "b87939*****74563a6214*****1fbe27",
"name": "北京招聘合同包",
"expire_days": 7
}
]
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| id | 合同包id |
| name | 合同包名称 |
| expire_days | 合同未签署过期时间 |
获取企业的合同包详情¶
使用场景:该接口用于获取企业指定合同包的详细信息,包含合同包内的合同模版信息基础信息,合同模版变量信息等。
请求方式:GET(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/package/info/?access_token=ACCESS_TOKEN&id=package_id
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| access_token | String | 是 | 调用接口凭证 |
| id | String | 是 | 合同包id |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"template_list": [
{
"id": "9a272d*****a48ea89240*****3111de",
"name": "派遣劳动合同",
"field_list": [
{
"field_key": "field_xxx",
"field_name": "用人单位全称"
},
{
"field_key": "field_xxx",
"field_name": "用人单位地址"
},
{
"field_key": "emp_name",
"field_name": "员工姓名"
}
],
"can_initiated": true,
"err_msg": ""
},
{
"id": "8e84f3*****9401a9ae6b*****ea2b2b",
"name": "员工派遣单",
"field_list": [
{
"field_key": "emp_name",
"field_name": "员工姓名"
},
{
"field_key": "hire_dt",
"field_name": "入职时间"
}
],
"can_initiated": false,
"err_msg": "存在未设置印章位置参数模版"
}
]
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| template_list | 合同包内的模版列表 |
| id | 合同模版id |
| name | 合同模版名称 |
| can_initiated | 合同模版能否发起标识 |
| err_msg | 合同模版无法发起具体错误信息 |
| field_list | 合同模版包含的变量列表 |
| field_key | 合同变量key |
| field_name | 合同变量名称 |
获取企业的合同列表信息¶
使用场景:该接口用于获取企业指定发起时间段、合同状态、合同分类下的合同列表信息,分页返回。
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/contract/search_list/?access_token=ACCESS_TOKEN
请求示例:
{
"p": 1,
"limit": 20,
"contract_cate_ids": ["12381******jff128d******sd912"],
"contract_status": [2, 3, 4],
"contract_start_dt": "2023-01-01",
"contract_end_dt": "2023-10-01"
}
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| access_token | String | 是 | 调用接口凭证 |
| p | Number | 否 | 页数 默认 1 |
| limit | Number | 否 | 每页条数 默认 20 最大200 |
| contract_cate_ids | Array | 否 | 合同分类ID列表 |
| contract_status | Array | 否 | 合同状态列表 1 签署中;2 拒绝签署;3 撤回签署;4 签署完成; |
| contract_start_dt | String | 否 | 发起时间搜索条件,大于等于参数,格式"YYYY-MM-DD" |
| contract_end_dt | String | 否 | 发起时间搜索条件,小于等于参数,格式"YYYY-MM-DD" |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"p": 1,
"limit": 20,
"offset": 0,
"total_count": 1,
"totalpage": 1,
"objects": [
{
"add_by_id": "d246*******483f8cd*******84ffc",
"add_by_name": "添加人HR",
"add_dt": "2023-04-04 11:46:10",
"contract_category_id": "6693d******72a8710*****f38894",
"contract_category_name": "收入证明",
"contract_name": "测试员工的收入证明",
"contract_no": "SZ00230",
"contract_seal_name": "产品测试印章",
"contract_url": "https://prv-cdn.2haohr.com/712308*****fcc1765a234b48?attname=*****name.pdf&e=1699330455&token=kHQ*****snnMoU=",
"id": "12dbc*****ebe413b7*****11ce",
"newest_sign_dt": "2023-04-04 11:46:26",
"sign_person_id": "483f8cd*******84ffc*****21312",
"sign_person_name": "测试员工",
"sign_person_type": 2,
"status": 4
}
]
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| p | 页数 |
| limit | 每页条数 |
| offset | 偏移量 |
| total_count | 符合条件所有合同总数 |
| totalpage | 总页数 |
| objects | 具体合同列表 |
| add_by_id | 添加人id |
| add_by_name | 添加人姓名 |
| add_dt | 合同发起时间 |
| contract_category_id | 合同分类id |
| contract_category_name | 合同分类名称 |
| contract_name | 合同名称 |
| contract_no | 合同编号 |
| contract_seal_name | 合同企业印章名称 |
| contract_url | 合同文件url 链接有效期1小时 |
| id | 合同id |
| newest_sign_dt | 合同签署时间 |
| sign_person_id | 签署员工id |
| sign_person_name | 签署员工姓名 |
| sign_person_type | 签署员工类型 2 员工;3 待入职员工 |
| status | 合同状态 1 签署中;2 拒绝签署;3 撤回签署;4 签署完成; |
预创建入职人员的合同包的合同信息¶
使用场景:该接口用于创建保存合同包的合同信息,生成相关的待发起状态的合同。异构系统在使用前需要预先配置好合同包,并约定好相关的的合同模版中的自定义变量字段。
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/task/prepare/?access_token=ACCESS_TOKEN
请求示例:
{
"entry_id": "40fefa*****5459492b5a*****9d6f8c",
"econtract_package_id": "xxxxxx",
// 合同包id
"template_list": [
{
"id": "40e22f*****84a46908c8*****81576e",
"field_xxx": "自定义字段值",
"emp_name": "张三",
"mobile": "155****2222",
"credentials_no": "1c2f99*****ea32c37de9c5b9*****e23f68"
}
]
}
参数说明: 根据不同模版中的变量返回对应的key和key对应填写好的值
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| entry_id | String | 是 | 流程ID |
| econtract_package_id | String | 是 | 合同包id |
| expire_days | Number | 是 | 过期时间 |
| template_list | Object | 是 | 模版信息列表 |
| id | String | 是 | 模版id |
| field_xxx | String | 是 | 自定义字段值(示例) |
| emp_name | String | 是 | 员工姓名(示例) |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"is_success": true
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| is_success | 操作是否成功:true or false |
直接创建入职人员的合同包的合同信息¶
使用场景:该接口用于创建保存合同包的合同信息,生成相关的待发起状态的合同。异构系统在使用前需要预先配置好合同包,并约定好相关的的合同模版中的自定义变量字段。
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/task/create/?access_token=ACCESS_TOKEN
请求示例:
{
"entry_id": "40fefa*****5459492b5a*****9d6f8c",
"econtract_package_id": "xxxxxx",
// 合同包id
"template_list": [
{
"id": "40e22f*****84a46908c8*****81576e",
"field_xxx": "自定义字段值",
"emp_name": "张三",
"mobile": "155****2222",
"credentials_no": "1c2f99*****ea32c37de9c5b9*****e23f68",
"emp_contract_info": {
"contract_start_dt": "2022-05-20",
"contract_end_dt": "2023-05-19"
}
}
]
}
参数说明: 根据不同模版中的变量返回对应的key和key对应填写好的值
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| entry_id | String | 是 | 流程ID |
| econtract_package_id | String | 是 | 合同包id |
| expire_days | Number | 是 | 过期时间 |
| template_list | Object | 是 | 模版信息列表 |
| id | String | 是 | 模版id |
| emp_contract_info | Object | 否 | 同步人事合同管理参数 |
| contract_start_dt | String | 是 | 合同开始时间 |
| contract_end_dt | String | 是 | 合同结束时间 |
| field_xxx | String | 是 | 自定义字段值(示例) |
| emp_name | String | 是 | 员工姓名(示例) |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"is_success": true
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| is_success | 操作是否成功:true or false |
发起入职人员的合同包的签署任务¶
使用场景:该接口用于发起待签署人员的合同包签署任务,并通过短信方式通知待签署。待签署人员可以通过短信内容中的链接内容跳转至2号人事部电子合同小程序端入口查看阅读需要他签署的合同包合同内容。
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/task/send/?access_token=ACCESS_TOKEN
请求示例:
{
"entry_id": "40fefa*****5459492b5a*****9d6f8c"
}
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| entry_id | String | 是 | 流程ID |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"is_success": true
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| is_success | 操作是否成功:true or false |
获取入职人员的合同包的签署任务结果信息¶
使用场景:该接口用于获取指定的入职人员的合同包签署任务完成后的合同信息
请求方式:GET(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/task/result/?access_token=ACCESS_TOKEN&entry_id=ENTRY_ID
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| access_token | String | 是 | 调用接口凭证 |
| entry_id | String | 是 | 流程ID |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": [
{
"contract_id": "40fefa*****5459492b5a*****9d6f8c",
"contract_name": "派遣劳动合同",
"contract_url": "https://xxx.com/xxx"
}
]
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| contract_id | 合同id |
| contract_name | 合同名称 |
| contract_url | 签署合同pdf文件url |
企业驳回入职人员的合同包的签署任务结果(拒绝签署状态)¶
使用场景:该接口用于企业的合同审核管理人员对员工签署的合同进行审核不通过,拒绝执行签署合同
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/task/refuse/?access_token=ACCESS_TOKEN
请求示例:
{
"entry_id": "9ac3b82f****4dfa****860a9f44bc00",
"contract_list": [
{
"contract_id": "",
"refuse_reason": "签署字迹潦草无法识别"
}
]
}
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| entry_id | String | 是 | 流程ID |
| contract_list | Array | 是 | 合同列表 |
| contract_id | String | 是 | 合同id |
| refuse_reason | String | 是 | 拒绝原因 |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"is_success": true
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| is_success | 操作是否成功:true or false |
HR批量自动签署¶
使用场景:hr批量自动签署
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/auto_sign/?access_token=ACCESS_TOKEN
请求示例:
{
"entry_id": "40fefa*****5459492b5a*****9d6f8c"
}
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| entry_id | String | 是 | 流程ID |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"is_success": true
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| is_success | 操作是否成功:true or false |
撤销入职人员的合同包签署任务¶
使用场景:该接口用于撤销指定的入职人员的合同包签署任务(撤销合同)
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/cancel/?access_token=ACCESS_TOKEN
请求示例:
{
"entry_id": "40fefa*****5459492b5a*****9d6f8c"
}
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| entry_id | String | 是 | 流程ID |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"is_success": true
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| is_success | 操作是否成功:true or false |
作废入职人员的合同包签署任务¶
使用场景:该接口用于作废指定的入职人员的合同包签署任务(作废合同)
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/delete/?access_token=ACCESS_TOKEN
请求示例:
{
"entry_id": "40fefa*****5459492b5a*****9d6f8c"
}
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| entry_id | String | 是 | 流程ID |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"is_success": true
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| is_success | 操作是否成功:true or false |
获取合同预览文件url¶
使用场景:该接口用于预览合同模版填充模版变量后生成的pdf文件内容
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/preview_contract/?access_token=ACCESS_TOKEN
请求示例:
{
"id": "40fefa*****5459492b5a*****9d6f8c",
"field_xxx": "自定义字段值",
"emp_name": "张三",
"mobile": "155****2222"
}
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 是 | 合同模版ID |
| emp_name | String | 否 | 根据模版内变量传递对应key_value |
| field_xxx | String | 否 | 根据模版内变量传递对应key_value |
| mobile | String | 否 | 根据模版内变量传递对应key_value |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"url": "https://https://prv-cdn.2haohr.com/preview_contract/xx?attname=xx"
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| url | 预览合同文件pdf_url |
获取员工签署通知短信内容¶
使用场景:该接口用于获取通知员工签署时发送的短信内容文本
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/task/get_notify_content/?access_token=ACCESS_TOKEN
请求示例:
{
"entry_id": "40fefa*****5459492b5a*****9d6f8c"
}
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| entry_id | String | 是 | 流程ID |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"msg": "获取成功",
"is_success": true,
"sms_content": "测试企业的HR-张三给您发送待签署合同《测试入职合同包》。微信小程序搜索「2号电子合同」完成签署:http://2haohr.cn/xxxxx"
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| msg | 执行情况信息 |
| is_success | 执行状态 |
| sms_content | 通知短信内容文本 |
重新发送员工签署通知¶
使用场景:该接口用于重新发送员工签署通知
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/task/resend_notify/?access_token=ACCESS_TOKEN
请求示例:
{
"entry_id": "40fefa*****5459492b5a*****9d6f8c"
}
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| entry_id | String | 是 | 流程ID |
权限说明
返回结果:
{
"errcode": 0,
"errmsg": "",
"data": {
"msg": "推送成功",
"is_success": true
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| msg | 执行情况信息 |
| is_success | 执行状态 |
获取合同的签署状态详情¶
使用场景:该接口用于通过批量entry_id获取合同的签署状态详情
请求方式:POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/econtract/contract/sign_status/?access_token=ACCESS_TOKEN
请求示例:
{
"entry_id_list": [
"9e72f****d4648****9a79e****2a2a5",
"41503****7cb47****a465d****afb69"
]
}
参数说明:
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| entry_id_list | List | 是 | 流程ID列表(单次:200) |
权限说明
返回结果:
{
"data": [
{
"entry_id": "9e72f****d4648****9a79e****2a2a5",
"data": [
{
"status": 1,
"contract_name": "XXX的入职合同",
"company_sign_detail": {
"sign_status": 0,
"id": "46991****8a5468****78cd****e81cf",
"name": "HR1",
"newest_sign_dt": "2023-08-07 15:06:53"
},
"sign_target_type": 2,
"contract_category_id": "8466f19****40b9bb54c****3db9cd",
"id": "94f9ab****148e0a2961700a****6cd",
"add_dt": "2023-08-07 15:06:53",
"package_task_id": "472a9769*****92154fb958****0959a",
"add_by_id": "f740****0bc54a1****caa9fd93db107",
"newest_sign_dt": "2023-08-07 15:06:53",
"contract_category_name": "入职合同",
"employee_sign_detail": {
"sign_status": 0,
"id": "b8a24d****845c1b01c****b52b4a23",
"name": "员工1",
"newest_sign_dt": "2023-08-07 15:06:53"
},
"add_by_name": "HR1",
"contract_no": ""
},
{
"status": 1,
"contract_name": "XXX的劳动合同",
"company_sign_detail": {
},
"sign_target_type": 3,
"contract_category_id": "683e52f9****3faac34b827a****ebaa",
"id": "93a1fd8a****6e4b5cce3a2****399",
"add_dt": "2023-08-07 15:06:57",
"package_task_id": "472a9****244764914fb958****959a",
"add_by_id": "f7408df70****a19935caa9f****b107",
"newest_sign_dt": "2023-08-07 15:06:57",
"contract_category_name": "劳动合同",
"employee_sign_detail": {
"sign_status": 0,
"id": "b8a2****a28845c1b01c****b52b4a23",
"name": "员工",
"newest_sign_dt": "2023-08-07 15:06:57"
},
"add_by_name": "HR1",
"contract_no": ""
}
]
},
{
"entry_id": "41503****7cb47****a465d****afb69",
"data": []
}
],
"errcode": 0,
"errmsg": ""
}
参数说明:
| 参数 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| data | 返回数据 |
| status | 合同状态(0: 待发起签署, 1: 签署中, 2: 拒绝签署, 3: 撤回签署, 4: 签署完成, 5: 作废合同) |
| contract_name | 合同状态 |
| newest_sign_dt | 合同最新签署时间 |
| contract_category_id | 合同分类Id |
| contract_category_name | 合同分类名称 |
| id | 合同Id |
| add_dt | 合同发起时间 |
| package_task_id | 合同包Id |
| add_by_id | 合同添加人Id |
| sign_target_type | 合同签署对象类型(1: 企业,2: 企业和员工,3: 员工) |
| company_sign_detail | 企业签署详情(sign_status: 企业签署状态, id: 签署人Id, name: 签署人名称, newest_sign_dt: 最新签署时间) |
| employee_sign_detail | 员工签署详情(sign_status: 企业签署状态, id: 签署人Id, name: 签署人名称, newest_sign_dt: 最新签署时间) |
| add_by_name | 合同添加人 |
| contract_no | 合同编号 |
| sign_status | 签署详情状态(0: 未签署, 1: 签署中, 2: 签署完成) |
| msg | 执行情况信息 |
| is_success | 执行状态 |