账单域API使用手册
本文重点介绍账单域API的功能及其选择方案。
导读
随着云上业务体量和业务场景复杂度的增加,许多企业在“多组织跨部门管理效率”,“精细化管理质量”以及“云上成本”等方面面临着越来越大的挑战。企业开始通过集成阿里云“BSS OpenAPI”、自建用云分析视图以及云管平台等方式支撑精细化用云分析。由于费用账单数据维度多,不同API汇总数据粒度差异大,账单API的选择和使用决定了能力集成的效率和准确性。
本文从“常用API概览”、“API选择方案”、“控制台功能对应API”、“数据字段对应API汇总”、“各数据源产商品字段对比”、“典型场景最佳实践”等方面介绍账单域API,帮助您更准确地选择API、更高效地使用API,进而获取各维度的账单数据。
常用API概览
查询实例账单 | 结算账单查询服务 | 账单总览查询服务 |
账号账单查询服务 | 分账账单服务 | 查询月费用分摊服务 |
详单订阅服务 | 取消详单订阅服务 | 查询企业财务关系列表 |

API选择方案
选择账单域API时,您可以结合需要查询的数据,对比每个API的入参、出参,做出最优的API接口决策。
需查询数据字段 | 可使用API | 入参 | 主要出参字段 |
计费项 | 查询实例账单服务:DescribeInstanceBill | IsBillingItem:true 按月查询:
按日查询:
| InstanceConfig:实例详细配置 InstanceID:实例ID InstanceSpec:实例规格 BillingItem:计费项 BillingItemCode:计费项代码 CostUnit:财务单元 ResourceGroup:默认资源组 Tag:资源标签 ListPrice:单价 Usage:用量 OwnerID:财务子账号ID |
实例 | IsBillingItem:false 按月查询:
按日查询:
| InstanceConfig:实例详细配置 InstanceID:实例ID IDInstanceSpec:实例规格 CostUnit:财务单元 ResourceGroup:默认资源组 Tag:资源标签 OwnerID:财务子账号ID | |
订单号/账单号 | 结算账单查询服务:QuerySettleBill | BillingCycle:YYYY-MM BillOwnerId:财务子账号ID RecordID:订单号/账单号 | AccountID:账号ID SubscriptionType:订阅类型 UsageStartTime、UsageEndTime:账单发生时间 RecordID:订单号/账单号 OwnerID:财务子账号ID PipCode:产品Code 说明 产品Code与“用户中心”账单中“产品Code”字段含义一致。 CommodityCod:产品明细Code |
财务云主、子账号 | 查询企业财务关系列表:QueryRelationList | UserId(主账号UID):XXX StatusList:关联状态 说明 示例:RELATED。 | SetupTime:关系建立时间 State:关系状态 RelationId:关系 IDAccountType:企业财务账号类型 RelationType:关系策略 说明 FinancialManagement表示“财务管理”关系 FinancialTrusteeship 表示“财务托管”关系 |
账号账单查询服务:QueryAccountBill | 按月查询:
按日查询:
| BillingCycle:账期 BillingDate:账单日期 CostUnit:财务单元 Code:PipCode | |
分账账单 | 按月查询:
按日查询:
| SplitBillingCycle:分账月 SplitItemID:分拆项ID 说明 了解更多“分拆项ID”。 InstanceID:实例ID Usage:用量 BillingItem:计费项 Tag:资源标签 ListPrice:单价 | |
明细账单 | 详单数据获取: | SubscribeBucket:abc 说明 您订阅时设置“oss”的“bucket”名称,示例值:abc 计费项明细:
实例明细:
| InstanceConfig:实例详细配置 InstanceID:实例ID InstanceSpec:实例规格 BillingItem:计费项 CostUnit:财务单元 ResourceGroup:默认资源组 Tag:资源标签 ListPrice:单价 Usage:用量 PipCode:产品Code CommodityCod:产品明细Code RecordID:订单号/账单号 OwnerID:财务子账号ID |
控制台功能对应API
1、控制台路径:用户中心 – 账单管理 – 账单详情 – 明细账单
调用DescribeInstanceBill获取明细账单“实例”、“计费项”维度数据。
调用方法可参见API选择方案中,“数据字段”为“实例”、“计费项”的接口说明。
调用DescribeInstanceBill获取的数据,仅对应控制台“统计周期”为“账期或按天”的数据,明细账单数据统一通过上述API选择方案中明细账单方式获取。

2、控制台路径:用户中心 – 账单管理 – 账单详情 – 明细账单
调用QueryAccountBill获取明细账单“账号”维度数据。
调用方法可参见API选择方案中,“数据字段”为“财务云主、子账号”的接口说明。
调用QueryAccountBill获取的数据,对应控制台“统计周期”为“账期或按天”的数据。

3、控制台路径:用户中心 – 分账管理 – 分账账单
调用DescribeSplitItemBill获取“分账账单”数据。
调用方法可参见API选择方案中,“数据字段”为“分账账单”的接口说明。
调用DescribeSplitItemBill获取的数据,对应控制台“统计周期”为“账期或按天”的数据,不支持获取“明细”维度数据。

