使用Quickbooks API创建检查

使用Quickbooks API创建检查,quickbooks,quickbooks-online,Quickbooks,Quickbooks Online,请帮助我使用QuickBooks online(Qbo)API编写支票。我尝试过这样做,但我总是收到一个错误,上面写着“验证详细信息行时出错:至少需要一个详细信息行”。下面是示例代码。。如何为支票添加行 Dim existingChk = New Qbo.Check() Dim existingChks = commonService.FindAll(existingChk, 1, 10).ToList()

请帮助我使用QuickBooks online(Qbo)API编写支票。我尝试过这样做,但我总是收到一个错误,上面写着“验证详细信息行时出错:至少需要一个详细信息行”。下面是示例代码。。如何为支票添加行

                    Dim existingChk = New Qbo.Check()
                    Dim existingChks = commonService.FindAll(existingChk, 1, 10).ToList()

                    Dim payment = New Qbo.Payment()
                    Dim payments = commonService.FindAll(payment, 1, 10).ToList()

                    Dim qboCheck = New Intuit.Ipp.Data.Qbo.CheckHeader()
                    Dim bank = New Intuit.Ipp.Data.Qbo.Account()
                    bank.Type = Intuit.Ipp.Data.Qbo.AccountTypeEnum.Asset
                    Dim Banks = commonService.FindAll(bank, 1, 100).ToList()
                    Dim accountId As New Qbo.IdType
                    For Each bnk As Intuit.Ipp.Data.Qbo.Account In Banks
                        If bnk.Name = "Test Bank" Then
                            accountId = bnk.Id
                        End If
                    Next
                    qboCheck.BankAccountId = accountId
                    qboCheck.BankAccountName = "Test Bank"
                    qboCheck.TotalAmt = 20.0
                    qboCheck.Currency = Intuit.Ipp.Data.Qbo.currencyCode.USD
                    qboCheck.TxnId = payments(0).Id
                    Dim qboCustomer = New Intuit.Ipp.Data.Qbo.Customer()
                    Dim qboCustomers = commonService.FindAll(qboCustomer, 1, 10).ToList()
                    For Each cus As Intuit.Ipp.Data.Qbo.Customer In qboCustomers
                        If cus.Name.Contains("Customer1") Then
                            qboCheck.EntityId = cus.Id
                        End If
                    Next
                    qboCheck.EntityType = Qbo.EntityTypeEnum.Customer

                    Dim check = New Intuit.Ipp.Data.Qbo.Check()
                    check.Header = qboCheck
                    check.Id = New Qbo.IdType
                    check.Id.idDomain = existingChks(0).Id.idDomain
                    check.Id.Value = CInt(existingChks(0).Id.Value) + 1

                    Dim resultCheck As Qbo.Check = TryCast(commonService.Add(check), Qbo.Check)

看起来这是.NETdevkit中的一个bug(我不是100%确定)。 JavaDocs说accountId和itemId都是从LinePurchase(PFB快照)继承的。但在.NETdevkit中,我在LinePurchase和LineBase中都没有看到这些字段

JavaDoc参考-

API端点工作正常


2013-08-09
44
2.
硬盘

如果可能的话,我将在周一使用.net devkit尝试此操作,并确认它是否是.net devkit中的错误

感谢为BillpaymentHeader的c添加伪代码

同样,您可以将其用于检查线:

   billheader.ItemsElementName = new ItemsChoiceType[1];
   billheader.ItemsElementName[0] = ItemsChoiceType.BankAccountId;
   billheader.Items = new object[1];
   billheader.Items[0] = new Intuit.Ipp.Data.Qbo.IdType() { idDomain = Intuit.Ipp.Data.Qbo.idDomainEnum.QBO, Value = "1" };

请参阅-

如果您已经有账单,则只需使用billpayment API创建支票即可。 网址:

请求JSON数据:

{
  "VendorRef": {
    "value": "1",
    "name": "vendor_name"
  },
  "PayType": "Check",
  "CheckPayment": {
    "BankAccountRef": {
      "value": "1",
      "name": "Test Account"
    }
  },
  "TotalAmt": 100.00,
  "PrivateNote": "Acct. 1JK90",
  "Line": [
    {
      "Amount": 100.00,
      "LinkedTxn": [
        {
          "TxnId": "1",
          "TxnType": "Bill"
        }
      ]
    }
  ]
}

谢谢你的答复。。这个.Net开发工具包用于我们的应用程序可靠吗?有没有一种方法可以不使用这个SDK集成到API?Devkit很好。您需要使用items数组->Itemchoicetype1枚举。ItemsElementName返回ItemsChoiceType1[]参考-端点详细信息在IPP文档中可用。因此,您完全可以在不使用devkit的情况下调用此API。您需要使用一些Restclient,还需要解析响应XML。(Devkit要容易得多)
{
  "VendorRef": {
    "value": "1",
    "name": "vendor_name"
  },
  "PayType": "Check",
  "CheckPayment": {
    "BankAccountRef": {
      "value": "1",
      "name": "Test Account"
    }
  },
  "TotalAmt": 100.00,
  "PrivateNote": "Acct. 1JK90",
  "Line": [
    {
      "Amount": 100.00,
      "LinkedTxn": [
        {
          "TxnId": "1",
          "TxnType": "Bill"
        }
      ]
    }
  ]
}