【问题标题】:QuickBooks IPP Rest API 3.0 CustomerRef in Invoice发票中的 QuickBooks IPP Rest API 3.0 CustomerRef
【发布时间】:2014-03-21 20:16:26
【问题描述】:

当我使用 IPP Rest API 3.0 创建发票时,如下示例:

<Invoice xmlns="http://schema.intuit.com/finance/v3">
       <Line>
            <Description>Installation labor</Description>
            <Amount>420.00</Amount>
            <DetailType>SalesItemLineDetail</DetailType>
            <SalesItemLineDetail>
                <ItemRef>33</ItemRef>
            </SalesItemLineDetail>
        </Line>
      <CustomerRef>20</CustomerRef>
</Invoice>

在本例中,20 是该客户的 ID。

现在,对于第三方程序,它可能不知道该客户的 Id,可能知道客户的名称,所以,我知道我总是可以先查询客户以取回 Id,然后使用该 Id在此发票创建格式中。

但我的问题是,我可以只使用名称而不指定此客户的 ID 来创建此发票吗?

以下是否有效?

<Invoice xmlns="http://schema.intuit.com/finance/v3">
       <Line>
            <Description>Installation labor</Description>
            <Amount>420.00</Amount>
            <DetailType>SalesItemLineDetail</DetailType>
            <SalesItemLineDetail>
                <ItemRef>33</ItemRef>
            </SalesItemLineDetail>
        </Line>
      <CustomerRef name="ACB Company"></CustomerRef>
</Invoice>

此外,如果它确实有效,那么这个逻辑是否适用于 API 中的所有 ReferenceType?

【问题讨论】:

    标签: api rest quickbooks intuit-partner-platform


    【解决方案1】:

    没有。在 API 负载中,您不能按名称引用对象(旧 V2 API 部分支持此行为,现已弃用)。

    您可以使用 Apiexplorer 验证此行为。

    在这种情况下,您应该按名称查询客户,然后提取 ID 以在发票创建负载中引用它。

    谢谢

    【讨论】:

    • 有什么理由不再支持这个吗?如果没有这个,创建一张发票最终会导致更多的 http 请求只是为了解决引用,这对双方的性能都不利。
    • 这是一种设计选择。我相信,在服务器端,与按 id 查找对象相比,按名称查找引用对象并不是更好的选择。另一件事是,在名称实体(客户、供应商和员工)中,存在唯一的名称约束。但对于其他交易实体则不适用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多