Невозможно отправить счет в Sage One через API 422 Ошибка
Я могу проходить проверку подлинности с помощью 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 ответ
Это тело 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