1

请帮助我使用 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)
4

3 回答 3

0

看起来这是 .net devkit 中的一个错误(我不是 100% 确定)。JavaDocs 说 accountId 和 itemId 都继承自 LinePurchase(PFB 快照)。但是在 .net devkit 中,我在 LinePurchase 和 LineBase 中都看不到这些字段。

JavaDoc 参考 - http://developer-static.intuit.com/SDKDocs/QBV2Doc/ipp-java-devkit-2.0.10-SNAPSHOT-javadoc/

在此处输入图像描述

API 端点工作正常。

https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/v2/0400_quickbooks_online/check#Sample_Create_Request_XML

<?xml version="1.0" encoding="utf-8" ?>
<Check xmlns:ns2="http://www.intuit.com/sb/cdm/qbo" xmlns="http://www.intuit.com/sb/cdm/v2">
    <Header>
        <TxnDate>2013-08-09</TxnDate>
        <BankAccountId>44</BankAccountId>
        <EntityId>2</EntityId>
    </Header>
    <Line>
        <Desc>Hard Disks</Desc>
        <Amount>500</Amount>
        <BillableStatus>NotBillable</BillableStatus>
        <ItemId>4</ItemId>
        <Qty>10</Qty>
        <UnitPrice>50</UnitPrice>
    </Line>
</Check>

PN -

<BankAccountId>:此帐户应为“检查”类型。

<ItemId>:项目应该有一个“ExpenseAccountRef”标签。

您可以使用 ApiExplorer 工具测试此用例。

链接 - https://developer.intuit.com/apiexplorer?apiname=V2QBO

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

谢谢

于 2013-06-29T07:26:01.747 回答
0

为 BillpaymentHeader 添加 c# 的伪代码。

同样,您可以将其用于 CheckLine:

   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" };

参考-如何在 QuickBooks 中创建支票时添加 AccountID 或 ItemID

于 2013-07-03T17:50:50.553 回答
0

如果您已经有账单,那么您可以简单地使用账单支付 API 来创建支票。网址:https ://quickbooks.api.intuit.com/v3/company/111111111111/billpayment?minorversion=4

请求 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"
        }
      ]
    }
  ]
}
于 2017-11-28T11:26:03.803 回答