# 1.1 Общие требования

<span style="font-family: PT Astra Serif, serif;">СМО взаимодействует с ФЕРЗЛ посредством SOAP-сервисов, использующих XML.</span>

<span style="font-family: PT Astra Serif, serif;">Взаимодействие осуществляется с использованием синхронных и асинхронных SOAP-методов.</span>

<span style="font-family: PT Astra Serif, serif;">Процесс синхронного взаимодействия ФЕРЗЛ с внешними системами состоит из следующих этапов:</span>

- <span style="font-family: PT Astra Serif, serif;">внешняя система через <span lang="en-GB">SOAP</span>-сервисы ФЕРЗЛ посылает запрос;</span>
- <span style="font-family: PT Astra Serif, serif;">ФЕРЗЛ принимает запрос, обрабатывает его и формирует ответное сообщение, содержащее информацию об успешности или неуспешности проведения операции, а также результаты ФЛК.</span>

<span style="font-family: PT Astra Serif, serif;">Операции, выполняемые асинхронно, выделены в отдельный сервис, где каждая операция представлена двумя методами:</span>

- <span style="font-family: PT Astra Serif, serif;">Start – запускает операцию и сообщает ее токен - строку, уникально идентифицирующую операцию;</span>
- <span style="font-family: PT Astra Serif, serif;">Poll – опрашивает готовность операции, предъявляя токен.</span>

<span style="font-family: PT Astra Serif, serif;">Системные результаты выполнения метода возвращаются как код ответа.</span>

<span style="font-family: PT Astra Serif, serif;">В случае, если полученные входные данные не проходят ФЛК, возвращаются коды результата и сообщения об ошибках, препятствующих выполнению операции.</span>

<span style="font-family: PT Astra Serif, serif;">При получении ошибки, данные должны быть откорректированы, и метод должен быть вызван повторно.</span>

<span style="font-family: PT Astra Serif, serif;">Каждому новому отправляемому запросу должен присваиваться новый внешний идентификатор, уникальный в рамках конкретной внешней информационной системы. Для передачи больших объёмов данных используется технология MTOM.</span>

<span style="font-family: PT Astra Serif, serif;">Таблица — Коды и сообщения об ошибках</span>

<table cellpadding="7" cellspacing="0" id="bkmrk-%E2%84%96-%D0%9A%D0%BE%D0%B4-%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%B0-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8" width="623"><colgroup><col width="22"></col> <col width="62"></col> <col width="190"></col> <col width="292"></col> </colgroup><thead><tr><td width="22">№

</td><td width="62">**Код статуса ошибки**

</td><td width="190">**Значение**

</td><td width="292">**Возможные причины возникновения ошибки**

</td></tr></thead><tbody><tr><td valign="top" width="22">1. 

</td><td width="62">400

</td><td width="190">Ошибка в формате запроса

</td><td width="292">Формируется вне прикладного кода.

</td></tr><tr><td valign="top" width="22">2. 

</td><td width="62">401

</td><td width="190">Ошибка аутентификации

</td><td width="292">Неправильный пароль, истёкший токен доступа и т.п.

</td></tr><tr><td valign="top" width="22">3. 

</td><td width="62">403

</td><td width="190">Ошибка доступа к ресурсу

</td><td width="292">Попытка вызвать запрос, на который у текущей сессии нет прав.

</td></tr><tr><td valign="top" width="22">4. 

</td><td width="62">409

</td><td width="190">Ошибка бизнес-логики

</td><td width="292">Введены противоречивые/некорректные параметры.

</td></tr><tr valign="top"><td width="22">5. 

</td><td width="62">422

</td><td width="190">Необрабатываемый контент

</td><td width="292"><span style="font-family: PT Astra Serif, serif;"><span style="font-size: small;"><span style="font-family: Times New Roman, serif;"><span style="font-size: medium;">Ключи для организации не найдены,</span></span></span></span>

<span style="font-family: PT Astra Serif, serif;"><span style="font-size: small;"><span style="font-family: Times New Roman, serif;"><span style="font-size: medium;">Переданное значение не является ОИП, </span></span></span></span>

Версия справочника ключей не найдена

</td></tr><tr><td valign="top" width="22">6. 

</td><td width="62">500

</td><td width="190">Системная ошибка

</td><td width="292">Ошибка инфраструктуры.

</td></tr><tr><td valign="top" width="22">7. 

</td><td width="62">200

</td><td width="190">ОК

</td><td width="292"></td></tr></tbody></table>