使用Xero API创建Quotes时能否不指定UnitAmount,调用预设产品价格?
如何通过Xero API创建报价时自动调用预设产品价格(无需手动传入或预先查询)
我们在使用Xero API生成Quotes时,已经在后台「产品和服务」中为商品设置了对应价格,希望仅传入ItemCode(及可选的收支账户),让Xero自动填充预设价格,避免重复传参或预先查询商品价格,但当前请求因「Unit Amount cannot be empty」报错。
可行解决方法
Xero API本身支持通过ItemCode自动拉取预设的商品价格,只需调整请求的LineItem结构即可:
- 移除手动传入的
Description字段:如果自定义了Description,Xero会判定你要手动指定商品信息,不会自动填充价格;完全依赖ItemCode时,Xero会自动同步该商品的预设描述和价格。 - 不要包含
UnitAmount字段:既不要传空值也不要传null,直接省略该字段,让Xero自动从对应Item中读取预设价格。
调整后的请求示例:
{ "Quotes": [ { "Contact": { "ContactID": "a852a44c-3d8f-4c4b-a628-3a2c2121b9b1" }, "LineItems": [ { "ItemCode": "BOOK", "Quantity": 1 } ], "Date": "2022-12-20", "Reference": "Event Name" } ] }
额外注意点
- 确认Xero后台「产品和服务」中,对应
ItemCode的商品已设置销售价格(Quote属于销售类单据,会读取商品的销售价格配置)。 - 如果需要指定特定收支账户,可在LineItem中添加
AccountCode字段,Xero会优先使用该账户;若不添加,则自动使用Item预设的销售账户。
原请求报错原因
原请求中手动传入了Description,Xero会认为你要自定义该商品的展示信息,而非完全复用预设的Item数据,因此强制要求你手动提供UnitAmount。移除Description后,Xero会自动关联Item的所有预设信息,包括价格。
内容的提问来源于stack exchange,提问作者Jean P
相关产品推荐
相关产品推荐

