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

如何获取过去6个完整自然月的Xero损益报表数据?

解决Xero API获取过去6个完整自然月损益报表的问题

问题回顾

要获取过去6个完整自然月的损益报表(Profit and Loss),直接用以下请求会附带当前月累计(MTD)数据:

GET https://api.xero.com/api.xro/2.0/Reports/ProfitAndLoss?periods=6&timeframe=MONTH

而添加fromDate和toDate参数(以当前12月,目标最后完整月为11月为例),会导致所有月份被强制限制为30天左右,无法获取真实自然月数据:

GET https://api.xero.com/api.xro/2.0/Reports/ProfitAndLoss?periods=5&timeframe=MONTH&toDate=2024-11-30&fromDate=2024-11-01

错误原因

  • 单独使用periods=6&timeframe=MONTH:API默认从当前日期向前推算周期,当前未结束的月份会被纳入,产生MTD数据。
  • 同时指定fromDate和toDate(且范围为单个月):API会强制将每个period的时长对齐为fromDate到toDate的间隔,导致所有月份被截断为相同天数,而非自然月。

正确解决方案

使用dateRangeType=Custom指定完整的6个自然月时间范围,同时保留timeframe=MONTH和periods=6参数,让API自动拆分出完整自然月:

示例请求(当前为2024年12月,目标6个完整月为2024-06至2024-11)

GET https://api.xero.com/api.xro/2.0/Reports/ProfitAndLoss?dateRangeType=Custom&fromDate=2024-06-01&toDate=2024-11-30&timeframe=MONTH&periods=6

关键说明

  1. 日期范围计算:fromDate设为第6个完整月的第一天,toDate设为最近一个完整月的最后一天(比如当前是1月,最近完整月是去年12月,fromDate就是去年7月1日,toDate是去年12月31日)。
  2. 参数组合:必须明确设置dateRangeType=Custom,同时搭配timeframe=MONTH和periods=6,API会自动将指定时间范围拆分为6个连续的完整自然月,不会截断月份天数。
  3. 返回验证:返回的Cells数组会显示每个自然月的最后一天(如30 Jun 24、31 Jul 24等),对应真实的完整自然月数据。

内容的提问来源于stack exchange,提问作者Mike Thrussell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:35:04