开放平台

Open.renlijia

接口说明

调用该接口可以批量上传工资条数据,上传完数据后薪资管理员只需要在发送工资条页面进行设置即可进行发送。

请求方式:POST

请求入参

分为两部分,一部分是全局入参,由人力家分配appKey和appSecret,用来进行权限校验;另一部分是接口入参,详情如下:

参数 描述 备注 示例
appKey 客户标识 人力家分配
appSecret 客户私钥 人力家分配(注意保密)
userId 管理员userId 选填,为空则自动获取一个具有工资条权限的子管理员userId
billFormName 工资条标题 必填 "2018年10月工资"
billMonth 工资条月份 必填,yyyy-MM "2018-11"
header 工资条表头 必填,数组,必须包含姓名、实发工资和匹配项 ["姓名", "实发工资", "基本工资", "奖金", "绩效"]
data 工资条数据 必填,数组,长度不大于3000 [["张三", "8000", "7000", "1000", ""], ["李四", "8000", "7000", "1000", ""], ["王五", "8000", "7000", "1000", "200"]]
nameItem 姓名项 选填,取自header,默认值"姓名" "姓名"
matchItem 匹配项 必填,字符串,取自header "姓名"
paySalaryItem 实发工资项 必填,字符串,取自header "实发工资"
matchType 匹配类型 必填,按姓名/userId/工号匹配(name/userId/jobNumber) "name"
excludeItems 不显示的薪资项 选填,取自header ["姓名", "基本工资"]
hideEmptyItems 为空自动隐藏的薪资项 选填,取自header ["奖金", "绩效"]
pendMove 阅后即焚时间 选填,格式为“数字+d/h/m”,d/h/m对应天/小时/分钟 10h
    示例:
    {
      "userId": "15369783916424177",
      "billFormName": "2018年10月工资",
      "billMonth": "2018-10",
      "header": ["姓名", "实发工资", "基本工资", "奖金", "绩效"],
      "data": [["张三", "8000", "7000", "1000", ""], ["李四", "8000", "7000", "1000", ""], ["王五", "8000", "7000", "1000", "200"]],
      "matchItem": "姓名",
      "nameItem": "姓名",
      "paySalaryItem": "实发工资",
      "matchType": "name",
      "excludeItems": ["姓名", "基本工资"],
      "hideEmptyItems": ["奖金", "绩效"],
      "pendMove": "10h"
    }
    

请求出参

参数 描述 备注 示例
code 返回码 200
success 是否成功 ​true/false
data 导入工资条生成的billFormId 发送工资条入参 "55116e60bb5b4044a0f815ed4e1599c6"
msg 错误描述
detail 描述详情
    示例:
    // 1. code为200且detail为空,表示全部导入成功
    {
      "code": 200,
      "success": true,
      "data": "55116e60bb5b4044a0f815ed4e1599c6"
      "detail": "花名册在职员工中无【姓名】为xxx的员工,花名册在职员工中无【姓名】为yyy的员工"
    }
    // 2. 导入报错
    {
      "success": false,
      "code": 30902,
      "msg": "导入工资条人次超过限制",
      "detail": "工资条单次只允许导入3000条"
    }
    

调用频率限制

调用频率限定为5次/秒,如有特殊需求请联系平台。

