QuickBooks Online中ExpenseAccountRef.value如何确定?是否需要查询Account对象?
QuickBooks Online API NonInventory Item创建规则解答
1. 创建NonInventory Item时是否必须传入ExpenseAccountRef.value完成初始化?
- 是,该字段为必填初始化参数,缺失将直接触发API参数校验失败。
官方规则明确要求:ExpenseAccountRef指向为该商品向供应商付款的费用账户,必须是账户类型为*Cost of Goods Sold(销货成本)*的账户。
官方给出的必填字段示例也验证了这一点:
{ "Name": "Garden Supplies", "Type": "NonInventory", "ExpenseAccountRef": { "value": "80" } }
2. 初始化新对象前是否需要先QUERY Account对象确认存在的合法取值?
- 是,必须提前查询Account对象获取合法取值,原因有两点:
- ExpenseAccountRef.value的取值为对应QuickBooks公司文件内Account对象的ID,该ID与特定公司的账户配置一一对应,不存在全局通用的固定值,只能通过查询对应公司的Account列表获取
- 只有账户类型为Cost of Goods Sold的Account ID才是合法取值,传入其他类型账户的ID会触发账户类型不匹配的报错
- 正确操作逻辑为:先调用Account查询接口筛选出类型为Cost of Goods Sold的账户,取对应Account对象的
Id字段值作为ExpenseAccountRef.value的取值即可
内容的提问来源于stack exchange,提问作者Stephen Stilwell
相关产品推荐
相关产品推荐

