Ошибки
В случае возникновения ошибки сервер вернёт объект следующего вида:
{
"name": String,
"description": String,
"op_data": Any?
}
- при взаимодействии через
/tsrv- в полеdataсообщения с типомerror(HTTP статус200) - при взаимодействии через
/tsrv/{address}/{action}- в теле ответа с HTTP статусом500(404- для несуществующего метода)
name - код ошибки, description - описание на русском языке, op_data - доп. данные, как правило null.
Коды ошибок можно переопределить в настройках (error_mappings).
В случае возникновения ошибок на методах, отвечающих за фискализацию, ошибки, которые возникли ПОСЛЕ фискализации,
помещаются в отдельное поле errors. Например, в случае возникновения ошибок с принтером, ответ будет следующего вида:
{
"type": "send",
"data": {
"header": {
"uid": "5B69B8EF9BE3E43E09894303",
"number": 354,
"date_time": "2025-03-01T15:01:36.933186+03:00",
"shift_number": 78
},
"errors": {
"printing": {
"name": "rendering.io.error",
"description": "Ошибка печати: Debug error"
},
"storage": null
}
}
}
Если в процессе возникли проблемы при работе с хранилищем данных (ФС), будет помещена так же в storage.
Стоит обратить внимание, что в случае отсутствия ошибок после фискализации поле errors
не передается, либо может иметь значение null.
Коды ошибок
Ошибки СКО и ПК ($.avtpcr.*, avtpcr.*, sko.core.*, orders.* и др.) описаны в разделе
Описание принципов взаимодействия. Ошибки самого tsrv:
| Код | Описание |
|---|---|
req.format.json | некорректный JSON в теле запроса |
http.status.<код> | ошибка HTTP (например, http.status.404 - метод не найден) |
tokens.manager.missing | СКО с указанным серийным номером не найдено |
tokens.manager.multiple | подключено несколько СКО, а заголовок token не передан |
printers.missing | не переданы заголовки принтера |
printers.usb.invalid | некорректные printer.usb.vendor / printer.usb.product |
printers.error | принтер не найден или не удалось его открыть |
rendering.cfg.<параметр>.invalid | некорректное значение заголовка отрисовки (spl, encoding, feed, cut, repr, prefix, postfix, code.skip, zero_payments, custom.qr_size) |
rendering.error | ошибка отрисовки документа |
rendering.io.error | ошибка печати |
tsrv.storage.error | ошибка локального хранилища документов |
tsrv.storage.entry-not-found | документ не найден в локальном хранилище |