调用示例

    package com.renlijia.api;
  
    import com.renlijia.api.common.DefaultRenlijiaOpenClient;
    import com.renlijia.api.common.RenlijiaOpenClient;
    import com.renlijia.api.common.enums.MatchTypeEnum;
    import com.renlijia.api.exception.ApiException;
    import com.renlijia.api.salary.bill.BillDataImportRequest;
    import com.renlijia.api.salary.bill.BillDataImportResponse;
    
    import java.util.Arrays;
    import java.util.Objects;
    
    
    /**
      * 人力家开放平台接口调用示例
      *
      * @author erqing.zhang
      */
    public class BillImportDemo {
        private static final int SUCCESS_CODE = 200;
    
        public static void main(String[] args) {
            String appKey = "";
            String appSecret = "";
    
            RenlijiaOpenClient client = new DefaultRenlijiaOpenClient(appKey, appSecret);
            BillDataImportRequest request = new BillDataImportRequest();
            request.setCurrentStage("RELEASE");
            request.setUserId("");
            request.setBillFormName("开放平台");
            request.setBillMonth("2018-11");
            request.setNameItem("姓名");
            request.setMatchItem("姓名");
            request.setPaySalaryItem("实发工资");
            request.setMatchType(MatchTypeEnum.NAME.getKey());
            request.setHeader(Arrays.asList("姓名", "实发工资", "基本工资", "奖金", "绩效"));
            request.setData(Arrays.asList(
                    Arrays.asList("张三", "8000", "7000", "1000", ""),
                    Arrays.asList("李四", "8000", "7000", "1000", ""),
                    Arrays.asList("王五", "8000", "7000", "1000", "200")
            ));
            request.setExcludeItems(Arrays.asList("姓名", "基本工资"));
            request.setHideEmptyItems(Arrays.asList("奖金", "绩效"));
            request.setPendMove("10h");
            try {
                BillDataImportResponse response = client.execute(request);
                if (Objects.equals(response.getCode(), SUCCESS_CODE) && response.getSuccess()) {
                    String billFormId = response.getData();
                    System.out.println(billFormId);
                }
            } catch (ApiException e) {
                e.printStackTrace();
            }
        }
    }           
    

SDK下载

点击下载jar包

接口说明

调用该接口可以发送上传的工资条。

请求方式:POST

请求入参

分为两部分,一部分是全局入参,由人力家分配appKey和appSecret,用来进行权限校验;另一部分是接口入参,详情如下:

参数 描述 备注 示例
appKey 客户标识 人力家分配
appSecret 客户私钥 人力家分配(注意保密)
userId 管理员userId 选填,为空则自动获取一个具有工资条权限的子管理员userId
billFormId 工资条Id 必填,导入工资条接口返回值
    示例:
    {
      "userId": "15369783916424177",
      "billFormId": "55116e60bb5b4044a0f815ed4e1599c6"
    }
    

请求出参

参数 描述 备注 示例
code 返回码 200
success 是否成功 ​true/false
msg 错误描述
detail 描述详情
    示例:
    
    {
      "code": 200,
      "success": true
    }
    
    {
      "success": false,
      "code": 30901,
      "msg": "工资条参数设置有误",
      "detail": "【userId】无工资条权限"
    }
    

调用频率限制

调用频率限定为5次/秒,如有特殊需求请联系平台。

调用示例

    package com.renlijia.api;

    import com.renlijia.api.common.DefaultRenlijiaOpenClient;
    import com.renlijia.api.common.RenlijiaOpenClient;
    import com.renlijia.api.exception.ApiException;
    import com.renlijia.api.salary.bill.BillDataSendRequest;
    import com.renlijia.api.salary.bill.BillDataSendResponse;
    
    import java.util.Objects;
    
    /**
      * @author: yang.zhang
      * @create: 2018-12-11
      **/
    public class BillSendDemo {
        private static final int SUCCESS_CODE = 200;
    
        public static void main(String[] args) {
            String appKey = "";
            String appSecret = "";
    
            RenlijiaOpenClient client = new DefaultRenlijiaOpenClient(appKey, appSecret);
            BillDataSendRequest request = new BillDataSendRequest();
            request.setCurrentStage("RELEASE");
            request.setUserId("");
            request.setBillFormId("");
            try {
                BillDataSendResponse response = client.execute(request);
                if (Objects.equals(response.getCode(), SUCCESS_CODE) && response.getSuccess()) {
                    System.out.println("success");
                }
            } catch (ApiException e) {
                e.printStackTrace();
            }
        }
    }         
    

SDK下载

点击下载jar包

接口说明

调用该接口可以获取企业该月发送的员工工资条数据,每次最多返回200个员工数据。

请求方式:POST

请求入参

