You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Xero API按日期筛选员工数据时遭遇500错误求助

解决Xero Payroll API员工筛选返回500错误的方案

问题分析与修复方案

1. DateTime参数格式及包裹问题

Xero API的DateTime()函数要求传入**ISO 8601格式(YYYY-MM-DD)**的日期字符串,且必须用双引号包裹。你当前使用的逗号分隔格式(2025,02,01)未加引号,会导致API解析日期失败,触发500内部错误。

2. 查询逻辑符错误

Xero的where查询语法中,逻辑与需使用AND而非&&,官方文档明确推荐此写法,使用&&可能导致条件解析异常。

修复后的代码示例

from_date = '2025-02-01'  # 改用ISO 8601日期格式
get_url = f'https://api.xero.com/payroll.xro/1.0/Employees'
headers = {
    'Authorization': 'Bearer ' + self.access_token,
    'Xero-tenant-id': self.tenant_id,
    'Accept': 'application/json'
}
params = {
    "where": f'Status=="TERMINATED" AND TerminationDate>=DateTime("{from_date}")'  # 替换逻辑符+添加日期引号
}
response = requests.get(get_url, headers=headers, params=params)

修改后生成的请求URL示例

https://api.xero.com/payroll.xro/1.0/Employees?where=Status%3D%3D%22TERMINATED%22+AND+TerminationDate%3E%3DDateTime%28%222025-02-01%22%29

额外排查步骤

  • 确认access_token和tenant_id未过期、权限正确,无效凭证也可能触发非预期500错误
  • 先简化查询条件(比如仅筛选Status=="TERMINATED"),验证基础请求正常后再添加日期筛选,逐步定位问题
  • 确认Xero Payroll服务状态正常(可通过官方开发者平台渠道查询)

内容的提问来源于stack exchange,提问作者Mark Schulz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:20:00