4.8. API интерфейс

REGOS: VCR предоставляет API интерфейс для взаимодействия с пользовательскими функциями.

Порядок взаимодействия

Взаимодействие с REGOS: VCR осуществляется с помощью HTTP-запросов методом POST.

Каждый запрос должен содержать обязательный заголовок (Header):

Content-Type: application/json;charset=utf-8

Тело запроса (Body) имеет следующую структуру:

{
    "id":1,
    "jsonrpc":"2.0",
    "method":"ZReport.GetInfo",
    "params":null,
    "auth":"a2Fzc2E6a2FzMTIzNDU2"
}

где:

  • "id" - Id запроса к API;
  • "method" - поле содержит в себе название метода, вызываемого при обращении к API интерфейсу;
  • "params" - Объект, при необходимости, должен содержать в себе дополнительные данные, необходимые для выполнения API метода;
  • "auth" - Поле содержит в себе Base64(Login:Password) - логин:пароль, закодированные в формате Base64. Доступ к использованию API интерфейса имеет только пользователь Кассир.

При корректном выполнении метода сервер вернет ответ с кодом 200. Другие коды ответа, могут возникать при ошибке на стороне сервера.

Тело ответа (Body) имеет следующую структуру:

{
    "id":1,
    "ok":true,
    "result": {},
    "jsonrpc":"2.0"
}

где:

  • id - id запроса;
  • ok - статус выполнения запроса (true - успех, false - ошибка);
  • result - объект ответа. Если ok=true, то ответ метода, если ok=false - объект с описанием ошибки.

Перед выполнением авторизованного метода проверяются общие блокировки кассы и наличие настроенного принтера в системе. Если настроенный принтер не найден, возвращается 704016; это относится также к информационным методам. Фактическая печать и её результат определяются контрактом конкретного метода.

Название метода обрабатывается без учёта регистра. Неизвестный метод отклоняется с ошибкой 703000. Для обработки ответа проверяйте ok и код result.error, а не текст сообщения.

Статусы ошибок фискального модуля при работе через FDS возвращаются как 704000; специальные ограничения синхронизации сохраняют коды 704001 и 704002. Полный перечень приведён в списке ошибок. Если результат регистрации чека не подтверждён, после устранения причины повторите исходный запрос с тем же кодом и составом чека.

Для тестирования API виртуальной кассы REGOS: VCR можно использовать следующий Endpoint: http://vcr-test.regos.uz.
Данные пользователя для тестов выдаются по требованию в индивидуальном порядке.
Для проверки работы методов в тестовой среде и просмотра напечатанного результата на POS принтере запущена онлайн Web-камера

Следующий запрос можно отправлять, только после получения ответа на предыдущий.

Если касса занята выполнением другой операции, возвращается ошибка 704042. После получения ошибки запрос можно повторить.

Фискальные реквизиты в ответах

В Receipt.Sale, Receipt.Refund, Receipt.FullRefund и Receipt.GetInfo поля QRCodeURL, ReceiptNo и FiscalSign содержат строку ***. Поля не удаляются; Id, Code, Amount, TerminalID и DateTime содержат фактические значения. Для последующего получения чека и печати дубликата используйте его Id.

Маскированные значения нельзя передавать вместо реквизитов исходного чека при возврате. Для Receipt.Refund и Receipt.FullRefund используйте настоящие реквизиты, например считанные с бумажного чека. Полные реквизиты и рабочий QR-код печатаются на бумажном чеке.