分为两部分,一部分是全局入参,由人力家分配appKey和appSecret,用来进行权限校验;另一部分是接口入参,详情如下:

参数 描述 备注 示例
appKey 客户标识 人力家分配
appSecret 客户私钥 人力家分配(注意保密)
billMonth 工资条月份 必填,"yyyy-MM" ​"2018-09"
page 页数 必填,分页,从1开始 1
    示例:
    {
      "billMonth": "2018-12",
      "page": 1
    }
      

请求出参

参数 描述 备注 示例
code 返回码 200
success 是否成功 ​true/false
hasMore 是否还有数据 true:下一页还有数据 false: 数据获取完毕 ​true/false
data 返回结果 数组 [ { "userId": "15382746423383", "userName": "张三", "dataList": [ { "name": "实发工资", "value": "8000" }, { "name": "绩效奖金", "value": "1000" } ] }, { "userId": "15382742164383", "userName": "李四", "dataList": [ { "name": "实发工资", "value": "8000" }, { "name": "绩效奖金", "value": "1000" } ] } ]
ㄴ userId 员工ID 15369783916424133
ㄴ userName 员工姓名 张三
ㄴ dataList 工资条数据 数组 [ { "name": "实发工资", "value": "8000" }, { "name": "绩效奖金", "value": "1000" } ]
    ㄴ name 工资条标题 实发工资
    ㄴ value 工资条数据 8000
    示例:
    
    {
      "code": 200,
      "success": true,
      "hasMore": true,
      "data": [
        {
          "userId": "15369783916424133",
          "userName": "张三",
          "dataList": [
            { "name": "实发工资", "value": "8000" },
            { "name": "绩效奖金", "value": "1000" }
          ]
        },
        {
          "userId": "15369783916424123",
          "userName": "李四",
          "dataList": [
            { "name": "实发工资", "value": "8000" },
            { "name": "绩效奖金", "value": "1000" }
          ]
        }
      ]
    }
      

调用频率限制

调用频率限定为5次/秒,如有特殊需求请联系平台。

调用示例

    package com.renlijia.api;

    import com.alibaba.fastjson.JSON;
    import com.renlijia.api.common.DefaultRenlijiaOpenClient;
    import com.renlijia.api.common.RenlijiaOpenClient;
    import com.renlijia.api.common.vo.UserDataVO;
    import com.renlijia.api.exception.ApiException;
    import com.renlijia.api.salary.bill.BillDataExportRequest;
    import com.renlijia.api.salary.bill.BillDataExportResponse;
    
    import java.util.List;
    import java.util.Objects;
    
    /**
      * @author: yang.zhang
      * @create: 2018-12-24
      **/
    public class BillExportDemo {
        private static final int SUCCESS_CODE = 200;
    
        public static void main(String[] args) {
            String appKey = "";
            String appSecret = "";
    
            RenlijiaOpenClient client = new DefaultRenlijiaOpenClient(appKey, appSecret);
            BillDataExportRequest request = new BillDataExportRequest();
            request.setCurrentStage("RELEASE");
            request.setBillMonth("2018-12");
            request.setPage(1);
            try {
                BillDataExportResponse response = client.execute(request);
                if (Objects.equals(response.getCode(), SUCCESS_CODE) && response.getSuccess()) {
                    List data = response.getData();
                    System.out.println(JSON.toJSONString(data));
                }
            } catch (ApiException e) {
                e.printStackTrace();
            }
        }
    }         
      

SDK下载

点击下载jar包

接口说明

调用该接口可以获取企业该月薪资组浮动薪资项

请求方式:POST

请求入参

分为两部分,一部分是全局入参,由人力家分配appKey和appSecret,用来进行权限校验;另一部分是接口入参,详情如下:

参数 描述 备注 示例
appKey 客户标识 人力家分配
appSecret 客户私钥 人力家分配(注意保密)
salaryGroupName 薪资组名 必填
calBizId 薪资计算月份id 必填 "201901M"
    示例:
    {
      "salaryGroupName": "研发部",
      "calBizId": "201901M"
    }
      

