无法获取Xero员工列表,请求返回401 Unauthorized错误求助
解决Xero API获取新西兰薪资员工列表的200无数据及401授权失败问题
200响应但无员工数据的排查与修复
- 切换至薪资专属API端点:你当前调用的是核心员工API(
https://api.xero.com/api.xro/2.0/employees),新西兰薪资员工需调用薪资模块专属接口:GET https://api.xero.com/payroll.xro/1.0/Employees。核心员工库与薪资员工库是独立的,UI中显示的薪资员工不会出现在核心API返回结果里。 - 确认演示公司的薪资模块状态:检查你的演示公司是否已启用新西兰薪资功能,部分默认演示租户仅激活了核心会计模块,未开通薪资服务。
401 AuthorizationUnsuccessful错误的排查点
- 校验Token有效期:在jwt.io解析Token时重点查看
exp字段,确认Token未过期。若已过期,重新生成Bearer Token再测试。 - 重新确认授权权限:即使Token中包含
payroll.employees.read,也要重新走OAuth授权流程,在授权页面明确勾选所有薪资相关权限,确保实际授予的权限与配置一致。 - 核对请求头参数:
- 确保
Authorization头格式为Bearer {你的Token},无空格或拼写错误; - 确认
xero-tenant-id与授权时获取的租户ID完全匹配,注意大小写和特殊字符; - 若使用
offline_access权限,检查Refresh Token是否有效,若AccessToken过期,用Refresh Token重新获取。
- 确保
- 排查调用频率限制:Xero API有调用频次限制,短时间内多次请求可能触发临时限流导致401。等待5-10分钟后重试,或查看开发者后台的API日志确认是否触发限流规则。
额外验证步骤
- 调用
GET https://api.xero.com/connections接口,确认返回的租户信息中TenantType包含PAYROLL且Status为ACTIVE,以此验证薪资模块已启用且租户状态正常。 - 在Postman中开启请求日志,检查实际发送的请求头是否与配置一致,排除工具自动添加的冗余头信息干扰。
内容的提问来源于stack exchange,提问作者Pavanraotk
相关产品推荐
相关产品推荐

