Задача - оплачивать invoices из deposites автоматически для всех customers. Для этого создаю приложение, которое при нажатии на кнопку все сделает. Решил, что правильно будет создавать customer payment, который будет оплачивать все открытые invoices. Работаю через qbXML и C# sdk. XML запрос выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="13.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<ReceivePaymentAddRq>
<ReceivePaymentAdd>
<CustomerRef>
<FullName>#1 ASAP Transport Inc</FullName>
</CustomerRef>
<RefNumber>LS-2-39</RefNumber>
<TotalAmount>1000.00</TotalAmount>
<AppliedToTxnAdd>
<TxnID>399DB-1582033551</TxnID>
<SetCredit>
<CreditTxnID>39A01-1582087066</CreditTxnID>
<AppliedAmount>0.00</AppliedAmount>
</SetCredit>
</AppliedToTxnAdd>
</ReceivePaymentAdd>
</ReceivePaymentAddRq>
</QBXMLMsgsRq>
</QBXML>
В ответ получаю сообщение:
<?xml version="1.0" ?>
<QBXML>
<QBXMLMsgsRs>
<ReceivePaymentAddRs statusCode="3210" statusSeverity="Error" statusMessage="The
"receive payment total amount" field has an invalid value "1000.00".
QuickBooks error message: This field contains an invalid character." />
</QBXMLMsgsRs>
</QBXML>
Пробовал менять точку на запятую, убирать десятичные числа в принципе. Тогда ошибка 3040: There was an error when converting the amount "1000" in the field "TotalAmount".
Также пробовал вставить аналогичный пример xml из документации, но в итоге та же ошибка. При попытке добавить Receive Payment через c# объекты из примера для c# - те же номера ошибок. Аналогичная проблема и при других операциях, где я указываю суммы (Например, создание invoice или изменение суммы в нем)
Использую QuickBooks Enterprise Solutions 20.0