Невозможно отправить счет в Sage One через API 422 Ошибка - PullRequest
1 голос
/ 15 апреля 2019

Я могу пройти проверку подлинности с помощью API SAGE ONE, а также получить данные из API, однако сейчас я пытаюсь опубликовать простой счет, но получаю ошибку 422.Есть что-то очевидное, чего мне не хватает?

Я дважды проверил структуру JSON и значения, которые я предоставляю, и все они действительны.Не уверен, что я делаю здесь неправильно!

мой пакет JSON выглядит следующим образом

{"contact_id":"66b76fa19edc11e797950a57719b2edb",
"date":"2019-04-13",
"invoice_lines":[{"description":"Test Description",
"ledger_account_id":"0367afd89ece11e797950a57719b2edb","quantity":1,"unit_price":100}]}

code 

Dim http As HttpWebRequest = WebRequest.Create(New Uri("https://api.columbus.sage.com/uki/sageone/accounts/v3/sales_invoices"))
            http.Method = "POST"
            http.ContentType = "application/json"
            http.Accept = "application/json"
            http.Headers.Add("X-Site", "mysite")
            http.Headers.Add("ocp-apim-subscription-key", "mykey")
            http.Headers.Add("Authorization", "Bearer " mytoken)

            Dim data = Encoding.UTF8.GetBytes(json)
            http.ContentLength = data.Length

            Dim stream = http.GetRequestStream()
            stream.Write(data, 0, data.Length)
            stream.Close()

            Dim response = http.GetResponse().GetResponseStream()

1 Ответ

1 голос
/ 15 апреля 2019

Это тело POST работало для меня (с разными идентификаторами):

{
  "sales_invoice": {
    "contact_id": "66b76fa19edc11e797950a57719b2edb",
    "date": "2019-04-13",
    "main_address": { "address_line_1": "42 Test Street" },
    "invoice_lines": [
      {
        "description": "Test Description",
        "ledger_account_id": "0367afd89ece11e797950a57719b2edb",
        "quantity": 1,
        "unit_price": 100,
        "tax_rate_id": "GB_NO_TAX"
      }
    ]
  }
}

Вам нужно обернуть свою структуру JSON ключом, который является именем вашего ресурса ("sales_invoice" в данном случае).

Вам также необходимо указать основной адрес, а также идентификатор налоговой ставки для каждой позиции.

Чтобы иметь действительный счет ГК для своего счета-фактуры, получитесписок возможных аккаунтов с:

GET /ledger_accounts?visible_in=sales
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...