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-код печатаются на бумажном чеке.