使用API向Xero过账发票行时的可变税类型问题
解决Xero API同一科目行不同GST计提的问题
- 确认税类型参数的正确性:确保发票行(
LineItem)里指定的是Xero官方认可的税类型代码,而非自定义名称。比如新西兰区域,计提GST用OUTPUT,不计提用NONE,必须严格匹配系统内的税类型标识,不能用显示名称替代。 - 检查科目税默认值的锁定状态:部分地区的Xero科目可能被设置了强制税类型(比如默认收入科目),这种情况下API行内的税类型覆盖会被系统忽略。登录Xero后台进入对应科目设置,确认“税类型”是否设为可修改状态,而非固定值。
- 直接指定
TaxAmount字段绕过默认限制:如果税类型覆盖无效,尝试在LineItem中直接设置TaxAmount:- 需要计提GST的行:计算好对应税额填入,搭配正确税类型
- 无需计提的行:将
TaxAmount设为0,税类型设为NONE
这种方式直接强制指定税额,Xero通常会优先采纳该字段的值,不受科目默认税设置影响。
- 验证API请求的JSON结构:确保请求中
LineItems数组的每个对象都独立包含AccountCode、TaxType和TaxAmount,示例结构如下:{ "Type": "ACCREC", "Contact": { "ContactID": "xxxx-xxxx-xxxx" }, "LineItems": [ { "Description": "应税商品", "Quantity": 1, "UnitAmount": 100.00, "AccountCode": "200", "TaxType": "OUTPUT", "TaxAmount": 15.00 }, { "Description": "免税商品", "Quantity": 1, "UnitAmount": 50.00, "AccountCode": "200", "TaxType": "NONE", "TaxAmount": 0.00 } ] } - 排查地区规则限制:不同地区的GST规则存在差异,部分特定科目可能不允许修改税类型。这种情况下可尝试使用Xero的“免税交易”特殊逻辑,或联系Xero支持确认是否存在地区性API限制。
内容的提问来源于stack exchange,提问作者Kevin Seerup
相关产品推荐
相关产品推荐

