ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Type", "application/json; charset=utf-8");
ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
ЗаголовокHTTP.Вставить("X-API-KEY", КлючСессии);

URLЗапроса = "api/v4/true-api/codes/check";

Запрос = Новый HTTPЗапрос(URLЗапроса, ЗаголовокHTTP);
Запрос.УстановитьТелоИзСтроки("{ ""codes"": """+СокрЛП(КодМаркировки)+""" }", КодировкаТекста.UTF8);

Соединение = Новый HTTPСоединение("markirovka.crpt.ru", 443,,,,2,Новый ЗащищенноеСоединениеOpenSSL());
Ответ = Соединение.ОтправитьДляОбработки(Запрос);

ТекстОтвета = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);

Возвращается {"code":500,"description":"400 BAD_REQUEST \"Failed to read HTTP message\"","codes":[]}
Подскажите что не так?
---
Ошибка глупейшая!!!
Запрос.УстановитьТелоИзСтроки("{ ""codes"": """+СокрЛП(КодМаркировки)+""" }");

codes это массив кодов!
Верный текст такой

Запрос.УстановитьТелоИзСтроки("{ ""codes"": ["""+СокрЛП(КодМаркировки)+"""] }");

Всем спасибо!
---
Скажите, а дальше Вы прошли? Теперь результат проверки надо послать в кассу. Если это Атол, Вы не знаете в какие тэги надо писать результат проверки?
---
Да, КлючСессии взят на сайте Честный Знак в профиле из поля "Токен для контрольно-кассовой техники"
https://markirovka.ru/community/rezhim-proverok-na-kassakh/rezhim-proverok-na-kassakh
---
Если запрос отправлять в песочницу markirovka.sandbox.crptech.ru, то возвращает
{"code":401,"description":"Unknown X-Api-Key","codes":[]}
---
У метода УстановитьТелоИзСтроки три параметра.
---
Не должно быть, а может быть и три параметра! В данном случае хватило бы и одного первого.
Вопрос скорее не где я сделал ошибку в запросе, а почему сервис запроса информации не работает согласно заявленному честным знаком функционалу?
---
Ошибка глупейшая!!!
Запрос.УстановитьТелоИзСтроки("{ ""codes"": """+СокрЛП(КодМаркировки)+""" }");

codes это массив кодов!
Верный текст такой

Запрос.УстановитьТелоИзСтроки("{ ""codes"": ["""+СокрЛП(КодМаркировки)+"""] }");

Всем спасибо!
---
а мне на данный запрос приходит ответ
{"timestamp":"2024-03-27T08:13:11.244+00:00","path":"/legacy/api/v1/codes/check/","status":404,"error":"Not Found","message":null,"requestId":"2c4b5a50-12200777"}

совершенно не понимаю, при чем тут legacy/api/v1/codes/check если я посылаю запрос на
https://markirovka.crpt.ru/api/v4/true-api/codes/check

Правда, в отличие от ТС я пользуюсь не HTTPЗапрос, а WinHttp:

WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
 попытка
  WinHttp.Open("POST", "https://markirovka.crpt.ru/api/v4/true-api/codes/check/",0);
  WinHttp.SetRequestHeader("X-API-KEY", Токен);
  WinHttp.SetRequestHeader("Content-Type", "application/json; charset=utf-8");
     WinHttp.SetRequestHeader("Accept-Charset", "utf-8");

  СтрокаЗапроса = "{""codes"":[""" + СтрЗаменить(Код, """", "\""")+"""], ""inn"":""здесь наш ИНН""}";
  //СтрокаЗапроса = "{""codes"":[""" + СтрЗаменить(Код, """", "\""")+"""]}";
  WinHttp.SetTimeouts(1000, 1000, 1000, 1000);
  WinHttp.Send(СтрокаЗапроса);
  РезультатСтр = WinHttp.ResponseText(1400);
  Сообщить(ПреобразоватьСтрокуИзУТФ8(РезультатСтр))
 Исключение
   Сообщить(СокрЛП(РезультатСтр) + " - " + ОписаниеОшибки());
 КонецПопытки;
---
разобрался в ситуации:
1. надо получить список контуров и отправлять запрос на контур из списка. желательно еще перед этим определить какой контур наиболее близкий. Т.е. указанный автором топика контур markirovka.crpt.ru для данного запроса уже не канает с 12 февраля этого года.
2. в коде перед 8005 и пелед 93 и перед 240 надо ставить \u001d
Вот исходный код:
010460620309799921yEM1!K9800526900093CbP6240FA083231.05
вот что надо посылать в запросе:
010460620309799921yEM1!K9\u001d8005269000\u001d93CbP6\u001d240FA083231.05

ответы на вопросы нашел здесь:
https://честныйзнак.рф/upload/2023_09_01_методические_рекомендации_в01_3_rev_и_о­флайн_2.pdf
---
Кто-нибудь пробовал передать сразу несколько КМ? У меня не получается. Если в массиве 1 КМ, то ответ приходит, если несколько - то ошибка 4хх.
---
все, нашел косяк, проблема была в самой КМ