尽管文档提到 AccountId 作为必填字段,但它不是(文档可能略有偏差)。你可以忽略它。如果您选择添加它,则需要包含与项目相关的所有字段。相反,ItemId 是必填字段。因此,请将其包含在您的请求中。请参考:
https ://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/v2/0500_quickbooks_windows/0600_object_reference/vendorcredit
我创建了一个供应商创建请求,如下所示,并且能够获得正确的响应。要求-
<Add xmlns="http://www.intuit.com/sb/cdm/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RequestId="Szey2z7hrGf888888888jfc5hrGSYg99" xsi:schemaLocation="http://www.intuit.com/sb/cdm/v2 ./RestDataFilter.xsd">
<Object xsi:type="VendorCredit">
<Header>
<DocNumber>8D1FC366607</DocNumber>
<TxnDate>2013-09-11</TxnDate>
<Note>Expense Report 09/11/2013 #2</Note>
<VendorName>TestVendor4</VendorName>
<TotalAmt>-25.00</TotalAmt>
<APAccountName>Accounts Payable</APAccountName>
</Header>
<Line>
<Desc>Airfare:</Desc>
<Amount>25.00</Amount>
<ClassId idDomain="QB">1</ClassId>
<ReimbursableInfo>
<CustomerId idDomain="QB">31</CustomerId>
</ReimbursableInfo>
<BillableStatus>NotBillable</BillableStatus>
<ItemId idDomain="QB">12</ItemId>
</Line>
</Object>
</Add>
回复-
<RestResponse xmlns="http://www.intuit.com/sb/cdm/v2">
<Success RequestId="Szey2z7hrGf888888888jfc5hrGSYg99">
<ObjectRef>
<Id idDomain="NG">1925041</Id>
<SyncToken>1</SyncToken>
<LastUpdatedTime>2013-09-12T07:50:34Z</LastUpdatedTime>
</ObjectRef>
<RequestName>VendorCreditAdd</RequestName>
<ProcessedTime>2013-09-12T07:50:34Z</ProcessedTime>
</Success>
</RestResponse>
编辑提出的问题:
*请注意: * VendorCredit 是一项 AP 交易,代表第三方对未提供的退货或服务的信用。在 QuickBooks 桌面版本中,供应商信用也称为“账单信用”。也就是说,这是供应商欠您的信用,因为您多付了账单、退回商品或出于其他原因。在账单支付交易中引用 VendorCredit 之前,它不会被应用。注意:不应将 VendorCredit 与 Credit Memo 混淆,后者是您欠客户的
ItemId 是指获得信用的那些项目。您可以通过在 QBD 中调用 Item api 来获取 ItemId。参考在您的请求中。由于您没有在请求 xml 中提及 itemid,因此您收到了响应,但与 QB 桌面文件的同步失败。您的供应商信用对象必须已出错。
要检查实体是否处于错误状态,您可以通过执行查询并设置 ErroredObjectsOnly="true" 来检查。
http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0100_Calling_Data_Services/0015_Retrieving_Objects#Objects_in_Error_State
如果实体处于错误状态,您可以使用 SyncStatus API 查询具体原因:
http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0600_Object_Reference/SyncStatus
请在您的请求中添加 itemid 参考,它应该可以工作。