使用 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>