Коды ошибок¶
Ошибки возвращаются внутри payload_base64 в виде XML-структуры <ErrorList>. Сервер при этом возвращает HTTP 200.
Структура ошибки¶
<ErrorList>
<Error>
<Code>215</Code>
<Description>Часть payload токена невалидна</Description>
<Params>
<Param>
<Key>Причина</Key>
<Value>Element 'Competition': Missing child element(s). Expected is one of (MedicalExamination, CompetitionParamList).</Value>
</Param>
</Params>
<Time>2025-03-29T11:45:35+03:00</Time>
</Error>
</ErrorList>
При ошибке 215 теги после первого в сообщении могут быть необязательными — это особенность технической реализации, их учитывать не нужно.
Поле Stage¶
В response-схеме всегда присутствует поле Stage:
- Validate — ошибка на этапе валидации схемы (XML не соответствует XSD)
- Business — ошибка бизнес-логики (данные валидны, но нарушают правила)
Коды ошибок¶
2xx — Ошибки токена и валидации¶
| Код | Описание | Что делать |
|---|---|---|
| 201 | Ошибка декодирования | Проверить Base64-кодировку payload |
| 202 | Неизвестный тип сущности | Проверить поле data_type в Token-Header |
| 203 | Действие над сущностью не найдено | Проверить поле action в Token-Header |
| 204 | Не найден классификатор | Проверить Id в полях ссылающихся на классификаторы |
| 205 | Попытка изменения параметра, запрещённая бизнес-логикой | Изменение этого поля недопустимо в текущем состоянии |
| 206 | Токен невалиден — невалидные символы | Проверить кодировку строки |
| 206 | Выбранный классификатор не имеет необходимого параметра | Проверить наличие нужного параметра у классификатора |
| 207 | Ошибка валидации поля xs:dateTime |
Формат: 2006-01-02T15:04:05+03:00 |
| 208 | Ошибка валидации поля xs:date |
Формат: 2006-01-02 |
| 209 | Верификация токена провалена — подпись не совпадает | Проверить формирование подписываемой строки: Token-Header.payload_base64 |
| 210 | Организация не найдена | Проверить ОГРН/КПП |
| 211 | Сертификат организации не найден | Загрузить сертификат в ЛК ФИС |
| 212 | Подозрительная активность — попытка доступа к данным другой организации | Проверить ОГРН/КПП в Token-Header |
| 213 | Токен невалиден | Проверить структуру токена |
| 214 | Комбинация EntityType + Action не разрешена | Проверить допустимые операции для сущности |
| 215 | Часть payload невалидна | Провалидировать XML по XSD-схеме локально |
| 216 | Часть header токена невалидна | Проверить структуру Token-Header |
| 217 | Нельзя подавать более одного объекта без уникальных полей | Добавить уникальные идентификаторы для каждого объекта |
| 218 | Нельзя повторять поля уникальной идентификации в одном токене | Убрать дублирующиеся записи |
| 219 | Нельзя повторять классификаторы внутри одного массива | Убрать дублирующиеся классификаторы |
| 220 | Нельзя повторять поля уникальной идентификации вложенного объекта | Убрать дубли во вложенных объектах |
| 221 | СНИЛС невалиден | СНИЛС должен содержать ровно 11 цифр |
| 222 | Объект EntranceTest не может ссылаться сам на себя | Проверить поле IdEntranceTest |
| 223 | В объекте не указан необходимый параметр | Проверить обязательные поля в схеме |
3xx — Ошибки бизнес-логики справочников¶
| Код | Описание | Что делать |
|---|---|---|
| 301 | Изменение справочника НП запрещено — есть активная кампания | Дождаться окончания приёма или изменить в допустимый период |
| 302 | Справочник НП с таким ID уже существует | Использовать Edit вместо Add |
| 303 | Справочник НП не найден | Проверить IdOrgDirection |
| 304 | Справочник НП не является видом спорта | Указать справочник типа «спорт» |
| 305 | Указанный IdSubject обязывает указать UidDictionaryValueSport | Добавить справочник дополнительных параметров типа «спорт» |
| 306 | Указанный IdSubject не допускает UidDictionaryValueSport | Убрать справочник типа «спорт» |
| 307 | Справочник НП не является видом музыкального инструмента | Указать справочник типа «музыкальный инструмент» |
| 308 | При добавлении доп. параметров НП — справочник должен иметь вид 1 или 6 | Проверить тип справочника |
| 310 | НП организации с таким ID уже существует | Использовать Edit вместо Add |
| 311 | НП организации не найдено | Проверить IdOrgDirection |
| 312 | НП организации с таким НП уже существует для данной организации | Убрать дубль НП |
| 313 | Есть дубли НП — убрать, сущность OrgDirectionList | Убрать дублирующиеся НП |
Полный список кодов 3xx–5xx уточнять в Приложении Г Спецификации API (source-docs/).
Советы по отладке¶
Сначала проверяй локально. Перед отправкой запроса провалидируй XML через XSD-схему локально — это быстрее чем разбирать ошибку 215 из ответа API.
Смотри на Stage. Если Stage: Validate — ищи несоответствие схеме. Если Stage: Business — данные валидны, но нарушено бизнес-правило.
Код 212 — внимание. Это «подозрительная активность». Несколько таких ошибок подряд могут привести к временной блокировке. Немедленно проверь что ОГРН/КПП в заголовке совпадают с сертификатом.