4、控制台路径:用户中心 – 企业财务 – 财务关联
调用QueryRelationList获取“企业财务关系列表”数据。
调用方法可参见API选择方案中,“数据字段”为“财务云主、子账号”的接口说明。
调用QueryRelationList获取的数据,对应控制台“财务关联”数据。

5、控制台路径:用户中心 – 账单管理 – 账单详情 – 账单流水
调用QuerySettleBill获取“订单号/账单号”维度数据。
调用方法可参见API选择方案中,“数据字段”为“订单号/账单号”中的接口说明。
调用QuerySettleBill获取的数据,对应控制台“账单流水”数据。

6、控制台路径:用户中心 – 账单管理 – 账单详情 – 明细账单
调用SubscribeBillToOSS获取“计费项”或“实例”维度数据。
调用方法可参见API选择方案中,“数据字段”为“明细账单”的接口说明。
调用SubscribeBillToOSS获取的数据,对应控制台“明细账单”数据。

数据维度对应API汇总
查询数据维度 | 可使用API |
产品 | 结算账单查询服务QuerySettleBill 账单总览查询服务QueryBillOverview 查询实例账单服务DescribeInstanceBill 账号账单查询服务QueryAccountBill 分账账单服务DescribeSplitItemBill 查询月费用分摊服务QueryInstanceGaapCost |
财务单元 | 查询实例账单服务DescribeInstanceBill 账号账单查询服务QueryAccountBill 分账账单服务DescribeSplitItemBill |
按日 | 分账账单服务DescribeSplitItemBill 查询实例账单服务DescribeInstanceBill 账号账单查询服务QueryAccountBill |
按月 | 结算账单查询服务QuerySettleBill 分账账单服务DescribeSplitItemBill 查询实例账单服务DescribeInstanceBill 账号账单查询服务QueryAccountBill 账单总览查询服务QueryBillOverview 查询月费用分摊服务QueryInstanceGaapCost |
各数据源产商品字段对比
数据源 | 产品Code | 产品明细Code | 产品名称 | 商品名称 |
控制台 | - | - | 产品 | 产品明细 |
OSS(中文) | 产品Code | 产品明细Code | 产品 | 产品明细 |
OSS(英文) | Product Code | Product Type | ProductName | ProductDetail |
API | PipCode | CommodityCode | ProductName | ProductDetail |
常见FAQ
每月的日账单汇总数据与当月账单数据对比结果不一致,为什么?
日账单中不包含后付费未结算的数据,月账单中包含后付费未结算的数据。
通过子账号调用“QueryInstanceGaapCost”,RAM子账号已被授权,为什么无返回值?
“QueryInstanceGaapCost”目前只支持主账号的AK查询数据,后续会支持。
关于这些出参“PipCode、CommodityCode、ProductCode、ProductType”分别是什么意思?
“PipCode”是“产品Code”,与控制台“用户中心”账单中“产品Code”字段含义一致;
“CommodityCode”是“产品明细Code”,与控制台“用户中心”中“产品明细Code”一致;
“ProductCode、ProductType”均是在API中透出的后台冗余数据,和上述pipCode以及commodityCode不是一个概念,不能作为数据汇总和对账分析使用。
为什么从出参的“ProductCode、ProductType”字段中获取数据,传到入参“ProductCode、ProductType”这两个字段中无法获取数据?
目前API的出参的“ProductCode、ProductType”和API入参“ProductCode、ProductType”在底层是两套数据,且入参中“ProductCode、ProductType”目前的枚举数据没有可获取的完整list,因此不建议传入参数查询。 如需要基于“产品Code”或“产品明细Code”分析数据,可通过“PipCode(产品Code)”和“CommodityCode(产品明细Code)”汇总分析。
各个API中入参“BillOwnerId”是指什么子账号?
这里“BillOwnerId”可填入财务管理子账号,财务托管子账号账单是出在主账号上的,不需要传入子账号就可以直接获取。
“实例明细账单”和“计费项明细账单”有什么区别?
两份数据在出参字段上,都有“产品、产品明细、账期、实例ID、订账单号、账单类型”等字段,而“计费项明细账单”存在一个独有的“计费项(BillingItem)”字段。
更多数据字段的使用,请查看常用字段说明
典型场景最佳实践
1. 通过账单数据分析资源规格变化情况
调用“DescribeInstanceBill”接口,获取“实例ID(InstanceID)”、“实例配置(InstanceConfig)”字段,和历史数据做对比即可。
2.如何批量查询所有财务管理子账号数据?
以“QuerySettleBill”为例:
通过财务云子账号list获取所有财务云账单数据
调用“QueryRelationList”(查询企业财务关系列表),获取“关联状态(RELATED)”子账号list,筛选出“财务管理(FinancialManagement)”子账号list;
将“财务管理”子账号list,枚举传入“QuerySettleBill”的“BillOwnerId”字段后,将获取的数据组合起来即可。