使用 QBXML 如何取消应用来自远程系统的 ReceivePayment 的交易?
With QBXML how can I unapply a transaction from a ReceivePayment from the remote system?
我想从远程系统的发票中取消应用付款。
首先,我从 QuickBooks 桌面同步了一个 ReceivePayment
项目。它在 ReceivePaymentQueryRS
响应的 AppliedToTxnRet
中有 1 个发票交易。
然后在远程系统上从发票中删除交易。所以现在没有应用此付款的交易。在 QBXML 中,我如何在 ReceivePaymentModRq
中指定它,或者是否有其他方法指定它以将其发送回 QuickBooks,以便付款不再应用于 QuickBooks 中的发票?
我试过像这样发送一个空的 <AppliedToTxnMod/>
或 <AppliedToTxnMod></AppliedToTxnMod>
:
<ReceivePaymentModRq>
<ReceivePaymentMod>
<TxnID>612-1631305229</TxnID>
<EditSequence>1631418450</EditSequence>
<CustomerRef>
<ListID>80000089-1613077827</ListID>
</CustomerRef>
<ARAccountRef>
<ListID>8000001B-1578805288</ListID>
</ARAccountRef>
<TxnDate>2021-09-04</TxnDate>
<RefNumber>cash11</RefNumber>
<TotalAmount>11.00</TotalAmount>
<PaymentMethodRef>
<ListID>80000001-1578006261</ListID>
</PaymentMethodRef>
<Memo/>
<DepositToAccountRef>
<ListID>80000021-1620340635</ListID>
</DepositToAccountRef>
<AppliedToTxnMod/>
</ReceivePaymentMod>
</ReceivePaymentModRq>
但是验证器给我:
Line: 13
LinePos: 48
Src Text: <AppliedToTxnMod></AppliedToTxnMod>
Reason: Element cannot be empty according to the DTD/Schema.
我认为 QBSDK 在第 12 页上所说的 (https://static.developer.intuit.com/resources/QBSDK_ProGuide.pdf) 是错误的。 126 用于清除聚合,但我想这可能不适用于引用其他事务的聚合??:
"清除地址或送货地址等聚合类似于清除
修改请求中的引用。您可以提供所有元素的空版本
聚合,或者您可以简单地提供一个空聚合
要从交易(例如发票)中取消付款,请在 <ReceivePaymentMod>
中发送 <AppliedToTxnMod>
聚合,引用您要删除的金额为零的 <TxnID>
<PaymentAmount>
。例如:
<ReceivePaymentMod>
<TxnID>612-1631305229</TxnID>
...
<AppliedToTxnMod>
<TxnID>52F-1630633150</TxnID>
<PaymentAmount>0.00</PaymentAmount>
</AppliedToTxnMod>
</ReceivePaymentMod>
我想从远程系统的发票中取消应用付款。
首先,我从 QuickBooks 桌面同步了一个 ReceivePayment
项目。它在 ReceivePaymentQueryRS
响应的 AppliedToTxnRet
中有 1 个发票交易。
然后在远程系统上从发票中删除交易。所以现在没有应用此付款的交易。在 QBXML 中,我如何在 ReceivePaymentModRq
中指定它,或者是否有其他方法指定它以将其发送回 QuickBooks,以便付款不再应用于 QuickBooks 中的发票?
我试过像这样发送一个空的 <AppliedToTxnMod/>
或 <AppliedToTxnMod></AppliedToTxnMod>
:
<ReceivePaymentModRq>
<ReceivePaymentMod>
<TxnID>612-1631305229</TxnID>
<EditSequence>1631418450</EditSequence>
<CustomerRef>
<ListID>80000089-1613077827</ListID>
</CustomerRef>
<ARAccountRef>
<ListID>8000001B-1578805288</ListID>
</ARAccountRef>
<TxnDate>2021-09-04</TxnDate>
<RefNumber>cash11</RefNumber>
<TotalAmount>11.00</TotalAmount>
<PaymentMethodRef>
<ListID>80000001-1578006261</ListID>
</PaymentMethodRef>
<Memo/>
<DepositToAccountRef>
<ListID>80000021-1620340635</ListID>
</DepositToAccountRef>
<AppliedToTxnMod/>
</ReceivePaymentMod>
</ReceivePaymentModRq>
但是验证器给我:
Line: 13
LinePos: 48
Src Text: <AppliedToTxnMod></AppliedToTxnMod>
Reason: Element cannot be empty according to the DTD/Schema.
我认为 QBSDK 在第 12 页上所说的 (https://static.developer.intuit.com/resources/QBSDK_ProGuide.pdf) 是错误的。 126 用于清除聚合,但我想这可能不适用于引用其他事务的聚合??:
"清除地址或送货地址等聚合类似于清除 修改请求中的引用。您可以提供所有元素的空版本 聚合,或者您可以简单地提供一个空聚合
要从交易(例如发票)中取消付款,请在 <ReceivePaymentMod>
中发送 <AppliedToTxnMod>
聚合,引用您要删除的金额为零的 <TxnID>
<PaymentAmount>
。例如:
<ReceivePaymentMod>
<TxnID>612-1631305229</TxnID>
...
<AppliedToTxnMod>
<TxnID>52F-1630633150</TxnID>
<PaymentAmount>0.00</PaymentAmount>
</AppliedToTxnMod>
</ReceivePaymentMod>