请求出参

参数 描述 备注 示例
code 返回码 200
success 是否成功 ​true/false
data 浮动薪资项 数组 ["浮动工资","个人社保","备注"]
      示例:
      {
        "code": "200",
        "data": ["浮动工资","个人社保","备注"],
        "success": true
      }
      

调用频率限制

调用频率限定为5次/秒,如有特殊需求请联系平台。

调用示例

    package com.renlijia.api;

    import com.renlijia.api.common.DefaultRenlijiaOpenClient;
    import com.renlijia.api.common.RenlijiaOpenClient;
    import com.renlijia.api.exception.ApiException;
    import com.renlijia.api.salary.data.FloatDataItemsGetRequest;
    import com.renlijia.api.salary.data.FloatDataItemsGetResponse;
    
    import java.util.Objects;
    
    /**
      * @author yang.zhang
      * @date 2019-01-30
      **/
    public class FloatDataItemsGetDemo {
        private static final int SUCCESS_CODE = 200;
    
        public static void main(String[] args) {
            String appKey = "";
            String appSecret = "";
    
            RenlijiaOpenClient client = new DefaultRenlijiaOpenClient(appKey, appSecret);
            FloatDataItemsGetRequest request = new FloatDataItemsGetRequest();
            request.setCurrentStage("RELEASE");
            request.setSalaryGroupName("研发部");
            request.setCalBizId("201902M");
            try {
                FloatDataItemsGetResponse response = client.execute(request);
                if (Objects.equals(response.getCode(), SUCCESS_CODE) && response.getSuccess()) {
                    System.out.println("success");
                }
            } catch (ApiException e) {
                e.printStackTrace();
            }
        }
    }         
      

SDK下载

点击下载jar包

接口说明

调用该接口可以导入企业该月薪资组浮动薪资项

请求方式:POST

请求入参

分为两部分,一部分是全局入参,由人力家分配appKey和appSecret,用来进行权限校验;另一部分是接口入参,详情如下:

参数 描述 备注 示例
appKey 客户标识 人力家分配
appSecret 客户私钥 人力家分配(注意保密)
salaryGroupName 薪资组名 必填
calBizId 薪资计算月份id 必填 "201901M"
header 浮动薪资表头 必填,数组,必须包含匹配项 ["姓名", "浮动工资", "迟到天数", "社保扣除"]
data 浮动薪资数据 必填,数组,长度不大于3000 [["张三", "8000", "3", "1000"], ["李四", "8000", "3", "1000"], ["王五", "8000", "3", "1000"]]
matchItem 匹配项 必填,字符串,取自header "姓名"
matchType 匹配类型 必填,按姓名/userId/工号匹配(name/userId/jobNumber) "name"
    示例:
    {
      "salaryGroupName": "研发部",
      "calBizId": "201901M",
      "header": ["姓名", "浮动工资", "迟到天数", "社保扣除"],
      "data": [["张三", "8000", "3", "1000"], ["李四", "8000", "3", "1000"], ["王五", "8000", "3", "1000"]],
      "matchItem": "姓名",
      "matchType": "name"
    }
      

请求出参

参数 描述 备注 示例
code 返回码 200
success 是否成功 ​true/false
data 浮动薪资项 数组 ["浮动工资","个人社保","备注"]
    示例:
    
    {
      "code": "200",
      "success": true
    }
      

调用频率限制

调用频率限定为5次/秒,如有特殊需求请联系平台。

