Я использую самоцвет Quickbooks-ruby в приложении Rails 5. Я могу создавать платежи в QuickBooks онлайн с помощью следующего запроса, и они отображаются как действительные в пользовательском интерфейсе QuickBooks, за исключением того, что платежи обозначены как «Unapplied». Платежи говорят только «Не применено», если есть соответствующее кредитовое авизо. Если я попытаюсь просто создать платеж без каких-либо кредитных авизо, то в платежах будет указано «Закрыто», как я и ожидал. Я не понимаю, почему они говорят неприменимо. Я не получаю никаких ошибок с запросами.
Вот мой запрос:
------ QUICKBOOKS-RUBY REQUEST ------
METHOD = post
RESOURCE = https://sandbox-quickbooks.api.intuit.com/v3/company/409454416/payment
REQUEST BODY:
<?xml version="1.0" encoding="utf-8"?>
<Payment xmlns="http://schema.intuit.com/finance/v3" sparse="false">
<Line>
<Amount>164.0</Amount>
<LinkedTxn>
<TxnId>813</TxnId>
<TxnType>Invoice</TxnType>
</LinkedTxn>
</Line>
<Line>
<Amount>164.0</Amount>
<LinkedTxn>
<TxnId>817</TxnId>
<TxnType>CreditMemo</TxnType>
</LinkedTxn>
</Line>
<CustomerRef>79</CustomerRef>
<PaymentMethodRef>2</PaymentMethodRef>
<PaymentRefNum/>
<TotalAmt>164.0</TotalAmt>
</Payment>
Ответ:
REQUEST HEADERS = {"Content-Type"=>"application/xml", "Accept"=>"application/xml", "Accept-Encoding"=>"gzip, deflate"}
------ QUICKBOOKS-RUBY RESPONSE ------
RESPONSE CODE = 200
RESPONSE BODY:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2018-09-14T13:29:54.920-07:00">
<Payment domain="QBO" sparse="false">
<Id>819</Id>
<SyncToken>0</SyncToken>
<MetaData>
<CreateTime>2018-09-14T13:29:55-07:00</CreateTime>
<LastUpdatedTime>2018-09-14T13:29:55-07:00</LastUpdatedTime>
</MetaData>
<TxnDate>2018-09-14</TxnDate>
<CurrencyRef name="United States Dollar">USD</CurrencyRef>
<CustomerRef name="Doe, John">79</CustomerRef>
<DepositToAccountRef>4</DepositToAccountRef>
<PaymentMethodRef>2</PaymentMethodRef>
<TotalAmt>164.00</TotalAmt>
<UnappliedAmt>164.00</UnappliedAmt>
<ProcessPayment>false</ProcessPayment>
</Payment>
</IntuitResponse>
ОБНОВЛЕНИЕ: Даже когда я установил в своем запросе поле unapplied_amount
на 0
, я все равно получаю тот же ответ, который указывает на непримененную сумму и также отражается в веб-интерфейсе Quickbooks.