使用Xero API创建ACCRECCREDIT贷项通知单时遇类型无效报错咨询
问题排查与解决方案
1. 核心错误:"Invoice not of valid type for creation"
该错误的直接原因是API端点调用错误:
- ACCREC类型发票需通过
InvoicesAPI端点创建,但ACCRECCREDIT类型的贷项通知单必须提交到CreditNotesAPI端点,而非Invoices端点。若将贷项通知单XML发送至Invoices端点,Xero会判定你试图创建发票,但ACCRECCREDIT不属于发票的有效类型,因此触发该报错。
2. 账户代码警告:"Account code 131.01 has been removed..."
你的XML中LineItems结构不符合Xero API规范:
- 正确结构需在
<LineItems>节点下嵌套<LineItem>子节点,你直接将行项目字段(Description/Quantity等)放在<LineItems>下,导致Xero无法正确解析账户代码,进而抛出警告。
修正后的XML示例
<CreditNote> <Type>ACCRECCREDIT</Type> <CreditNoteNumber>CR001</CreditNoteNumber> <Date>2022-12-22</Date> <CurrencyCode>NZD</CurrencyCode> <CurrencyRate>1.0000</CurrencyRate> <LineAmountTypes>Exclusive</LineAmountTypes> <SubTotal>1283.66</SubTotal> <TotalTax>192.55</TotalTax> <Total>1476.21</Total> <Contact> <Name>Hello World Company</Name> <Addresses> <Address> <AddressType>POBOX</AddressType> </Address> </Addresses> </Contact> <LineItems> <LineItem> <Description>Sales</Description> <Quantity>1</Quantity> <UnitAmount>1283.66</UnitAmount> <AccountCode>131.01</AccountCode> </LineItem> </LineItems> </CreditNote>
额外验证点
- 确认目标账户(131.01)的账户类型支持贷项通知单:由于你已用该账户提交过ACCREC发票,这部分通常无需额外验证,保持一致即可。
- 确保API请求使用
POST方法,且端点路径正确(如https://api.xero.com/api.xro/2.0/CreditNotes)。
内容的提问来源于stack exchange,提问作者Bruce Jonson
相关产品推荐
相关产品推荐