调用示例

    package com.renlijia.api;

    import com.renlijia.api.common.DefaultRenlijiaOpenClient;
    import com.renlijia.api.common.RenlijiaOpenClient;
    import com.renlijia.api.common.enums.MatchTypeEnum;
    import com.renlijia.api.exception.ApiException;
    import com.renlijia.api.salary.data.FloatDataImportRequest;
    import com.renlijia.api.salary.data.FloatDataImportResponse;
    
    import java.util.Arrays;
    import java.util.Objects;
    
    /**
      * @author yang.zhang
      * @date 2019-01-30
      **/
    public class FloatDataImportDemo {
        private static final int SUCCESS_CODE = 200;
    
        public static void main(String[] args) {
            String appKey = "";
            String appSecret = "";
    
            RenlijiaOpenClient client = new DefaultRenlijiaOpenClient(appKey, appSecret);
            FloatDataImportRequest request = new FloatDataImportRequest();
            request.setCurrentStage("RELEASE");
            request.setSalaryGroupName("研发部");
            request.setCalBizId("201902M");
            request.setMatchItem("姓名");
            request.setMatchType(MatchTypeEnum.NAME.getKey());
            request.setHeader(Arrays.asList("姓名", "浮动工资", "迟到天数", "社保扣除"));
            request.setData(Arrays.asList(
                    Arrays.asList("张三", "8000", "3", "1000"),
                    Arrays.asList("李四", "8000", "3", "1000"),
                    Arrays.asList("王五", "8000", "3", "1000")
            ));
            try {
                FloatDataImportResponse response = client.execute(request);
                if (Objects.equals(response.getCode(), SUCCESS_CODE) && response.getSuccess()) {
                    System.out.println("success");
                }
            } catch (ApiException e) {
                e.printStackTrace();
            }
        }
    }        
      

SDK下载

点击下载jar包

接口说明

调用该接口可以根据部门id导出当月薪资报表。

请求方式:POST

请求入参

分为两部分,一部分是全局入参,由人力家分配appKey和appSecret,用来进行权限校验;另一部分是接口入参,详情如下:

参数 描述 备注 示例
appKey 客户标识 人力家分配
appSecret 客户私钥 人力家分配(注意保密)
statisticsMonth 薪资月 必填,格式为"yyyy-MM" "2019-02"
deptId 部门id 必填,数值 93639012
    示例:
    {
      "statisticsMonth": "2019-02",
      "deptId": 93639012
    }
      

请求出参

参数 描述 备注 示例
code 返回码 200
success 是否成功 ​true/false
msg 错误描述
detail 描述详情
data 部门信息 数组 [{"name": "实发工资","value": "0"},{"name": "绩效奖金","value": "0"},{"name": "企业社保","value": "0"},{"name": "固定工资","value": "0"},{"name": "企业公积金","value": "0"},{"name": "总人数","value": "6"},{"name": "业绩提成","value": "0"},{"name": "人力成本","value": "0"},{"name": "加班工资","value": "0"},{"name": "应发工资","value": "0"}]
ㄴ name 报表项 字符串 "实发工资"
ㄴ value 报表数据 字符串 "500000"
    示例:
    
    {
      "code": "200",
      "data": [
          {
              "name": "实发工资",
              "value": "0"
          },
          {
              "name": "绩效奖金",
              "value": "0"
          },
          {
              "name": "企业社保",
              "value": "0"
          },
          {
              "name": "固定工资",
              "value": "0"
          },
          {
              "name": "企业公积金",
              "value": "0"
          },
          {
              "name": "总人数",
              "value": "6"
          },
          {
              "name": "业绩提成",
              "value": "0"
          },
          {
              "name": "人力成本",
              "value": "0"
          },
          {
              "name": "加班工资",
              "value": "0"
          },
          {
              "name": "应发工资",
              "value": "0"
          }
      ],
      "success": true
    }
      

调用频率限制

调用频率限定为5次/秒,如有特殊需求请联系平台。

