Quickbooks QBXML中的ReceivePaymentAddRq-找不到请求中指定的对象TxnID

Quickbooks QBXML中的ReceivePaymentAddRq-找不到请求中指定的对象TxnID,quickbooks,qbfc,qbxml,Quickbooks,Qbfc,Qbxml,我在QBXML中工作,试图在ReceivePaymentAddRq中将付款应用于特定发票。我得到了一个很常见的结果,“找不到请求中指定的对象TxnID”。在请求中添加了ARAccountRef字段后,大多数关于这个主题的其他论坛线程都会得到解决,这对我来说似乎没有什么区别 我查询了TxnID 68B4-1290718970的发票,并验证了以下内容: 我的请求的ARAccountRef ListID与QueryRet中的内容匹配 我的请求的CustomerRef ListID与QuerySet中

我在QBXML中工作,试图在ReceivePaymentAddRq中将付款应用于特定发票。我得到了一个很常见的结果,“找不到请求中指定的对象TxnID”。在请求中添加了ARAccountRef字段后,大多数关于这个主题的其他论坛线程都会得到解决,这对我来说似乎没有什么区别

我查询了TxnID 68B4-1290718970的发票,并验证了以下内容:

  • 我的请求的ARAccountRef ListID与QueryRet中的内容匹配
  • 我的请求的CustomerRef ListID与QuerySet中的内容匹配
下面是我的XML请求。我错过了什么

谢谢

<QBXML>
    <QBXMLMsgsRq onError = "continueOnError">
    <ReceivePaymentAddRq requestID = "0">
        <ReceivePaymentAdd>
            <CustomerRef>
                <ListID>80000111-1286514304</ListID>
            </CustomerRef>
            <ARAccountRef>
                <ListID>80000091-1273734429</ListID>
            </ARAccountRef>
            <TxnDate>2010-11-10</TxnDate>
            <RefNumber>2999      </RefNumber>
            <TotalAmount>15.95</TotalAmount>
            <PaymentMethodRef>
                <ListID>80000002-1273560098</ListID>
            </PaymentMethodRef>
            <Memo>_32T0DE94J</Memo>
            <DepositToAccountRef>
                <ListID>80000090-1273734138</ListID>
            </DepositToAccountRef>
            <AppliedToTxnAdd>
                <TxnID>68B4-1290718970</TxnID>
                <PaymentAmount>15.95</PaymentAmount>
            </AppliedToTxnAdd>
        </ReceivePaymentAdd>
    </ReceivePaymentAddRq>
    </QBXMLMsgsRq>
</QBXML>

80000111-1286514304
80000091-1273734429
2010-11-10
2999
15.95
80000002-1273560098
_32T0DE94J
80000090-1273734138
68B4-1290718970
15.95
供其他人参考,这里已经回答了这个问题:

更新答案,现在Intuit已经关闭了自己的论坛:

您看到的错误有两个常见的原因:

  • 您所指的对象(68B4-1290718970)可能不存在。您是否100%肯定此交易存在

  • 您所指的对象可能不是您可以应用付款的对象。将付款应用于发票。您所指的对象是发票吗

  • 您所指的对象可能与付款的货币不同。您是否将多货币与QuickBooks一起使用,并且货币是否匹配

  • 您所指的对象可能没有与付款匹配的应收帐户。如果QuickBooks中有多个应收帐户,并且在创建发票或付款时没有明确指定要使用哪个应收帐户,则这种情况尤其常见。发票和付款的应收账户是否匹配

  • 您所指的对象可能没有未结余额(例如,它可能已经支付)。您所指的对象的余额是否至少为15.95?(您尝试申请的金额)


好消息。我的问题是#4,没有明确指定应收账款帐户。在我的例子中,代码中的一个错误是试图将信用证与错误公司名称下的发票相链接。我从中得到的(基于上面写的内容)是QuickBooks在内部以事务ID作为条件之一执行类似WHERE的查询。比如:txnID=?公司=?和帐户=?…-如果其中任何一个条件失败,QuickBooks会将其归咎于根本不存在的对象,而它很可能存在,但另一个查询条件失败。这就是为什么InvoiceQuery证明该对象存在,而ReceivePaymentAdd坚称它不存在。