
xero api在设计上并未提供一个单一的端点来直接获取所有薪资单的列表。这种设计模式通常是为了优化性能和管理api调用负载,特别是在处理大量数据时。因此,要获取组织内的所有薪资单,开发者需要采用一种分阶段的策略,即先获取薪资运行(payrun)信息,再通过薪资运行获取其下的薪资单id,最后逐个查询薪资单详情。这种方法虽然需要多次api调用,但能确保数据的一致性和准确性。
以下是实现Xero组织内所有薪资单列表获取的详细步骤。
首先,您需要调用Xero Payroll API的Payruns端点来获取所有或特定时间范围内的薪资运行记录。薪资运行代表了一个支付周期内所有员工的薪资处理批次。
API 端点示例:
GET https://api.xero.com/payroll.xro/1.0/Payruns
可能的查询参数:
示例响应结构(部分):
{
"Payruns": [
{
"PayRunID": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"PayRunPeriodStartDate": "2023-01-01T00:00:00",
"PayRunPeriodEndDate": "2023-01-15T00:00:00",
"PayRunStatus": "POSTED",
"PayRunType": "Scheduled",
"PaymentDate": "2023-01-15T00:00:00",
"Wages": 10000.00,
"Deductions": 1000.00,
"NetPay": 9000.00
},
// ... 更多 Payrun 对象
]
}从这个响应中,您将提取每个PayRunID,这些ID将用于下一步。
在获取了相关的PayRunID之后,您需要对每个PayRunID进行单独调用,以获取该薪资运行下包含的所有薪资单(Payslip)的ID。
API 端点示例:
GET https://api.xero.com/payroll.xro/1.0/Payruns/{PayRunID}/Payslips将{PayRunID}替换为您在步骤一中获取到的具体薪资运行ID。
示例响应结构(部分):
{
"Payslips": [
{
"PayslipID": "5037f8ef-e9b5-40a6-9ec1-0f6f7ebb4787",
"EmployeeID": "employee-uuid-1",
"FirstName": "John",
"LastName": "Doe",
"NetPay": 1500.00,
"Status": "DRAFT"
},
{
"PayslipID": "b1c2d3e4-f5a6-7890-1234-567890fedcba",
"EmployeeID": "employee-uuid-2",
"FirstName": "Jane",
"LastName": "Smith",
"NetPay": 1600.00,
"Status": "POSTED"
}
// ... 更多 Payslip 摘要对象
]
}此响应将为您提供每个薪资运行中包含的PayslipID列表。
最后一步是利用在步骤二中获取到的每个PayslipID,逐一调用单个薪资单详情端点,以获取完整的薪资单数据。
API 端点示例:
GET https://api.xero.com/payroll.xro/1.0/Payslip/{PayslipID}将{PayslipID}替换为您在步骤二中获取到的具体薪资单ID。
示例响应结构(部分):
{
"Payslip": {
"PayslipID": "5037f8ef-e9b5-40a6-9ec1-0f6f7ebb4787",
"EmployeeID": "employee-uuid-1",
"FirstName": "John",
"LastName": "Doe",
"PayslipPeriodStartDate": "2023-01-01T00:00:00",
"PayslipPeriodEndDate": "2023-01-15T00:00:00",
"NetPay": 1500.00,
"Tax": 300.00,
"EarningsLines": [
{
"EarningsLineID": "earnings-uuid-1",
"Description": "Regular Hours",
"Rate": 25.00,
"NumberOfUnits": 80.00,
"Amount": 2000.00
}
],
"DeductionLines": [
{
"DeductionLineID": "deduction-uuid-1",
"Description": "401K Contribution",
"Amount": 200.00
}
],
"SuperannuationLines": [
{
"SuperannuationLineID": "super-uuid-1",
"Description": "Employer Contribution",
"Amount": 100.00
}
]
}
}通过重复此步骤,您可以收集到所有目标薪资单的完整详细信息。
在实施上述策略时,请考虑以下几点以确保系统的健壮性和效率:
尽管Xero API不提供直接获取所有薪资单的单一接口,但通过分步查询薪资运行、获取薪资单ID,再逐一获取薪资单详情的策略,开发者仍然可以有效地集成并获取所需的薪资单数据。理解并遵循上述步骤和注意事项,将帮助您构建一个稳定、高效的Xero薪资单集成方案。
以上就是Xero薪资单列表获取策略:通过Payrun API分步查询的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号