调用示例

    package com.renlijia.api;

    import com.alibaba.fastjson.JSON;
    import com.renlijia.api.common.DefaultRenlijiaOpenClient;
    import com.renlijia.api.common.RenlijiaOpenClient;
    import com.renlijia.api.common.vo.DataVO;
    import com.renlijia.api.exception.ApiException;
    import com.renlijia.api.salary.data.StatisticsGetByDeptRequest;
    import com.renlijia.api.salary.data.StatisticsGetByDeptResponse;
    
    import java.util.List;
    import java.util.Objects;
    
    /**
      * @author yang.zhang
      * @date 2019-02-18
      **/
    public class StatisticsGetByDeptDemo {
        private static final int SUCCESS_CODE = 200;
    
        public static void main(String[] args) {
            String appKey = "";
            String appSecret = "";
    
            RenlijiaOpenClient client = new DefaultRenlijiaOpenClient(appKey, appSecret);
            StatisticsGetByDeptRequest request = new StatisticsGetByDeptRequest();
            request.setCurrentStage("RELEASE");
            request.setStatisticsMonth("2018-12");
            request.setDeptId(93639012L);
            try {
                StatisticsGetByDeptResponse response = client.execute(request);
                if (Objects.equals(response.getCode(), SUCCESS_CODE) && response.getSuccess()) {
                    List data = response.getData();
                    System.out.println(JSON.toJSONString(data));
                }
            } catch (ApiException e) {
                e.printStackTrace();
            }
        }
    }                
      

SDK下载

点击下载jar包

接口说明

调用该接口可以获取企业所有部门的部门ID。

请求方式:POST

请求入参

只需要全局入参,由人力家分配appKey和appSecret,用来进行权限校验:

参数 描述 备注 示例
appKey 客户标识 人力家分配
appSecret 客户私钥 人力家分配(注意保密)

请求出参

参数 描述 备注 示例
code 返回码 200
success 是否成功 ​true/false
msg 错误描述
detail 描述详情
data 部门信息 数组 [{"name": "测试企业","value": "1","ext": "null"},{"name": "研发部","value": "93639012","ext": "-1"},{"name": "设计部","value": "93639055","ext": "-1"}]
ㄴ name 部门名 字符串 "研发部"
ㄴ value 部门id 字符串 "93639012"
ㄴ ext 父部门id 字符串 "-1"
    示例:
    
    {
      "code": "200",
      "data": [
          {
              "name": "测试企业",
              "value": "-1",
              "ext": "null"
          },
          {
              "name": "研发部",
              "value": "93639012",
              "ext": "-1"
          },
          {
              "name": "设计部",
              "value": "93639055",
              "ext": "-1"
          }
      ],
      "success": true
    }
      

调用频率限制

调用频率限定为5次/秒,如有特殊需求请联系平台。

调用示例

    package com.renlijia.api;

    import com.alibaba.fastjson.JSON;
    import com.renlijia.api.common.DefaultRenlijiaOpenClient;
    import com.renlijia.api.common.RenlijiaOpenClient;
    import com.renlijia.api.common.vo.DataVO;
    import com.renlijia.api.exception.ApiException;
    import com.renlijia.api.salary.data.DeptListRequest;
    import com.renlijia.api.salary.data.DeptListResponse;
    
    import java.util.List;
    import java.util.Objects;
    
    /**
      * @author yang.zhang
      * @date 2019-02-18
      **/
    public class DeptListDemo {
        private static final int SUCCESS_CODE = 200;
    
        public static void main(String[] args) {
            String appKey = "";
            String appSecret = "";
    
            RenlijiaOpenClient client = new DefaultRenlijiaOpenClient(appKey, appSecret);
            DeptListRequest request = new DeptListRequest();
            request.setCurrentStage("RELEASE");
            try {
                DeptListResponse response = client.execute(request);
                if (Objects.equals(response.getCode(), SUCCESS_CODE) && response.getSuccess()) {
                    List data = response.getData();
                    System.out.println(JSON.toJSONString(data));
                }
            } catch (ApiException e) {
                e.printStackTrace();
            }
        }
    }         
      

SDK下载

点击下载jar包

统一错误码

code msg detail
500 服务器内部错误
30001 参数错误 例如,"billMonth不能为空"
30002 权限错误 例如,"appKey无访问权限"
30901 工资条错误 例如,"未查询到有效的导入记录"
30902 薪资表错误 例如,"薪资组不存在"
30903 导入数据人次超过限制 例如,"工资条单次最多只允许导入3000条"
30904 薪资组未初始化
30905 薪资组不存在
30906 未匹配到有效的人员信息