Как создать (или обновить) платежную систему QBO BillPayment, чтобы у нее была сумма непримененного платежа?

Я создал счет через веб-интерфейс QuickBooks Online (QBO). Затем я запросил с помощью API (версия 3, описанная здесь). Ответ:

{
    "SyncToken": "16", 
    "domain": "QBO", 
    "VendorRef": {
        "name": "MyVendor", 
        "value": "237"
    }, 
    "TxnDate": "2014-12-07", 
    "TotalAmt": 1.83, 
    "CurrencyRef": {
        "name": "United States Dollar", 
        "value": "USD"
    }, 
    "PayType": "Check", 
    "PrivateNote": "test billpayment description (mod)", 
    "sparse": false, 
    "Line": [
        {
            "Amount": 1.22, 
            "LinkedTxn": [
                {
                    "TxnId": "1412", 
                    "TxnType": "Bill"
                }
            ]
        }
    ], 
    "Id": "1413", 
    "CheckPayment": {
        "PrintStatus": "NeedToPrint", 
        "BankAccountRef": {
            "name": "MyBankAcct#1234", 
            "value": "137"
        }
    }, 
    "MetaData": {
        "CreateTime": "2014-12-07T18:44:51-08:00", 
        "LastUpdatedTime": "2014-12-10T20:20:28-08:00"
    }
}

Как видите, у него всего 0,61 долл. США TotalAmt, не примененного ни к каким счетам. (Остальные 1,22 доллара применяются к счету 1412.) Теперь, когда я пытаюсь обновить этот счет, чтобы изменить ТОЛЬКО сумму, примененную к связанной транзакции, я получаю неожиданные результаты.

Вот тело запроса на обновление:

{
    "SyncToken": "16", 
    "domain": "QBO", 
    "VendorRef": {
        "name": "MyVendor", 
        "value": "237"
    }, 
    "TxnDate": "2014-12-07", 
    "TotalAmt": 1.83, 
    "CurrencyRef": {
        "name": "United States Dollar", 
        "value": "USD"
    }, 
    "PayType": "Check", 
    "PrivateNote": "test billpayment description (mod)", 
    "sparse": false, 
    "Line": [
        {
            "Amount": 1.21, 
            "LinkedTxn": [
                {
                    "TxnId": "1412", 
                    "TxnType": "Bill"
                }
            ]
        }
    ], 
    "Id": "1413", 
    "CheckPayment": {
        "PrintStatus": "NeedToPrint", 
        "BankAccountRef": {
            "name": "MyBankAcct#1234", 
            "value": "137"
        }
    }, 
    "MetaData": {
        "CreateTime": "2014-12-07T18:44:51-08:00", 
        "LastUpdatedTime": "2014-12-10T20:20:28-08:00"
    }
}

В ответ кажется, что API просто не может справиться с ситуацией (хотя он явно существовал, когда я создавал его в веб-интерфейсе). Посмотрите, что происходит с атрибутом TotalAmt! Это сводится к тому, какой платеж был в LinkedTxn:

{
  "BillPayment": {
    "VendorRef": {
      "value": "237",
      "name": "MyVendor"
    },
    "PayType": "Check",
    "CheckPayment": {
      "BankAccountRef": {
        "value": "137",
        "name": "MyBankAcct#1234"
      },
      "PrintStatus": "NeedToPrint"
    },
    "TotalAmt": 1.21,
    "domain": "QBO",
    "sparse": false,
    "Id": "1413",
    "SyncToken": "17",
    "MetaData": {
      "CreateTime": "2014-12-07T18:44:51-08:00",
      "LastUpdatedTime": "2014-12-10T20:25:02-08:00"
    },
    "TxnDate": "2014-12-07",
    "CurrencyRef": {
      "value": "USD",
      "name": "United States Dollar"
    },
    "PrivateNote": "test billpayment description (mod)",
    "Line": [
      {
        "Amount": 1.21,
        "LinkedTxn": [
          {
            "TxnId": "1412",
            "TxnType": "Bill"
          }
        ]
      }
    ]
  },
  "time": "2014-12-10T20:25:01.91-08:00"
}

Я не вижу обсуждения этого на странице известных проблем, поэтому я в замешательстве.

Если у вас есть какие-либо предложения относительно того, как заставить это делать то, что я хочу, я благодарю вас за ваши мысли!

0 ответов

Другие вопросы по тегам