如何在Xero Payroll AU API中为 salaried employees 创建薪资项目?
为Xero领薪员工创建Payruns的正确API端点方案
问题背景
- 非开发者身份,已通过MS Power Automate成功为Xero小时工创建payruns和timesheets,使用的是
/payroll.xro/1.0/Timesheets/端点 - 现在为领薪(salaried)员工创建payruns时,因这类员工只需提供每周总工时而非每日工时,复用上述端点时触发错误:
"ValidationErrors": [ { "Message": "Incorrect number of timesheet entries supplied for the pay period." } ]
- 此前的请求体示例:
[ { "EmployeeID": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx", "StartDate": "/Date(1682208000000+0000)/", "EndDate": "/Date(1682726400000+0000)/", "Status": "APPROVED", "TimesheetLines": [ { "EarningsRateID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx", "NumberOfUnits": [ 7.6 ] } ] } ]
解决方案
领薪员工无需使用Timesheets端点,直接调用**/payroll.xro/1.0/Payruns**端点创建payrun即可。
原因在于:领薪员工的薪资是固定周期(周/月)的固定金额,Xero系统会自动关联其预设的薪资模板信息,不需要额外提交工时数据。创建payrun时只需指定核心参数,系统会自动计算薪资。
操作要点
- 使用
POST请求调用/payroll.xro/1.0/Payruns接口 - 请求体需包含:
PayrollCalendarID(对应员工的薪资周期日历ID)、薪资周期的StartDate和EndDate、以及目标EmployeeIDs列表 - 无需填写任何工时相关字段,系统会自动生成薪资条目
简化请求体示例
{ "PayrollCalendarID": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx", "StartDate": "/Date(1682208000000+0000)/", "EndDate": "/Date(1682726400000+0000)/", "EmployeeIDs": ["xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx"] }
内容的提问来源于stack exchange,提问作者Karl In OZ
相关产品推荐
相关产品推荐

