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

为何Xero API不接受finance.statements.read权限?如何调用财报接口?

解决Xero API调用损益表时的权限错误问题

问题根源分析

你遇到的两个错误核心原因是:

  1. 初始401错误是因为缺少财务报表读取权限
  2. 添加finance.statements.scope后报错,是因为这个scope不存在——财务报表API属于Accounting API范畴,正确的权限范围是accounting.reports.read

分步解决方案

  • 修正权限范围配置
    将项目中错误的finance.statements.scope替换为accounting.reports.read。例如在项目的OAuth初始化代码或配置文件中:

    // 示例:更新scope列表
    var requiredScopes = new List<string>
    {
        "openid",
        "profile",
        "email",
        "accounting.reports.read", // 正确的报表读取权限
        "accounting.transactions.read" // 保留其他必要权限
    };
    
  • 检查Xero应用的API权限
    登录Xero开发者平台,进入你的应用详情页:

    • 找到「API权限」板块,确保已勾选Accounting API
    • 确认权限列表中包含accounting.reports.read(如果没有,手动勾选并保存)
  • 重新授权组织
    修改权限范围后,旧的Access Token不会包含新权限,需要:

    • 清除本地存储的token缓存(比如项目中的token文件或数据库记录)
    • 重新走OAuth2授权流程,让组织重新授权你的应用
  • 验证API调用
    确保使用正确的API方法调用损益表,示例代码:

    // 注入AccountingApi实例后调用
    var profitAndLossResponse = await _accountingApi.GetFinancialStatementProfitAndLossAsync(
        accessToken: yourAccessToken,
        xeroTenantId: yourTenantId
    );
    

额外注意事项

  • Xero Playground应用需要确保已启用Accounting API的报表权限,否则测试时仍会报错
  • 私有应用无需额外审批,只要在开发者平台勾选对应权限即可;合作伙伴应用可能需要额外权限申请

内容的提问来源于stack exchange,提问作者Brendan Hill

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 03:17:03