- Добавлен новый способ оплаты E-POS. Подробнее смотреть здесь.
- Добавлено новое поддерживаемое устройство - Apollo Night (8.1 Android).
- Добавлен запрос для печати QR-кода со ссылкой на сервис поиска чеков. Подробнее смотреть здесь.
- Расширен запрос для получения копии документа copyDocument. Теперь есть возможность получить копию Z-отчета по номеру смены.
- Внедрена система очереди запросов для улучшения стабильности работы API. Запросы обрабатываются последовательно.
Размер очереди ограничен 3 одновременными запросами. При переполнении очереди запросов клиент получит ошибку с кодом *
*
429 (Too Many Requests)**.
Добавлен запрос для обновления токена авторизации - Refresh Token, запрос предназначен для случаев,
когда пользователи заходят под данными кассира параллельно в несколько приложений, в следствии чего, токен на всех
активных сессиях становится невалидным и требуется переавторизация в приложение Терминальный режим. С помощью данного
запроса можно обновить токен из управляющего приложения.
В запросе shift запрос и ответ добавлены параметры для
отслеживания конфигурации банковского ПО. Параметр запроса временно введен как необязательный, осенью 2025 года,
параметр станет обязательным.
Добавлен запрос получения контроьной ленты КАССОВЫХ документов по номеру
Z-отчета Control Tape.
В Настройки Банковского ПО добавлена возможность закрытия банковской смены вручную.
В Настройки банковского ПО добавлена возможность проверки связи банка с хостом.
Переработана печать на устройстивах SUNMI.
Изменены опции и экран Админ. меню.
Для большей наглядности параметр is_print добавлен в тела и описания запросов, которые используют этот параметр.
Добавлен блок часто задаваемых вопросов.
Добавлена возможность работы с банковским ПО и принтером без авторизации в приложение. Работа без авторизации будет
осуществялться по нажатию на специальную кнопку на странице авторизации, запросы поддерживающие работу без
авторизации отмечены флагом (local)
Добавлен запрос [PATCH] /settings/bankSetting необходимый для получения и изменения параметров
вызова банковского ПО и печати банковских карт-чеков (В запросах использующих параметры из этого запроса будет помечено
какие поля и для чего используются).
Добавлен запрос [POST] /bank/payment выполняющий запрос на оплату напрямую в банковское ПО (без
проведения документа по кассе).
Добавлен запрос [POST] /bank/refund выполняющий запрос на возврат напрямую в банковское ПО (без
проведения документа по кассе).
Добавлен запрос [POST] /bank/closeShift выполняющий запрос на закрытие смены напрямую в банковском
ПО (без проведения документа по кассе).
Добавлен запрос [GET] /bank/lastOperations Выполняющий обращение к локальному хранилищу
приложения Терминальный режим, для получения последних 10 операций по банковскому терминалу.
Добавлен запрос [DELETE] /bank/clearLastOperations Выполняющий обращение к локальному
хранилищу приложения Терминальный режим, для очистки списка последних операций по банковскому терминалу.
Добавлен запрос [GET] /infoUserSectionList Получающий список секций, доступных для текущей
кассы, которые пользователь создал в Личном кабинете ПКС.
В запресе receipt запрос и ответ добавлен параметр
bank_card_check.
В запросе refund запрос и ответ добавлен параметр
bank_card_check.
В запросе cancelLastDocument ответ добавлен параметр bank_card_check.
Поле transaction_rrn в ответе запроса receipt планируется к удалению осенью 2025 года, поле приходило в
ответ на запросы, у которых была банковская оплата. На данный момент поле будет приходить в ответ на запросы у которых
была банковская оплата и 1 банковский чек, для избежания последующих ошибок, рекомендуем
использовать transaction_rrn внутри массива bank_card_check.
Добавлено новое поддерживаемое устройство - Aisino A90 (10 Android), интеграция распространяется строго на
устройства Aisino с операционной системой Android 10, устройства Aisino с операционной системой Andoid 7 НЕ
поддерживаются.
Внедрение логики оплаты несколькими банковскими картами
Возможность оплаты и возврата несколькими банковскими картами в пределах одного чека реализована следующим образом:
Клиентское приложение отправляет запрос /bank/payment (для оплаты) или /bank/refund (для возврата), эти запросы не
фискализируются в кассе, а в ответ отдают объект, соответствующий элементу массива bank_card_check. Клиентское
приложение сохраняет объект на стороне своего софта, после того как необходимое количество банковских оплат было
вызвано, вызывается запрос receipt (для оплаты) и запрос refund (для возврата), и помимо прочих полей - заполняется
массив bank_card_check объектами полученными ранее.
Важно: в этом случае перед отправкой запроса receipt и refund
параметр is_call_bank_soft запроса /settings/bankSetting должен иметь значение false, или будет вызвана оплата по картам
еще раз уже при отправке кассового запроса.
Так же в случаях сбойных ситуаций и для удобства работы интеграторов было создано харнилище последних 10 банковских
операций, доступ к харнилищу осуществляется через запрос /bank/lastOperations/.
Внедрение запросов для касс с "Расширенным тарифом"
Добавлен запрос /tariffId/. При авторизации программная касса получает идентификатор своего тарифа, этим
запросом можно узнать является ли тариф для кассы расширенным.
Идентификатор расширенного тарифа для тестовой зоны - 11.
Идентификатор расширенного тарифа для прод зоны - 8
Для касс с расширенным тарифом доступен запрос /markChecker/markTypes/, запрос возвращает
информацию от сервис Электронный знак о переданных в методе кодах маркировки.
Для касс с расширенным тарифом доступен запрос /markChecker/gtins/, запрос возвращает информацию
от сервис Электронный знак о переданных в методе штрих-кодах.
Запросы, для которых на кассе должен быть выставлен тариф "Расширенный", помечены флагом extended.
Важные исправления
На устройствах, использующих банковский софт GTPOS, ввиду особенностей взаимодействия с этим софтом, могли происходить "
вылеты" приложения "Терминальный режим", для этого разработчиками GTPOS был предоставлен метод проверки посленей
операции: теперь, когда приложение вследствие взаимодействия с GTPOS "вылетает", при авторизации будет выполнена
проверка последней банковской транзакции, так как соединение с клиентом было разорвано - банковский чек (при его
наличии) будет печататься на принтере И добавляться в список /bank/lastOperations. Если же
транзакция GTPOS была неуспешной - будет напечатан следующий текст: "Банковская транзакция не обнаружена, повторите
операцию".
Добавлен способ возврата another_amount. в запрос /refund/, так же добавлен блок для указания типа
других способов возврата another_amount_types запроса /refund/.
Добавлена возможность работы с PAX RTX на 12 Android.
Добавлена возможность работы с Nexgo ST-20.
Для X-report добавлено поле cumulative_total.
Для Z-report добавлено поле cumulative_total.
Для Z-report добавлено поле section_report.
Для X-report добавлено поле section_report.
Добавлен метод проверки типа кода маркировки /infoGetMarkType/[POST].
Для запроса /shift/[POST] добавлен параметр is_print, при отправке параметра со значением true, будет
печататься информация - «Смена открыта».
Изменена печать документов.
Изменен UI главного экрана приложения.
Добавлена поддержка устройств Feitian F20 с банковскими софтами GTPOS и PsAPOS. Добавлена поддержка устройства PAX A8500 с банковским софтом CAPS.
Добавлена возможность подключения по localhost при условии нахождения терминального режима на том же устройстве, где находится управляющее приложение.
Метод запроса /xreport/ изменен с GET на POST. Для запроса /xreport/ разрешен параметр is_print в теле запроса.
Исправлен баг: при отправке запроса /receipt/ без Необязательного поля change_percent - происходило ожидание ответа
от
запроса, которое завершалось только по таймауту.
Исправлены тела ошибок.
Добавлено удаление токена авторизации при нажатии на «Остановить сервер и выйти».
Все поля, содержащие в себе «_percent» изменены с типа int на тип F3,2.
В случае отправки поля change_percent необходимо локально высчитывать change_amount и передавать оба поля, в случае,
если отправить change_percent отличный от 0.00, а change_amount = 0.00 – возможны расхождения при расчете итоговой
суммы.
tax_amount_unit – всегда вычисляется на стороне управляющего приложения.
- 📄 Аннотация
⁉️ Часто задаваемые вопросы- 🔐 Авторизация пользователя
- 📋 Перечень запросов
- 📨 Запросы
- ⚙️ Вход в меню администратора
- 📲 Поддерживаемые устройства
- 📜 История изменений
«Терминальный режим «Электронный чек» функционирует как серверное приложение, принимающее запросы от сторонних клиентов в формате json5 через протокол HTTP 1.1 с использованием методов GET и POST. Все поступающие запросы обрабатываются последовательно.
Приложение поддерживается на устройствах с операционной системой Android версии 5.1 и выше, однако его функциональность может быть ограничена на устройствах с упрощенными версиями Android, такими как Android GO (Android GO Edition).
1. Ошибка "Полученный токен неверный или истек" Эта ошибка означает, что токен авторизации был аннулирован, причин такого поведения может быть несколько: либо он истек по времени (7 дней), либо другой пользователь использовал те же данные авторизации что и вы. В любом случае, для исправления ошибочного поведения необходима переавторизация в приложение "Терминальный режим"
В целях обеспечения конфеденциальности аторизационных данных, авторизация в приложение реализована интерфейсно, авторизационные данные находятся у конечного субъекта хозяйствования (И относящихся к нему кассиров)
Данные, необходимые для первой авторизации, (логин, временный пароль, ID ПК) направляются Оператором на электронную почту пользователя услуг Оператора.
При первой авторизации необходимо ввести логин, временный пароль кассира и ID ПК (вручную или отсканировать QR-код). Далее нажать кнопку «Войти».
На странице смены пароля ввести новый пароль (4-12 символов) в поля «Новый пароль» и «Повторите пароль», нажать кнопку «Сменить пароль».
Далее в модальном окне «Желаете создать PIN-код?» Пользователь может задать PIN-код для последующей быстрой авторизации (без ввода логина и пароля). Необходимо нажать «Создать» и затем задать четырёхзначный PIN код.
Для устройств «3 в 1» в качестве ID ПК может приниматься номер (ICCID) установленной в устройстве СИМ-карты, при необходимости его можно отредактировать.
При последующих запусках «Терминального режима» пользователю предоставляется возможность авторизоваться либо при помощи ПИН-кода, либо используя логин и постоянный пароль кассира ПК
Базовым URL-адресом сервера является:
http://{ip адрес}:(порт)/.
С версии 1.0.3 Доступно подключение по адресу http://localhost:18081, для работы с «Терминальным режимом» в пределах
одного устройства. Если приложение, отправляющее запросы в «Терминальный режим», находится на другом устройстве,
доступно будет только подключение по IP адресу и порту, которые указаны на экране (Рисунок 2).
Примечание для интеграторов: _для корректной работы управляющего приложения с терминальным режимом, пользователю в настройках терминального режима, необходимо выставить настройку «Поверх других приложений - разрешено».
| Запрос | Метод | URL | Описание |
|---|---|---|---|
| Shift | POST |
/shift/ |
Открытие смены |
| Deposit | POST |
/deposit/ |
Внесение наличных средств в кассу |
| Withdraw | POST |
/withdraw/ |
Изъятие наличных из кассы |
| Receipt | POST |
/receipt/ |
Платёжный документ (чек) |
| Refund | POST |
/refund/ |
Документ возврата |
| Cancel last document | POST |
/cancelLastDocument/ |
Отмена последнего платёжного документа |
| Copy document | POST |
/copyDocument/ |
Копия документа по номеру |
| X-Report | POST |
/xreport/ |
Печать отчёта без гашения (Х-отчёт) |
| Z-Report | POST |
/zreport/ |
Печать отчёта с гашением (закрытие смены / Z-отчёт) |
| Control tape | POST |
/controlTape/ |
Печать контрольной ленты |
| Адрес запроса | Метод | URL | Описание |
|---|---|---|---|
| Setting (local) | PATCH |
/settings/bankSetting |
Настройки печати банковских чеков и вызова ПО |
| Payment (local) | POST |
/bank/payment |
Проведение продажи по терминалу |
| Refund (local) | POST |
/bank/refund |
Проведение возврата по терминалу |
| Close shift (local) | POST |
/bank/closeShift |
Закрытие банковской смены |
| Last operations (local) | GET |
/bank/lastOperations |
Последние 10 банковских транзакций |
| Clear last operations (local) | DELETE |
/bank/clearLastOperations |
Очистка истории банковских транзакций |
| Адрес запроса | Метод | URL | Описание |
|---|---|---|---|
| Services | GET |
/epos/services |
Получение списка услуг и торговых точек ПУ |
| Create payment link | POST |
/epos/createPaymentLink/ |
Создание платежной ссылки для оплаты в сервисе E-POS |
| Epos status by uid | POST |
/epos/infoStatusByUid?request_uid={request_uid} |
Получение информации о платежной ссылке |
| Epos payment info by uid | POST |
/epos/infoPaymentByUid?request_uid={request_uid} |
Получение информации о платеже E-POS |
| Адрес запроса | Метод | URL | Описание |
|---|---|---|---|
| Last document | GET |
/infoLastDocument/ |
Данные о последнем фискальном документе |
| User | GET |
/infoUser/ |
Информация о пользователе |
| Check by uid | GET |
/infoCheckByUid?request_uid={request_uid} |
Проверка документа по request_uid |
| Get mark type | POST |
/infoGetMarkType/ |
Проверка типа кода маркировки |
| Section list | GET |
/infoUserSectionList/ |
Список секций из ЛК ПКС |
| Адрес запроса | Метод | URL | Описание |
|---|---|---|---|
| Mark types (extended) | POST |
/markChecker/markTypes/ |
Проверка кодов маркировки |
| Check GTINs (extended) | POST |
/markChecker/gtins/ |
Проверка штрих-кодов |
| Адрес запроса | Метод | URL | Описание |
|---|---|---|---|
| Print document (local) | POST |
/printDocument/ |
Печать кассового документа |
| Print blocks (local) | POST |
/printBlocks/ |
Печать произвольного текста |
| Print short document | POST |
/printShortDocument/ |
Печать короткого документа (QR-кода) |
| Адрес запроса | Метод | URL | Описание |
|---|---|---|---|
| Ping (local) | GET |
/ping/ |
Проверка доступности сервера |
| Refresh token | POST |
/refreshToken/ |
Обновление токена авторизации |
| Tariff id (local) | GET |
/tariffId |
Получение актуального тарифа для кассы |
В протоколе существуют запросы, для отправки и получения положительных ответов от которых, нет необходимости в
авторизации в приложении, эти запросы в протоколе помечены флагом (local). Работа без авторизации выполняется по
нажатию на специальную кнопку в левом верхнем углу экрана авторизации.
В протоколе существуют запросы, для которых на кассе должен быть включен расширенный тариф, они отмечены флагом *
*(extended)**.
На любой запрос сервер может вернуть сообщение об ошибке. В теле ответа сервера с кодом 400 содержится дополнительная информация об ошибке, например:
{
code: "String",
message: "String",
}Значение поля message передается в ответе на запрос клиента.
Таймаут для всех запросов составляет 20 секунд. В любом запросе клиента обязательно должны передаваться следующие заголовки HTTP:
| Параметр | Значение |
|---|---|
| Connection | keep-alive |
| Content-Type | application/json; charset=utf-8 |
Для всех POST запросов, если в конкретном запросе не указано обратное, в теле запроса может передаваться параметр
is_print, который отвечает за необходимость вывода документа на печать.
❗Значение по умолчанию - true.
| Параметр | Тип/Обязательность | Описание |
|---|---|---|
| is_print | O, boolean | Вывод чека на принтер: true - печататьfalse – не печатать |
R — обязательное поле;
O — необязательное поле;
integer — целочисленный тип данных, n - максимальное количество символов;
String — строковый тип данных, n — максимальное количество символов;
String(Сn) — строковый тип для представления денежных величин (Currency). Всегда содержит ровно два знака после
запятой. Параметр n определяет максимальную длину целой части. Разделитель — точка.
По умолчанию: n = 7.
Примеры:
String(C9) → макс. 9 цифр в целой части ("123456789.99")
String(C) → макс. 7 цифр в целой части ("1234567.99")
Fn,m – строковый тип данных, n — максимальное количество цифр целой части, m — максимальное количество цифр
дробной
части, разделитель — точка;
YYYY-MM-DDTHH:MM:SS — дата и время, YYYY — год, MM — месяц, DD — число, HH — часы, MM — минуты, SS — секунды;
boolean — логический тип данных. Принимает одно из значений: true (истина) или false (ложь)
[] — список(массив), с указанным перед ним типом данных. Пример: object[] - список объектов;
Сервер отвечает также в формате json5, используя коды состояния HTTP как коды ответа сервера:
| Код состояния HTTP | Значение |
|---|---|
| 200 | Запрос выполнен успешно, дополнительная информация о результате выполнения запроса содержится в теле ответа. |
| 201 | Запрос на создание документа выполнен успешно. Документ создан. |
| 400 | Во время выполнения операции произошла ошибка, дополнительная информация об ошибке содержится в теле ответа. |
| 403 | Ограничение или отсутствие доступа к материалу |
| 404 | Ресурс не найден. (Вызван несуществующий запрос) |
| 429 | Ошибка возникает, если клиент отправил более 3 параллельных запросов на обработку. Сервер отклоняет лишние запросы, чтобы предотвратить перегрузку. Рекомендуется дождаться завершения текущих операций и повторить запрос. |
| Любой другой код, отсутствие ответа в течении таймаута | Сервер недоступен или по каким-то причинам не может выполнить данный запрос, фатальная ошибка |
Для данного запроса отсутствует параметр is_print
[GET] http://{ip адрес}:(порт)/ping
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{}HTTP/1.1 200 OK
{}Для данного запроса отсутствует параметр is_print
Запрос отправляется в 2 вариациях:
1. Вариант с обновлением настроек, в запросе отправляются настройки, изменяющие стандартные значения
[PATCH] http://{ip адрес}:(порт)/settings/bankSetting
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
is_call_bank_soft: true,
is_print_second_bank_check: true,
is_combined_bank_check: true
}| Название поля | Тип данных | Описание |
|---|---|---|
| is_call_bank_soft | O, boolean | Признак вызова банковского ПО (стандартно true) |
| is_print_second_bank_check | O, boolean | Признак печати второго банковского чека (стандартно true) |
| is_combined_bank_check | O, boolean | Признак объединённого банковского чека (стандартно false) |
HTTP/1.1 201 Created
{
is_call_bank_soft: true,
is_print_second_bank_check: false,
is_combined_bank_check: false
}| Название поля | Тип данных | Описание |
|---|---|---|
| is_call_bank_soft | R, boolean | Признак вызова банковского ПО (стандартно true) |
| is_print_second_bank_check | R, boolean | Признак печати второго банковского чека (стандартно true) |
| is_combined_bank_check | R, boolean | Признак объединённого банковского чека с кассовым (стандартно false) |
2. Вариант с получением настроек, запрос отправляется пустым, в ответ отдаются текущие настройки
[PATCH] http://{ip адрес}:(порт)/settings/bankSetting
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{}HTTP/1.1 200 OK
{
is_call_bank_soft: false,
is_print_second_bank_check: false,
is_combined_bank_check: false,
}| Название поля | Тип данных | Описание |
|---|---|---|
| is_call_bank_soft | R, boolean | Признак вызова банковского ПО (стандартно true) |
| is_print_second_bank_check | R, boolean | Признак печати второго банковского чека (стандартно true) |
| is_combined_bank_check | R, boolean | Признак объединённого банковского чека с кассовым (стандартно false) |
Для данного запроса параметр is_print не отправляется. Всегда имеет значение true.
Методические указания к запросу
Параметр is_call_bank_soft запроса /settings/bankSetting не влияет на данный запрос.
Если параметр is_print_second_bank_check запроса /settings/bankSetting установлен false, при успешном осуществлении
оплаты на терминале, банковский чек(чек для банка) будет печататься в одном экземпляре, а не в двух как при стандартном
поведении программы.
Если параметр is_combined_bank_check запроса /settings/bankSetting установлен true, банковский чек(чек для клиента)
распечатан не будет, если при этом параметр is_print_second_bank_check запроса /settings/bankSetting установлен false -
печать банковских чеков произведена не будет.
[POST] http://{ip адрес}:(порт)/bank/payment
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
amount: "String(C)"
}| Название поля | Обязательное поле Тип данных |
Описание |
|---|---|---|
| amount | R, String(C) | Сумма оплаты |
HTTP/1.1 201 Created
{
bic: "String",
unp: "String",
terminal_id: "String",
mercant_id: "String",
transaction_uuid_acquirer_bank: "String",
transaction_uuid_arm_cashier: "String",
transaction_rrn: "String",
card_check_number: "String",
transaction_type: "String",
transaction_status: "String",
transaction_status_message: "String",
processing_response_code: "String",
masked_card_number: "String",
payment_system: "String",
type_card_reader: "String",
card_application_ID: "String",
auth_code: "String",
transaction_datetime: "String",
transaction_currency: "String",
transaction_amount: "String(C)",
transaction_confirmation_method: "String",
bank_name: "String",
transaction_crn: "String",
}| Название поля | Тип данных | Описание |
|---|---|---|
| bic | O, String | БИК банка |
| unp | O, String | УНП |
| terminal_id | O, String | Идентификатор терминала |
| mercant_id | O, String | Идентификатор мерчанта |
| transaction_uuid_acquirer_bank | O, String | UUID транзакции в банке-эквайере |
| transaction_uuid_arm_cashier | O, String | UUID транзакции в АРМ кассира |
| transaction_rrn | R, String | Retrieval Reference Number (RRN) |
| card_check_number | O, String | Контрольный номер карты |
| transaction_type | O, String | Тип транзакции |
| transaction_status | R, String | Статус транзакции |
| transaction_status_message | O, String | Детализация статуса/ошибки |
| processing_response_code | O, String | Код ответа процессинга |
| masked_card_number | O, String | Маскированный номер карты |
| payment_system | O, String | Платёжная система |
| type_card_reader | O, String | Тип кард-ридера |
| card_application_ID | O, String | Идентификатор приложения карты (AID) |
| auth_code | O, String | Код авторизации |
| transaction_datetime | O, String | Дата и время транзакции |
| transaction_currency | O, String | Валюта транзакции |
| transaction_amount | R, String(C) | Сумма транзакции |
| transaction_confirmation_method | O, String | Метод подтверждения |
| bank_name | O, String | Название банка-эквайера |
| transaction_crn | O, String | Customer Reference Number (CRN) (возвращается в ответе у устройств FEITIAN F20 с банковским софтом psAPOS) |
Для данного запроса параметр is_print не отправляется. Всегда имеет значение true.
Методические указания к запросу
Параметр is_call_bank_soft запроса /settings/bankSetting не влияет на данный запрос.
Если параметр is_print_second_bank_check запроса /settings/bankSetting установлен false, при успешном осуществлении
оплаты на терминале, банковский чек(чек для банка) будет печататься в одном экземпляре, а не в двух как при стандартном
поведении программы.
Если параметр is_combined_bank_check запроса /settings/bankSetting установлен true, банковский чек(чек для клиента)
распечатан не будет, если при этом параметр is_print_second_bank_check запроса /settings/bankSetting установлен false -
печать банковских чеков произведена не будет.
[POST] http://{ip адрес}:(порт)/bank/refund
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
amount: "String(C)",
transaction_rrn: "String"
}| Название поля | Обязательное поле Тип данных |
Описание |
|---|---|---|
| amount | R, String(C) | Сумма оплаты |
| transaction_rrn | R, String | Retrieval Reference Number (RRN) |
HTTP/1.1 201 Created
{
bic: "String",
unp: "String",
terminal_id: "String",
mercant_id: "String",
transaction_uuid_acquirer_bank: "String",
transaction_uuid_arm_cashier: "String",
transaction_rrn: "String",
card_check_number: "String",
transaction_type: "String",
transaction_status: "String",
transaction_status_message: "String",
processing_response_code: "String",
masked_card_number: "String",
payment_system: "String",
type_card_reader: "String",
card_application_ID: "String",
auth_code: "String",
transaction_datetime: "String",
transaction_currency: "String",
transaction_amount: "String",
transaction_confirmation_method: "String",
bank_name: "String",
transaction_crn: "String",
}| Название поля | Тип данных | Описание |
|---|---|---|
| bic | O, String | БИК банка |
| unp | O, String | УНП |
| terminal_id | O, String | Идентификатор терминала |
| mercant_id | O, String | Идентификатор мерчанта |
| transaction_uuid_acquirer_bank | O, String | UUID транзакции в банке-эквайере |
| transaction_uuid_arm_cashier | O, String | UUID транзакции в АРМ кассира |
| transaction_rrn | R, String | Retrieval Reference Number (RRN) |
| card_check_number | O, String | Контрольный номер карты |
| transaction_type | O, String | Тип транзакции |
| transaction_status | R, String | Статус транзакции |
| transaction_status_message | O, String | Детализация статуса/ошибки |
| processing_response_code | O, String | Код ответа процессинга |
| masked_card_number | O, String | Маскированный номер карты |
| payment_system | O, String | Платёжная система |
| type_card_reader | O, String | Тип кард-ридера |
| card_application_ID | O, String | Идентификатор приложения карты (AID) |
| auth_code | O, String | Код авторизации |
| transaction_datetime | O, String | Дата и время транзакции |
| transaction_currency | O, String | Валюта транзакции |
| transaction_amount | R, String(C) | Сумма транзакции |
| transaction_confirmation_method | O, String | Метод подтверждения |
| bank_name | O, String | Название банка-эквайера |
| transaction_crn | O, String | Customer Reference Number (CRN) |
Для данного запроса параметр is_print не отправляется. Всегда имеет значение true.
Методические указания к запросу
Параметр is_call_bank_soft запроса /settings/bankSetting не влияет на данный запрос.
Параметр is_print_second_bank_check запроса /settings/bankSetting не влияет на данный запрос.
Параметр is_combined_bank_check запроса /settings/bankSetting не влияет на данный запрос.
[POST] http://{ip адрес}:(порт)/bank/closeShift
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{}HTTP/1.1 201 Created
{
status: "String",
}| Название поля | Тип данных | Описание |
|---|---|---|
| status | O,String | Статус операции |
Для данного запроса отсутствует параметр is_print
[GET] http://{ip адрес}:(порт)/bank/lastOperations
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{}HTTP/1.1 200 OK
{
bank_card_check: [
{
type: "String",
bic: "String",
unp: "String",
terminal_id: "String",
mercant_id: "String",
transaction_uuid_acquirer_bank: "String",
transaction_uuid_arm_cashier: "String",
transaction_rrn: "String",
card_check_number: "String",
transaction_type: "String",
transaction_status: "String",
transaction_status_message: "String",
processing_response_code: "String",
masked_card_number: "String",
payment_system: "String",
type_card_reader: "String",
card_application_ID: "String",
auth_code: "String",
transaction_datetime: "String",
transaction_currency: "String",
transaction_amount: "String",
transaction_confirmation_method: "String",
bank_name: "String",
transaction_crn: "String",
},
],
}| Название поля | Тип данных | Описание |
|---|---|---|
| bank_card_check | R, object[] | Список банковских чеков |
| | > type | R, String | Тип банковского документа (receipt, refund, cancel) |
| | > bic | O, String | БИК банка |
| | > unp | O, String | УНП |
| | > terminal_id | O, String | Идентификатор терминала |
| | > mercant_id | O, String | Идентификатор мерчанта |
| | > transaction_uuid_acquirer_bank | O, String | UUID транзакции в банке-эквайере |
| | > transaction_uuid_arm_cashier | O, String | UUID транзакции в АРМ кассира |
| | > transaction_rrn | R, String | Retrieval Reference Number (RRN) |
| | > card_check_number | O, String | Контрольный номер карты |
| | > transaction_type | O, String | Тип транзакции |
| | > transaction_status | R, String | Статус транзакции |
| | > transaction_status_message | O, String | Детализация статуса/ошибки |
| | > processing_response_code | O, String | Код ответа процессинга |
| | > masked_card_number | O, String | Маскированный номер карты |
| | > payment_system | O, String | Платёжная система |
| | > type_card_reader | O, String | Тип кард-ридера |
| | > card_application_ID | O, String | Идентификатор приложения карты (AID) |
| | > auth_code | O, String | Код авторизации |
| | > transaction_datetime | O, String | Дата и время транзакции |
| | > transaction_currency | O, String | Валюта транзакции |
| | > transaction_amount | R, String(C) | Сумма транзакции |
| | > transaction_confirmation_method | O, String | Метод подтверждения |
| | > bank_name | O, String | Название банка-эквайера |
| | > transaction_crn | O, String | Customer Reference Number (CRN) |
Запрос предназначен для очистки списка последних банковских операций.
Для данного запроса отсутствует параметр is_print
[DELETE] http://{ip адрес}:(порт)/bank/clearLastOperations
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{}{}HTTP/1.1 204 No Content
Для данного запроса параметр is_print не отправляется. Всегда имеет значение true.
Важно Данный запрос не предназначен для интеграции через терминальный режим, используется при интеграции клиентского приложения напрямую с ПКС для исключения самостоятельной интеграции с принтером. Для получения копий документов при интеграции с терминальным режимом, используейте /copyDocument
[POST] http://{ip адрес}:(порт)/printDocument
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
document_type: "String",
document: {},
}| Название поля | Обязательное поле Тип данных |
Описание |
|---|---|---|
| document_type | R, String | Тип документа. Возможные значения: receipt - платежный документrefund - документ возвратаcancel - документ аннулированияwithdraw - документ изъятияdeposit - документ внесения |
| document | R, object | Тело ответа полученное от ПКС |
HTTP/1.1 201 Created
{}Для данного запроса параметр is_print не отправляется. Всегда имеет значение true.
[POST] http://{ip адрес}:(порт)/printBlocks
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
print_blocks: [
"String"
],
}| Название поля | Обязательное поле Тип данных |
Описание |
|---|---|---|
| print_blocks | R, String[] | Список печатаемых строк |
HTTP/1.1 201 Created
{}Запрос предназначен для печати QR-кода, содержащего ссылку на сервис поиска чеков. Для данного запроса параметр
is_print не отправляется.
[POST] http://{ip адрес}:(порт)/printShortDocument
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
"document_number": 10,
"document_type": "receipt"
}| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
document_number |
integer |
да | Номер кассового документа |
document_type |
String |
да | Тип кассового документа. Возможные значения: receipt — платежный документrefund — документ возврата |
HTTP/1.1 201 Created
{}Запрос предназначен для обновления токена авторизации при активной сессии в приложении Терминальный режим (когда на экране терминальный режим отображаются цифры ip адреса устройства)
[POST] http://{ip адрес}:(порт)/auth/refreshToken
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
pin: "String",
}| Название поля | Обязательное поле Тип данных |
Описание |
|---|---|---|
| pin | R, String[] | Пин код для входа в приложение Терминальный Режим |
HTTP/1.1 204 No Content
Параметры ответа отсутствуют
[GET] http://{ip адрес}:(порт)/infoLastDocument/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{}Параметры запроса: отсутствуют
HTTP/1.1 200 OK
В зависимости от типа документа
В зависимости от типа документа
[GET] http://{ip адрес}:(порт)/infoUser/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{}{
cashier: {
name: "String",
surname: "String",
patronymic: "String",
phone: "String",
username: "String",
is_active: true,
created_at: "String",
last_action_time: "String",
note: "String",
identificator: "String",
},
cashbox: {
business_entity: "String",
unp: "String",
cashier: [
"String"
],
account_number: 0,
to_name: "String",
address: "String",
cashbox_model: "String",
register_date: "String",
deregister_date: "String",
tsok_date: "String",
sko_info: "String",
withdrawal_date: "String",
certificate_start_date: "String",
certificate_end_date: "String",
note: "String",
current_amount: "String",
shift: {
number: 0,
open_datetime: "String",
close_datetime: "String",
},
block: {
is_blocked: "boolean",
block_start_datetime: "String",
block_end_datetime: "String",
block_reason: 0,
block_reason_verbose: "String",
},
},
base_value: "String",
}| Название поля | Тип данных | Описание |
|---|---|---|
| cashier | object | |
| | > name | String | Имя maxLength: 255 minLength: 1 |
| | > surname | String | Фамилия maxLength: 255 minLength: 1 |
| | > patronymic | String | Отчество maxLength: 255 minLength: 1 |
| | > phone | String | Телефон maxLength: 255 minLength: 1 |
| | > username | String | Логин maxLength: 255 minLength: 1 |
| | > is_active | boolean | Признак активности |
| | > created_at | String | Дата создания (YYYY-MM-DD) |
| | > last_action_time | String | Время последней активности (YYYY-MM-DDTHH:MM:SS) |
| | > note | String | Примечание |
| | > identificator | String | Идентификатор кассира maxLength: 16 minLength: 1 |
| cashbox | object | |
| | > business_entity | String | Наименование СПД |
| | > unp | String | УНП maxLength: 16 minLength: 1 |
| | > cashier | String[] | Кассиры ) |
| | > account_number | integer | Учетный номер |
| | > to_name | String | Наименование торговой точки |
| | > address | String | Адрес торговой точки |
| | > cashbox_model | String | Модель ПК |
| | > register_date | String | Дата постановки на учёт ПК в АИС ККО (YYYY-MM-DD) |
| | > deregister_date | String | Дата снятия с учёта ПК в АИС ККО (YYYY-MM-DD) |
| | > tsok_date | String | Дата выпуска (снаряжения) ТСОК в СККО (YYYY-MM-DD) |
| | > sko_info | String | Сведения о СКО |
| | > withdrawal_date | String | Дата снятия с учёта в АИС ЭЧ (YYYY-MM-DD) |
| | > certificate_start_date | String | Начало ТСОК (YYYY-MM-DDTHH:MM:SS) |
| | > certificate_end_date | String | Завершение ТСОК (YYYY-MM-DDTHH:MM:SS) |
| | > note | String | Примечание |
| | > current_amount | String(C9) | Текущая сумма денег в кассе<br |
| | > shift | object | |
| | | > number | integer | Номер смены |
| | | > open_datetime | String | Дата и время открытия смены (YYYY-MM-DDTHH:MM:SS) |
| | | > close_datetime | String | Дата и время закрытия смены (YYYY-MM-DDTHH:MM:SS) |
| | > block | object | |
| | | > is_blocked | boolean | Блокировка |
| | | > block_start_datetime | String | Дата и время начала блокировки (YYYY-MM-DDTHH:MM:SS) |
| | | > block_end_datetime | String | Дата и время окончания блокировки (YYYY-MM-DDTHH:MM:SS) |
| | | > block_reason | integer | Причина блокировки |
| | | > block_reason_verbose | String | Причина блокировки (описание) |
| base_value | String | Значение базовой величины |
[GET] http://{ip адрес}:(порт)/infoCheckByUid/?request_uid=<request_uid>
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}Query:
request_uid: "String"
{}| Название поля | Тип данных | Описание |
|---|---|---|
| Query параметры | ||
| request_uid | String | Request_uid операции R |
HTTP/1.1 200 OK
В зависимости от типа документа
В зависимости от типа документа
Для данного запроса отсутствует параметр is_print
[POST] http://{ip адрес}:(порт)/infoGetMarkType/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
code: "String",
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| code | R, String | Код маркировки по которому требуется определить его тип |
HTTP/1.1 201 Created
{
type: "String",
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| type | R, String | Возможные значения в ответе: «si» - Средство идентификации; «ukz» - Унифицированный контрольный знак; «not_km» - Не определен как код маркировки |
[GET] http://{ip адрес}:(порт)/infoUserSectionList/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{}{
sections: [
{
name: "String",
number: 0,
},
],
}| Название поля | Тип данных | Описание |
|---|---|---|
| sections | object[] | |
| | > name | String | Название секции |
| | > number | integer | Номер секции |
[POST] http://{ip адрес}:(порт)/shift/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
is_print: true,
cashier_software_code: "String",
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| cashier_software_code | O, String | Код программного обеспечения кассира, каждому интегратору присваивается индивидуально |
| is_print | O, boolean | Вывод чека на принтер:true - печататьfalse – не печатать |
HTTP/1.1 201 Created
{
cashier_software_code: "String",
model_device_designation: "String",
bank_software_code: "String",
os_version: "String",
open_datetime: "String",
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| open_datetime | R, String | Дата и время открытия смены |
| cashier_software_code | R, String | Код программного обеспечения кассира, каждому интегратору присваивается индивидуально |
| model_device_designation | R, String | Модель устройство, осуществляющего запросы в ПКС |
| os_version | R, String | Версия операционной системы устройства, осуществляющего щапросы в ПКС |
| bank_software_code | R, String | Код банковского ПО |
[POST] http://{ip адрес}:(порт)/deposit
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
is_print: true,
request_uid: "String",
currency: "String",
amount: "String"
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| is_print | O, boolean | Вывод чека на принтер: true -печатать, false – не печатать |
| request_uid | R, String | Уникальный идентификатор кассовой операции |
| currency | R, String | Наименование (код) валюты. Допустимые значения: [ BYN] |
| amount | R, String(C9) | Сумма внесения |
HTTP/1.1 201 Created
{
current_amount: "String",
request_uid: "String",
document_number: 0,
issued_at: "String",
currency: "String",
amount: "String",
unique_code: "String",
cashier_identificator: "String",
cashier_login: "String",
account_number: 0,
printer_fiscal_error: {
code: "String",
message: "String",
},
}| Название поля | Обязательность, Тип данных | Описание |
|---|---|---|
| current_amount | R, String(C9) | Текущая сумма наличных средств в кассе |
| request_uid | R, String | Уникальный идентификатор кассовой операции maxLength: 36 minLength: 1 |
| document_number | R, integer | Номер операции |
| issued_at | R, String (YYYY-MM-DDTHH:MM:SS) | Дата и время формирования документа |
| currency | R, String | Валюта (BYN) |
| amount | O, String(C9) | Сумма внесения |
| unique_code | R, String | Уникальный идентификатор операции в разрезе кассы maxLength: 24 minLength: 1 |
| cashier_identificator | R, String | Идентификатор кассира maxLength: 16 minLength: 1 |
| cashier_login | R, String | Логин кассира |
| account_number | R, integer | Учетный номер кассы |
| printer_fiscal_error | O, object[] | Ошибки печати фискальных документов |
| | > code | R, String | Код ошибки |
| | > message | R, String | Сообщение об ошибке |
[POST] http://{ip адрес}:(порт)/withdraw
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
is_print: true,
request_uid: "String",
currency: "String",
amount: "String",
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| is_print | O, boolean | Вывод чека на принтер: true -печатать, false – не печатать |
| request_uid | R, String | Уникальный идентификатор кассовой операции |
| currency | R, String | Наименование (код) валюты. Допустимые значения: [ BYN] |
| amount | R, String(C9) | Сумма внесения |
HTTP/1.1 201 Created
{
current_amount: "String",
request_uid: "String",
document_number: 0,
issued_at: "String",
currency: "String",
amount: "String",
unique_code: "String",
cashier_identificator: "String",
cashier_login: "String",
account_number: 0,
printer_fiscal_error: {
code: "String",
message: "String",
},
}| Название поля | Обязательность, Тип данных | Описание |
|---|---|---|
| current_amount | R, String(C9) | Текущая сумма наличных средств в кассе |
| request_uid | R, String | Уникальный идентификатор кассовой операции maxLength: 36 minLength: 1 |
| document_number | R, integer | Номер операции |
| issued_at | R, String (YYYY-MM-DDTHH:MM:SS) | Дата и время формирования документа |
| currency | R, String | Валюта (BYN) |
| amount | O, String(C9) | Сумма изъятия |
| unique_code | R, String | Уникальный идентификатор операции в разрезе кассы maxLength: 24 minLength: 1 |
| cashier_identificator | R, String | Идентификатор кассира maxLength: 16 minLength: 1 |
| cashier_login | R, String | Логин кассира |
| account_number | R, integer | Учетный номер кассы |
| printer_fiscal_error | O, object[] | Ошибки печати фискальных документов |
| | > code | R, String | Код ошибки |
| | > message | R, String | Сообщение об ошибке |
Методические указания к запросу
Если параметр is_call_bank_soft запроса /settings/bankSetting установлен false, вызов банковского ПО осуществлен *
не
будет*, массив bank_card_check при оплате картой может заполняться интегратором, для формирования чека в ПКС с
оплатой
по нескольким банковским картам. Для получения данных для заполнения массива, необходимо осуществить оплату через запрос
/bank/payment и сохранить в клиентском приложении тело ответа, для последующего заполнения массива bank_card_check
запроса receipt. Важное уточнение: суммы внутри массива bank_card_check не валидируются с суммами основного запроса
receipt не валидируется на стороне Терминального режима, валидация сумм находится на стороне клиентского (
управляющего)
приложения
Если параметр is_print_second_bank_check запроса /settings/bankSetting установлен false, при вызове оплаты на
терминале
и получении успешного ответа от ПКС, банковский чек(чек для банка) будет печататься в одном экземпляре, а не в двух как
при стандартном поведении программы.
Если параметр is_combined_bank_check запроса /settings/bankSetting установлен true, при получении ответа от ПКС, при
этом is_call_bank_soft = true (Банковская операция вызывалась на терминале во время запроса), Терминальный режим, в
случае наличия не пустого массива bank_card_check будет печатать банковские чеки(чек для клиента) совмещенные с
кассовым
чеком. Если при этом is_print_second_bank_check установлен false - то банковский чек отдельно от кассового
печататься не
будет.
Вне зависимости от параметров запроса /settings/bankSetting массив bank_card_check будет передаваться в ответах от
Терминального режима (при наличии массива в ответе от ПКС) начиная с версии 1.3.0
[POST] http://{ip адрес}:(порт)/receipt
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
is_print: true,
send_email: "String",
request_uid: "String",
currency: "String",
deposit_amount: "String",
card_amount: "String",
cash_amount: "String",
another_amount: "String",
positions: [
{
name: "String",
tag: 0,
amount_unit: "String",
amount: "String",
count: "String(F)",
change_percent: "String(F)",
change_amount: "String",
tax: {
tax_code: "String",
tax_percent: "String(F)",
tax_amount_unit: "String",
},
article: "String",
gtin: "String",
section_number: 0,
section_name: "String",
si_code: "String",
ukz_code: "String",
scan1_code: "String",
scan2_code: "String",
},
],
another_amount_types: [
{
type: "String",
code: "String",
amount: "String",
},
],
third_part_unp: "String",
change_amount: "String",
change_percent: "String(F)",
bank_card_check: [
{
bic: "String",
unp: "String",
terminal_id: "String",
mercant_id: "String",
transaction_uuid_acquirer_bank: "String",
transaction_uuid_arm_cashier: "String",
transaction_rrn: "String",
card_check_number: "String",
transaction_type: "String",
transaction_status: "String",
transaction_status_message: "String",
processing_response_code: "String",
masked_card_number: "String",
payment_system: "String",
type_card_reader: "String",
card_application_ID: "String",
auth_code: "String",
transaction_datetime: "String",
transaction_currency: "String",
transaction_amount: "String",
transaction_confirmation_method: "String",
bank_name: "String",
transaction_crn: "String",
},
],
epos_uuid_arm: "String",
with_cash_advance: true,
header: [
"String"
],
footer: [
"String"
],
operating_mode: [
"String"
],
}| Название поля | Обязательность, Тип данных | Описание |
|---|---|---|
| is_print | O, boolean | Вывод чека на принтер: true -печатать, false – не печатать |
| send_email | O, String | Email, на который будет направлен платежный документ |
| request_uid | R, String | Уникальный идентификатор кассовой операции maxLength: 36 minLength: 1 |
| currency | R, String | Наименование (код) валюты. Допустимые значения: [ BYN,EUR,USD,RUB] |
| deposit_amount | R, String(C) | Внесено наличными |
| card_amount | R, String(C) | Итого безналичными |
| cash_amount | R, String(C) | Итого наличными |
| another_amount | R, String(C) | Итого иными способами оплаты |
| positions | R, object[] | Список позиций |
| | > name | R, String | Наименование позиции |
| | > tag | R, integer | Метка Возможные значения: 0-без gtin, 1-gtin, 3-услуга, 4 – авансовый способ платежа |
| | > gtin | R, String | 0 - если GTIN товара отсутствует; в обратном случае значение maxLength: 14 minLength: 1 |
| | > amount_unit | R, String(C) | Цена за единицу товара |
| | > amount | R, String(C) | Сумма позиции без учета скидки/надбавки |
| | > count | R, F3,3 | Количество |
| | > change_percent | O, F3,2 | Скидка/надбавка на позицию в процентном выражении[1] |
| | > change_amount | R, String(C) | Сумма скидки/надбавки на позицию в денежном выражении |
| | > tax | O, object[] | Список налогов для позиции |
| | | > tax_code | O, String | Код ставки налога для позиции платежного |
| | | > tax_percent | R, F3,2 | Процент налога[2] |
| | | > tax_amount_unit | R, String(C) | Сумма налога за единицу товара[3] |
| | > article | O, String | Артикул |
| | > section_number | O, integer | Номер секции товара maxLength: 255 minLength: 1 |
| | > section_name | O, String | Наименование секции товара |
| | > si_code | O, String | Код маркировки СИ maxLength: 256 minLength: 1 |
| | > ukz_code | O, String | Код УКЗ maxLength: 64 minLength: 1 |
| | > scan1_code | O, String | Код маркировки 1 maxLength: 256 minLength: 1 |
| | > scan2_code | O, String | Код маркировки 2 maxLength: 64 minLength: 1 |
| another_amount_types | O, object[] | Список иных способов оплаты ❗Небходимо указывать в случае, если another_amount ≠ 0.00. Допускается отправка пустого массива [] |
| | > type | R, String | Вид оплаты |
| | > code | R, String | Код оплаты |
| | > amount | R, String(C) | Сумма |
| third_part_unp | O, String | УНП третьего лица |
| change_amount | R, String(C) | Сумма скидки/наценки по платежному документу |
| change_percent | O, F3,2 | Процент скидки/наценки по платежному документу[1] |
| epos_uuid_arm | O, String | Уникальный идентификатор транзакции EPOS АРМ кассира. В формате UUIDv4 |
| bank_card_check | O, object[] | Список банковских чеков |
| | > bic | O, String | БИК банка |
| | > unp | O, String | УНП |
| | > terminal_id | O, String | Идентификатор терминала |
| | > mercant_id | O, String | Идентификатор мерчанта |
| | > transaction_uuid_acquirer_bank | O, String | UUID транзакции в банке-эквайере |
| | > transaction_uuid_arm_cashier | O, String | UUID транзакции в АРМ кассира |
| | > transaction_rrn | R, String | Retrieval Reference Number (RRN) |
| | > card_check_number | O, String | Контрольный номер карты |
| | > transaction_type | O, String | Тип транзакции |
| | > transaction_status | R, String | Статус транзакции |
| | > transaction_status_message | O, String | Детализация статуса/ошибки |
| | > processing_response_code | O, String | Код ответа процессинга |
| | > masked_card_number | O, String | Маскированный номер карты |
| | > payment_system | O, String | Платёжная система |
| | > type_card_reader | O, String | Тип кард-ридера |
| | > card_application_ID | O, String | Идентификатор приложения карты (AID) |
| | > auth_code | O, String | Код авторизации |
| | > transaction_datetime | O, String | Дата и время транзакции |
| | > transaction_currency | O, String | Валюта транзакции |
| | > transaction_amount | R, String(C) | Сумма транзакции |
| | > transaction_confirmation_method | O, String | Метод подтверждения |
| | > bank_name | O, String | Название банка-эквайера |
| | > transaction_crn | O, String | Customer Reference Number (CRN) |
| O, boolean | ||
| header | O, String[] | Информация, которая будет напечатана над кассовым документом. Каждая элемент - новая строка на печати. Максимальная длина: 64 |
| footer | O, String[] | Информация, которая будет напечатана под кассовым документом. Каждая элемент - новая строка на печати. Максимальная длина: 64 |
| operating_mode | O, String[] | Режим работы торгового объекта, контактные данные (телефон) и другое Передается набор строк maxLength: 64 minLength: 1 |
[1] Указывается в случае наличия скидки или надбавки на позицию. В случае
отправки change_percent, необходимо так же отправлять change_amount вычисленный локально в управляющем
приложении, для исключения расхождений сумм..
[2] Процент налога обязателен, если указан tax.
[3] tax_amount_unit вычисляется на стороне управляющего приложения;.
HTTP/1.1 201 Created
{
positions_count: 0,
request_uid: "String",
currency: "String",
deposit_amount: "String",
card_amount: "String",
cash_amount: "String",
another_amount: "String",
positions: [
{
name: "String",
tag: 0,
amount_unit: "String",
amount: "String",
fee: "String",
count: "String(F)",
change_percent: "String(F)",
change_amount: "String",
tax: {
tax_code: "String",
tax_percent: "String(F)",
tax_amount_unit: "String",
},
article: "String",
gtin: "String",
section_number: 0,
section_name: "String",
marking_status: 0,
si_code: "String",
ukz_code: "String",
scan1_code: "String",
scan2_code: "String",
},
],
another_amount_types: [
{
type: "String",
code: "String",
amount: "String",
},
],
third_part_unp: "String",
cashier_identificator: "String",
cashier_login: "String",
amount: "String",
total_amount: "String",
change_amount: "String",
change_percent: "String(F)",
change: "String",
discount_amount: "String",
increase_amount: "String",
total_change_amount: "String",
document_number: 0,
issued_at: "String",
unique_code: "String",
account_number: 0,
cancel_operation: {
document_number: 0,
issued_at: "String",
},
transaction_rrn: "String",
bank_card_check: [
{
bic: "String",
unp: "String",
terminal_id: "String",
mercant_id: "String",
transaction_uuid_acquirer_bank: "String",
transaction_uuid_arm_cashier: "String",
transaction_rrn: "String",
card_check_number: "String",
transaction_type: "String",
transaction_status: "String",
transaction_status_message: "String",
processing_response_code: "String",
masked_card_number: "String",
payment_system: "String",
type_card_reader: "String",
card_application_ID: "String",
auth_code: "String",
transaction_datetime: "String",
transaction_currency: "String",
transaction_amount: "String",
transaction_confirmation_method: "String",
bank_name: "String",
transaction_crn: "String",
},
],
epos_uuid_arm: "String",
with_cash_advance: true,
header: [
"String"
],
footer: [
"String"
],
operating_mode: [
"String"
],
tax_list: [
"String"
],
printer_fiscal_error: {
code: "String",
message: "String",
},
error_send_to_email: {
code: "String",
message: "String",
},
printer_bank_error: {
code: "String",
message: "String",
},
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| positions_count | R, integer | Количество позиций реализуемых товаров(маркированных и немаркированных) в платежном документе |
| request_uid | R, String | Уникальный идентификатор кассовой операции maxLength: 36 minLength: 1 |
| currency | R, String | Наименование (код) валюты |
| deposit_amount | R, String(C) | Внесено наличными |
| card_amount | R, String(C) | Итого безналичными |
| cash_amount | R, String(C) | Итого наличными |
| another_amount | R, String(C) | Итого иными способами оплаты |
| positions (Список позиций) | R, object[] | Список позиций (каждая позиция описана ниже) |
| | > name | R, String | Наименование позиции |
| | > tag | R, integer | Метка Возможные значения: 0-без gtin, 1-gtin, 3-услуга, 4 – авансовый способ платежа. |
| | > amount_unit | R, String(C) | Цена за единицу товара |
| | > amount | R, String(C) | Сумма позиции без учета скидки/надбавки |
| | > fee | R, String(C) | Сумма позиции с учетом скидки/надбавки |
| | > count | R, F3,3 | Количество |
| | > change_percent | R, F3,2 | Скидка/надбавка на позицию в процентном выражении |
| | > change_amount | R, String(C) | Сумма скидки/надбавки на позицию в денежном выражении |
| | > tax | O, object[] | Список налогов для позиции (каждый налог описан ниже) |
| | | > tax_code | O, String | Код ставки налога для позиции платежного |
| | | > tax_percent | R, F3,2 | Процент налога |
| | | > tax_amount_unit | R, String(C) | Сумма налога |
| | > article | O, String | Артикул |
| | > gtin | R, String | 0 - если GTIN товара отсутствует; в обратном случае значение, которое может содержать от 1 до 14 символов |
| | > section_number | O, integer | Номер секции товара maxLength: 255 minLength: 1 |
| | > section_name | O, String | Наименование секции товара |
| | > marking_status[4] | R, integer | Marking status |
| | > si_code | O, String | Код маркировки СИ maxLength: 256 minLength: 1 |
| | > ukz_code | O, String | Код УКЗ maxLength: 64 minLength: 1 |
| | > scan1_code | O, String | Код маркировки 1 maxLength: 256 minLength: 1 |
| | > scan2_code | O, String | Код маркировки 2 maxLength: 64 minLength: 1 |
| another_amount_types | O, object[] | Список иных способов оплаты (каждый способ оплаты описан ниже). |
| | > type | O, String | Вид оплаты |
| | > code | O, String | Код оплаты |
| | > amount | O, String(C) | Сумма |
| third_part_unp | R, String | УНП третьего лица |
| cashier_identificator | R, String | Идентификатор кассира maxLength: 16 minLength: 1 |
| cashier_login | R, String | Логин кассира |
| amount | R, String(C) | Сумма позиций с учетом скидки/надбавки по позициям |
| total_amount | R, String(C) | Итого к оплате (Сумма к оплате с учётом всех скидок/надбавок: по чеку и по позициям) |
| change_amount | R, String(C) | Сумма скидки/надбавки по платежному документу |
| change_percent | R, F3,2 | Процент скидки/наценки по платежному документу |
| change | R, String(C) | Сдача |
| discount_amount | R, String(C) | Сумма скидки |
| increase_amount | R, String(C) | Сумма надбавки |
| total_change_amount | R, String(C) | Сумма скидки/надбавки по позициям и скидки на чек (итоговая скидка) |
| document_number | R, integer | Номер операции |
| issued_at | R, YYYY-MM-DDTHH:MM:SS | Дата и время формирования документа |
| unique_code | R, String | Уникальный идентификатор платежной операции в разрезе кассы maxLength: 24 minLength: 1 |
| account_number | R, integer | Учетный номер кассы |
| cancel_operation | R, object[] | Список отмененных операций (каждая операция отмены описана ниже) |
| | > document_number | O, integer | Номер операции |
| | > issued_at | O, YYYY-MM-DDTHH:MM:SS | Дата и время формирования документа |
| transaction_rrn | R, String | Уникальный номер транзакции в банке |
| epos_uuid_arm | R, String | Уникальный идентификатор транзакции EPOS АРМ кассира. |
| with_cash_advance | O, boolean | |
| header | O, String[] | Передается набор строк maxLength: 64 minLength: 1 |
| footer | O, String[] | Передается набор строк maxLength: 64 minLength: 1 |
| operating_mode | O, String[] | Режим работы торгового объекта, контактные данные (телефон) и другое Передается набор строк maxLength: 64 minLength: 1 |
| tax_list | R, String[] | Итоговая информация об НДС |
| bank_card_check | O, object[] | Список банковских чеков |
| | > bic | O, String | БИК банка |
| | > unp | O, String | УНП |
| | > terminal_id | O, String | Идентификатор терминала |
| | > mercant_id | O, String | Идентификатор мерчанта |
| | > transaction_uuid_acquirer_bank | O, String | UUID транзакции в банке-эквайере |
| | > transaction_uuid_arm_cashier | O, String | UUID транзакции в АРМ кассира |
| | > transaction_rrn | R, String | Retrieval Reference Number (RRN) |
| | > card_check_number | O, String | Контрольный номер карты |
| | > transaction_type | O, String | Тип транзакции |
| | > transaction_status | R, String | Статус транзакции |
| | > transaction_status_message | O, String | Детализация статуса/ошибки |
| | > processing_response_code | O, String | Код ответа процессинга |
| | > masked_card_number | O, String | Маскированный номер карты |
| | > payment_system | O, String | Платёжная система |
| | > type_card_reader | O, String | Тип кард-ридера |
| | > card_application_ID | O, String | Идентификатор приложения карты (AID) |
| | > auth_code | O, String | Код авторизации |
| | > transaction_datetime | O, String | Дата и время транзакции |
| | > transaction_currency | O, String | Валюта транзакции |
| | > transaction_amount | R, String(C) | Сумма транзакции |
| | > transaction_confirmation_method | O, String | Метод подтверждения |
| | > bank_name | O, String | Название банка-эквайера |
| | > transaction_crn | O, String | Customer Reference Number (CRN) |
| printer_fiscal_error (Ошибки печати фискальных документов) | O, object[] | Список ошибок печати фискальных документов (каждая ошибка описана ниже) |
| | > code | R, String | Код ошибки |
| v message | R, String | Сообщение об ошибке |
| error_send_to_email (Ошибки отправки документов на почту) | O, object[] | Список ошибок отправки документов на почту (каждая ошибка описана ниже) |
| | > code | R, String | Код ошибки |
| | > message | R, String | Сообщение об ошибке |
| printer_bank_error (Ошибки печати банковского чека) | O, object[] | Список ошибок печати банковских чеков |
| | > code | R, String | Код ошибки |
| | > message | R, String | Сообщение об ошибке |
[4] Статус маркировки товара. Возможные значения:. 0- Нет: si_code, ukz_code, scan1_code, scan2_code (поле Tag - 0, 3, 4); 16- Нет: si_code, ukz_code, scan1_code, scan2_code (поле Tag – 1); 17- Содержит: si_code (поле Tag – 1); 18- Содержит: ukz_code (поле Tag – 1); 19- Содержит: si_code, ukz_code (поле Tag – 1); 20- Содержит: scan1_code (поле Tag – 1); 28- Содержит: scan1_code, scan2_code (поле Tag – 1)
Методические указания к запросу
Если параметр is_call_bank_soft запроса /settings/bankSetting установлен false, вызов банковского ПО осуществлен не
будет, массив bank_card_check при оплате картой может заполняться интегратором, для формирования чека в ПКС с
возвратом по нескольким банковским картам. Для получения данных для заполнения массива, необходимо осуществить возврат
через запрос /bank/refund и сохранить в клиентском приложении тело ответа, для последующего заполнения массива
bank_card_check запроса refund. Важное уточнение: суммы внутри массива bank_card_check не валидируются с суммами
основного запроса refund не валидируется на стороне Терминального режима, валидация сумм находится на стороне
клиентского (управляющего) приложения
Если параметр is_print_second_bank_check запроса /settings/bankSetting установлен false, при вызове возврата на
терминале и получении успешного ответа от ПКС, банковский чек(чек для банка) будет печататься в одном экземпляре, а не в
двух как при стандартном поведении программы.
Если параметр is_combined_bank_check запроса /settings/bankSetting установлен true, при получении ответа от ПКС, при
этом is_call_bank_soft = true (Банковская операция вызывалась на терминале во время запроса), Терминальный режим, в
случае наличия не пустого массива bank_card_check будет печатать банковские чеки(чек для клиента) совмещенные с кассовым
чеком. Если при этом is_print_second_bank_check установлен false - то банковский чек отдельно от кассового печататься не
будет.
Вне зависимости от параметров запроса /settings/bankSetting массив bank_card_check будет передаваться в ответах от
Терминального режима (при наличии массива в ответе от ПКС) начиная с версии 1.3.0
[POST] http://{ip адрес}:(порт)/refund
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
is_print: true,
send_email: "String",
transaction_rrn: "String",
request_uid: "String",
positions: [
{
name: "String",
tag: 0,
amount_unit: "String",
amount: "String",
count: "String(F)",
article: "String",
gtin: "String",
section_number: 0,
section_name: "String",
si_code: "String",
ukz_code: "String",
scan1_code: "String",
scan2_code: "String",
},
],
currency: "String",
amount: "String",
card_amount: "String",
cash_amount: "String",
another_amount: "String",
another_amount_types: [
{
type: "String",
code: "String",
amount: "String",
},
],
bank_card_check: [
{
bic: "String",
unp: "String",
terminal_id: "String",
mercant_id: "String",
transaction_uuid_acquirer_bank: "String",
transaction_uuid_arm_cashier: "String",
transaction_rrn: "String",
card_check_number: "String",
transaction_type: "String",
transaction_status: "String",
transaction_status_message: "String",
processing_response_code: "String",
masked_card_number: "String",
payment_system: "String",
type_card_reader: "String",
card_application_ID: "String",
auth_code: "String",
transaction_datetime: "String",
transaction_currency: "String",
transaction_amount: "String",
transaction_confirmation_method: "String",
bank_name: "String",
transaction_crn: "String",
},
],
header: [
"String"
],
footer: [
"String"
],
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| is_print | O, boolean | Вывод чека на принтер: true -печатать, false – не печатать |
| send_email | O, String | Email, на который будет направлен платежный документ |
| transaction_rrn[5] | O, String | RRN банковской операции |
| request_uid | R, String | Уникальный идентификатор кассовой операции maxLength: 36 minLength: 1 |
positions |
R, object[] | |
| | > name | R, String | Наименование позиции |
| | > tag | R, integer | Метка Возможные значения: 0 - без GTIN, 1 - GTIN, 3 - услуга, 4 - авансовый способ платежа. |
| | > amount_unit | R, String(C) | Цена за единицу товара |
| | > amount | R, String(C) | Сумма позиции без учета скидки/надбавки |
| | > count | R, F3,3 | Количество |
| | > article | O, String | Артикул |
| | > gtin | R, String | 0 - если GTIN товара отсутствует; в противном случае значение, которое может содержать от 1 до 14 символов |
| | > section_number | O, integer | Номер секции товара maxLength: 255 minLength: 1 |
| | > section_name | O, String | Наименование секции товара |
| | > si_code | O, String | Код маркировки СИ maxLength: 256 minLength: 1 |
| | > ukz_code | O, String | Код УКЗ maxLength: 64 minLength: 1 |
| | > scan1_code | O, String | Код маркировки 1 maxLength: 256 minLength: 1 |
| | > scan2_code | O, String | Код маркировки 2 maxLength: 64 minLength: 1 |
| currency | R, String | Наименование (код) валюты. Допустимые значения: [ BYN,EUR,USD,RUB] |
| amount | R, String(C) | Сумма возврата |
| card_amount | R, String(C) | Сумма возврата по безналичному расчету |
| cash_amount | R, String(C) | Сумма возврата наличными |
| another_amount | R, String(C) | Сумма возврата по безналичному расчету - другими способами расчета |
another_amount_types |
O, object[] | Список иных способов оплаты ❗Небходимо указывать в случае, если another_amount ≠ 0.00. Допускается отправка пустого массива [] |
| | > type | O, String | Вид оплаты |
| | > code | O, String | Код оплаты |
| | > amount | O, String(C) | Сумма |
bank_card_check |
O, object[] | Список банковских чеков |
| | > bic | O, String | БИК банка |
| | > unp | O, String | УНП |
| | > terminal_id | O, String | Идентификатор терминала |
| | > mercant_id | O, String | Идентификатор мерчанта |
| | > transaction_uuid_acquirer_bank | O, String | UUID транзакции в банке-эквайере |
| | > transaction_uuid_arm_cashier | O, String | UUID транзакции в АРМ кассира |
| | > transaction_rrn | R, String | Retrieval Reference Number (RRN) |
| | > card_check_number | O, String | Контрольный номер карты |
| | > transaction_type | O, String | Тип транзакции |
| | > transaction_status | R, String | Статус транзакции |
| | > transaction_status_message | O, String | Детализация статуса/ошибки |
| | > processing_response_code | O, String | Код ответа процессинга |
| | > masked_card_number | O, String | Маскированный номер карты |
| | > payment_system | O, String | Платёжная система |
| | > type_card_reader | O, String | Тип кард-ридера |
| | > card_application_ID | O, String | Идентификатор приложения карты (AID) |
| | > auth_code | O, String | Код авторизации |
| | > transaction_datetime | O, String | Дата и время транзакции |
| | > transaction_currency | O, String | Валюта транзакции |
| | > transaction_amount | R, String(C) | Сумма транзакции |
| | > transaction_confirmation_method | O, String | Метод подтверждения |
| | > bank_name | O, String | Название банка-эквайера |
| | > transaction_crn | O, String | Customer Reference Number (CRN) |
| header | O, String[] | Информация, которая будет напечатана над кассовым документом. Каждая элемент - новая строка на печати. Максимальная длина: 64 |
| footer | O, String[] | Информация, которая будет напечатана под кассовым документом. Максимальная длина: 64 |
[5] Значение в это поле обязательно передавать, если возврат осуществляется на карту (card_amount ≠ 0).
HTTP/1.1 201 Created
{
request_uid: "String",
positions: [
{
name: "String",
tag: "integer",
gtin: "String",
amount_unit: "float",
amount: "float",
count: "float",
article: "String",
section_number: "integer",
section_name: "String",
marking_status: "integer",
si_code: "String",
ukz_code: "String",
scan1_code: "String",
scan2_code: "String",
},
],
currency: "String",
amount: "float",
card_amount: "float",
cash_amount: "float",
another_amount: "float",
another_amount_types: [
{
type: "String",
code: "String",
amount: "float",
},
],
transaction_rrn: "String",
header: [
"String"
],
footer: [
"String"
],
document_number: "integer",
issued_at: "String",
unique_code: "String",
cashier_identificator: "String",
cashier_login: "String",
account_number: "integer",
bank_card_check: [
{
bic: "String",
unp: "String",
terminal_id: "String",
mercant_id: "String",
transaction_uuid_acquirer_bank: "String",
transaction_uuid_arm_cashier: "String",
transaction_rrn: "String",
card_check_number: "String",
transaction_type: "String",
transaction_status: "String",
transaction_status_message: "String",
processing_response_code: "String",
masked_card_number: "String",
payment_system: "String",
type_card_reader: "String",
card_application_ID: "String",
auth_code: "String",
transaction_datetime: "String",
transaction_currency: "String",
transaction_amount: "String",
transaction_confirmation_method: "String",
bank_name: "String",
transaction_crn: "String",
},
],
printer_fiscal_error: {
code: "String",
message: "String",
},
error_send_to_email: {
code: "String",
message: "String",
},
printer_bank_error: {
code: "String",
message: "String",
},
}Методические указания к запросу
Если параметр is_call_bank_soft запроса /settings/bankSetting установлен false, вызов банковского ПО осуществлен не
будет.
Если параметр is_combined_bank_check запроса /settings/bankSetting установлен true, при получении ответа от ПКС, при
этом is_call_bank_soft = true (Банковская операция вызывалась на терминале во время запроса), Терминальный режим, в
случае наличия не пустого массива bank_card_check будет печатать банковские чеки(чек для клиента) совмещенные с кассовым
чеком. Если при этом is_print_second_bank_check установлен false - то банковский чек отдельно от кассового печататься не
будет.
Вне зависимости от параметров запроса /settings/bankSetting массив bank_card_check будет передаваться в ответах от
Терминального режима (при наличии массива в ответе от ПКС) начиная с версии 1.3.0
[POST] http://{ip адрес}:(порт)/cancelLastDocument/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
is_print: true,
request_uid: "String",
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| is_print | O, boolean | Вывод чека на принтер: true -печатать, false – не печатать |
| request_uid | R, String | Уникальный идентификатор кассовой операции maxLength: 36 minLength: 1 |
HTTP/1.1 201 Created
{
request_uid: "String",
document_number: 0,
issued_at: "String",
unique_code: "String",
cashier_identificator: "String",
cashier_login: "String",
account_number: 0,
currency: "String",
amount: "String",
card_amount: "String",
cash_amount: "String",
another_amount_types: [
{
type: "String",
code: "String",
amount: "String",
},
],
another_amount: "String",
positions: [
{
name: "String",
tag: 0,
amount_unit: "String",
amount: "String",
fee: "String",
count: "String(F)",
change_percent: "String(F)",
change_amount: "String",
tax: {
tax_code: "String",
tax_percent: "String(F)",
tax_amount_unit: "String",
},
article: "String",
gtin: "String",
section_number: 0,
section_name: "String",
marking_status: 0,
si_code: "String",
ukz_code: "String",
scan1_code: "String",
scan2_code: "String",
},
],
cancel_doc_number: 0,
transaction_rrn: "String",
bank_card_check: [
{
bic: "String",
unp: "String",
terminal_id: "String",
mercant_id: "String",
transaction_uuid_acquirer_bank: "String",
transaction_uuid_arm_cashier: "String",
transaction_rrn: "String",
card_check_number: "String",
transaction_type: "String",
transaction_status: "String",
transaction_status_message: "String",
processing_response_code: "String",
masked_card_number: "String",
payment_system: "String",
type_card_reader: "String",
card_application_ID: "String",
auth_code: "String",
transaction_datetime: "String",
transaction_currency: "String",
transaction_amount: "String",
transaction_confirmation_method: "String",
bank_name: "String",
transaction_crn: "String",
},
],
printer_fiscal_error: {
code: "String",
message: "String",
},
error_send_to_email: {
code: "String",
message: "String",
},
printer_bank_error: {
code: "String",
message: "String",
},
}[POST] http://{ip адрес}:(порт)/copyDocument/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
is_print: true,
send_email: "String",
document_number: 0,
document_type: "String",
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| is_print | O, boolean | Вывод чека на принтер:true - печататьfalse – не печатать |
| send_email | O, String | Email для отправки копии документа (разрешено только для типов: receipt и refund) |
| document_number | R, integer | Номер документа |
| document_type | R, String | Тип документа. Возможные значения: receipt - платежный документrefund - документ возвратаcancel - документ аннулированияwithdraw - документ изъятияdeposit - документ внесенияzreport - Z-отчет |
HTTP/1.1 201 Created
В зависимости от типа документа
В зависимости от типа документа.
[POST] http://{ip адрес}:(порт)/xreport/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
is_print: true,
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| is_print | O, boolean | Вывод чека на принтер: true -печатать, false – не печатать |
HTTP/1.1 200 OK
{
unp: "String",
shift_open_datetime: "String",
issued_at: "String",
document_number: 0,
document_count: 0,
first_receipt_number: 0,
last_receipt_number: 0,
first_document_number: 0,
last_document_number: 0,
currency_count: 0,
unique_code: "String",
parts: [
{
currency: "String",
documents_count: 0,
amount: "String",
card_amount: "String",
cash_amount: "String",
another_amount: "String",
another_amount_types: "String",
refunds_count: 0,
refunds_amount: "String",
deposit_count: 0,
deposit_amount: "String",
withdraw_count: 0,
withdraw_amount: "String",
cash_advance_count: 0,
cash_advance_amount: "String",
cancels_count: 0,
cancels_amount: "String",
corrections_count: 0,
corrections_amount: "String",
unregistred_cancels_count: 0,
unregistred_cancels_amount: "String",
marking_codes: {
si_count: 0,
si_amount: "String",
ukz_count: 0,
ukz_amount: "String",
refund_si_count: 0,
refund_ukz_count: 0,
cancel_si_count: 0,
cancel_ukz_count: 0,
},
additional_info: 0,
additional_info_data: {
third_part_data: {
receipts_count: 0,
receipts_amount: "String",
cancels_count: 0,
cancels_amount: "String",
},
},
section_report: [
{
checks: {
count: 0,
amount: "String",
cash_amount: "String",
card_amount: "String",
another_amount: "String",
},
refunds: {
count: 0,
amount: "String",
cash_amount: "String",
card_amount: "String",
another_amount: "String",
},
cancels: {
count: 0,
amount: "String",
cash_amount: "String",
card_amount: "String",
another_amount: "String",
},
section_name: "String",
section_number: 0,
},
],
},
],
cashier_identificator: "String",
cashier_login: "String",
account_number: 0,
current_amount: "String",
cumulative_total: "String",
printer_fiscal_error: {
code: "String",
message: "String",
},
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| unp | R, String | УНП |
| shift_open_datetime | R, YYYY-MM-DDTHH:MM:SS | Дата и время открытия смены |
| issued_at | R, YYYY-MM-DDTHH:MM:SS | Дата и время формирования отчёта |
| document_number | R, integer | Порядковый номер X-отчета |
| document_count | R, integer | Кол-во платежных документов в отчете |
| first_receipt_number | R, integer | Номер первого платежного документа (чека продажи) |
| last_receipt_number | R, integer | Номер последнего платежного документа (чека продажи) |
| first_document_number | R, integer | Номер первого кассового документа за смену |
| last_document_number | R, integer | Номер последнего кассового документа за смену |
| currency_count | R, integer | Кол-во валют |
| unique_code | R, String | Уникальный идентификатор платежной операции в разрезе кассы maxLength: 24 minLength: 1 |
parts (Количество элементов в списке соответствует количеству валют): |
R, object[] | |
| | > currency | R, String | Наименование (код) валюты |
| | > documents_count | R, integer | Количество платежных документов по валюте |
| | > amount | R, String(C12) | Сумма |
| | > card_amount | R, String(C12) | Сумма безналичными |
| | > cash_amount | R, String(C12) | Сумма наличными |
| | > another_amount | R, String(C12) | Итого иными способами оплаты |
| > another_amount_types |
O, object[] | Отсутствует в ответе, если нет оплат иными способами |
| | | > type | O, String | Вид оплаты |
| | | > code | O, String | Код оплаты |
| | | > amount | O, String | Сумма |
| | > refunds_count | R, integer | Количество возвратов |
| | > refunds_amount | R, String | Сумма по возвратам |
| | > deposit_count | R, String(C) | Количество внесений |
| | > deposit_amount | R, integer | Сумма внесений |
| | > withdraw_count | R, String(C12) | Количество изъятий |
| | > withdraw_amount | R, integer | Сумма изъятий |
| | > cash_advance_count | R, String(C12) | Количество изъятий для выдачи денег держателям платёжных карточек |
| | > cash_advance_amount | R, integer | Сумма изъятий для выдачи денег держателям платёжных карточек |
| | > cancels_count | R, String(C12) | Количество аннулирований |
| | > cancels_amount | R, integer | Сумма аннулирований |
| | > corrections_count | R, String(C12) | Количество коррекций |
| | > corrections_amount | R, integer | Сумма коррекций |
| | > unregistred_cancels_count | R, String(C12) | Количество отмен |
| | > unregistred_cancels_amount | R, integer | Сумма отмен |
| > ** marking_codes:** |
||
| | | > si_count | R, integer | Количество единиц товаров, маркированных СИ, реализованных за смену |
| | | > si_amount | R, String(C12) | Общая сумма продаж товаров, маркированных СИ, реализованных за смену |
| | | > ukz_count | R, integer | Количество единиц товаров, маркированных УКЗ, реализованных за смену |
| | | > ukz_amount | R, String(C12) | Общая сумма продаж маркированных УКЗ товаров, реализованных за смену |
| | | > refund_si_count | R, integer | Количество единиц товаров, маркированных СИ, возвращенных за смену |
| | | > refund_ukz_count | R, integer | Количество единиц товаров, маркированных УКЗ, возвращенных за смену |
| | | > cancel_si_count | R, integer | Количество единиц товаров, маркированных СИ, аннулированных за смену |
| | | > cancel_ukz_count | R, integer | Количество единиц товаров, маркированных УКЗ, аннулированных за смену |
| | > additional_info | R, integer | |
| > additional_info_data (third_part_data) O (блок отсутствует в ответе, если нет платежей в адрес третьих лиц): |
O, object[] | |
| | | > receipts_count | R, integer | Количество платежей в адрес третьих лиц |
| | | > receipts_amount | R, String(C12) | Сумма платежей в адрес третьих лиц |
| | | > cancels_count | R, integer | Количество аннулирований приемов платежей в адрес третьих лиц |
| | | > cancels_amount | R, String(C12) | Сумма аннулирований приемов платежей в адрес третьих лиц |
| > section_report |
R, object[] | Отчет по секциям [6] |
| | | > checks | O, object | Чеки продажи в заданной секции |
| | | | > count | O, integer | Количество чеков продажи |
| | | | > amount | O, String(C10) | Сумма чеков продажи |
| | | | > cash_amount | O, String(C10) | Сумма оплат наличными по секции |
| | | | > card_amount | O, String(C10) | Сумма оплат по карте по секции |
| | | | > another_amount | O, String(C10) | Сумма другими способами оплат по секции |
| | | > refunds | O, object | Чеки возвратов в заданной секции |
| | | | > count | O, integer | Количество чеков возврата |
| | | | > amount | O, String(C10) | Сумма чеков возврата |
| | | | > cash_amount | O, String(C10) | Сумма возвратов наличными по секции |
| | | | > card_amount | O, String(C10) | Сумма возвратов по карте по секции |
| | | | > another_amount | O, String(C10) | Сумма другими способами возвратов по секции |
| | | > cancels | O, object | Чеки аннулирований в заданной секции |
| | | | > count | O, integer | Количество чеков ааннулирований |
| | | | > amount | O, String(C10) | Сумма чеков аннулирований |
| | | | > cash_amount | O, String(C10) | Сумма аннулирований наличными по секции |
| | | | > card_amount | O, String(C10) | Сумма аннулирований по карте по секции |
| | | | > another_amount | O, String(C10) | Сумма другими способами аннулирований по секции |
| | | > section_name | O, String | Имя секции в ПКС |
| | | > section_number | O, integer | Номер секции в пКС |
| cashier_identificator | R, String | Идентификатор кассира maxLength: 16 minLength: 1 |
| cashier_login | R, String | Логин кассира |
| account_number | R, integer | Учетный номер кассы |
| current_amount | R, String(C9) | Текущая сумма денежных средств в кассе |
| cumulative_total | R, String(C9) | Сумма всех чеков в кассе |
printer_fiscal_error |
O, object[] | Ошибки печати фискальных документов |
| | > code | R, String | Код ошибки |
| | > message | R, String | Сообщение об ошибке |
[POST] http://{ip адрес}:(порт)/zreport
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
is_print: true,
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| is_print | O, boolean | Вывод чека на принтер: true -печатать, false – не печатать |
HTTP/1.1 201 Created
{
unp: "String",
shift_open_datetime: "String",
issued_at: "String",
document_number: 0,
document_count: 0,
first_receipt_number: 0,
last_receipt_number: 0,
first_document_number: 0,
last_document_number: 0,
currency_count: 0,
unique_code: "String",
parts: [
{
currency: "String",
documents_count: 0,
amount: "String",
card_amount: "String",
cash_amount: "String",
another_amount: "String",
another_amount_types: [
{
type: "String",
code: "String",
amount: "String",
},
],
refunds_count: 0,
refunds_amount: "String",
deposit_count: "String(F)",
deposit_amount: 0,
withdraw_count: "String(F)",
withdraw_amount: 0,
cash_advance_count: "String(F)",
cash_advance_amount: 0,
cancels_count: "String(F)",
cancels_amount: "String",
corrections_count: "String(F)",
corrections_amount: "String",
unregistred_cancels_count: "String(F)",
unregistred_cancels_amount: "String",
marking_codes: {
si_count: 0,
si_amount: "String",
ukz_count: 0,
ukz_amount: "String",
refund_si_count: 0,
refund_ukz_count: 0,
cancel_si_count: 0,
cancel_ukz_count: 0,
},
additional_info: 0,
additional_info_data: {
third_part_data: {
receipts_count: 0,
receipts_amount: "String",
cancels_count: 0,
cancels_amount: "String",
},
},
section_report: [
{
checks: {
count: 0,
amount: "String",
cash_amount: "String",
card_amount: "String",
another_amount: "String",
},
refunds: {
count: 0,
amount: "String",
cash_amount: "String",
card_amount: "String",
another_amount: "String",
},
cancels: {
count: 0,
amount: "String",
cash_amount: "String",
card_amount: "String",
another_amount: "String",
},
section_name: "String",
section_number: 0,
},
],
},
],
cashier_identificator: "String",
cashier_login: "String",
account_number: 0,
current_amount: "String",
cumulative_total: "String",
printer_fiscal_error: {
code: "String",
message: "String",
},
printer_bank_error: {
code: "String",
message: "String",
},
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| unp | R, String | УНП |
| shift_open_datetime | R, YYYY-MM-DDTHH:MM:SS | Дата и время открытия смены |
| issued_at | R, YYYY-MM-DDTHH:MM:SS | Дата и время формирования отчёта |
| document_number | R, integer | Порядковый номер X-отчета |
| document_count | R, integer | Кол-во платежных документов в отчете |
| first_receipt_number | R, integer | Номер первого платежного документа (чека продажи) |
| last_receipt_number | R, integer | Номер последнего платежного документа (чека продажи) |
| first_document_number | R, integer | Номер первого кассового документа за смену |
| last_document_number | R, integer | Номер последнего кассового документа за смену |
| currency_count | R, integer | Кол-во валют |
| unique_code | R, String | Уникальный идентификатор платежной операции в разрезе кассы maxLength: 24 minLength: 1 |
parts (Количество элемент в списке соответствует количеству валют): |
||
| | > currency | R, String | Наименование (код) валюты |
| | > documents_count | R, integer | Количество платежных документов по валюте |
| | > amount | R, String(C12) | Сумма |
| | > card_amount | R, String(C12) | Сумма безналичными |
| | > cash_amount | R, String(C12) | Сумма наличными |
| | > another_amount | R, String(C12) | Итого иными способами оплаты |
| > another_amount_types |
O, object[] | Отсутствует в ответе, если нет оплат иными способами |
| | | > type | O, String | Вид оплаты |
| | | > code | O, String | Код оплаты |
| | | > amount | O, String | Сумма |
| | > refunds_count | R, integer | Количество возвратов |
| | > refunds_amount | R, String | Сумма по возвратам |
| | > deposit_count | R, String(C) | Количество внесений |
| | > deposit_amount | R, integer | Сумма внесений |
| | > withdraw_count | R, String(C12) | Количество изъятий |
| | > withdraw_amount | R, integer | Сумма изъятий |
| | > cash_advance_count | R, String(C12) | Количество изъятий для выдачи денег держателям платёжных карточек |
| | > cash_advance_amount | R, integer | Сумма изъятий для выдачи денег держателям платёжных карточек |
| | > cancels_count | R, String(C12) | Количество аннулирований |
| | > cancels_amount | R, integer | Сумма аннулирований |
| | > corrections_count | R, String(C12) | Количество коррекций |
| | > corrections_amount | R, integer | Сумма коррекций |
| | > unregistred_cancels_count | R, String(C12) | Количество отмен |
| | > unregistred_cancels_amount | R, integer | Сумма отмен |
| > marking_codes: |
||
| | | > si_count | R, integer | Количество единиц товаров, маркированных СИ, реализованных за смену |
| | | > si_amount | R, String(C12) | Общая сумма продаж товаров, маркированных СИ, реализованных за смену |
| | | > ukz_count | R, integer | Количество единиц товаров, маркированных УКЗ, реализованных за смену |
| | | > ukz_amount | R, String(C12) | Общая сумма продаж маркированных УКЗ товаров, реализованных за смену |
| | | > refund_si_count | R, integer | Количество единиц товаров, маркированных СИ, возвращенных за смену |
| | | > refund_ukz_count | R, integer | Количество единиц товаров, маркированных УКЗ, возвращенных за смену |
| | | > cancel_si_count | R, integer | Количество единиц товаров, маркированных СИ, аннулированных за смену |
| | | > cancel_ukz_count | R, integer | Количество единиц товаров, маркированных УКЗ, аннулированных за смену |
| | > additional_info | R, integer | |
| > additional_info_data (отсутствует в ответе, если нет платежей в адрес третьих лиц): |
O, object | |
| | | > receipts_count additional_info | R, integer | Количество платежей в адрес третьих лиц |
| | | > receipts_amount | R, String(C12) | Сумма платежей в адрес третьих лиц |
| | | > cancels_count | R, integer | Количество аннулирований приемов платежей в адрес третьих лиц |
| | | > cancels_amount | R, String(C12) | Сумма аннулирований приемов платежей в адрес третьих лиц |
| > section_report |
R, object[] | Отчет по секциям [6] |
| | | > checks | O, object | Чеки продажи в заданной секции |
| | | | > count | O, integer | Количество чеков продажи |
| | | | > amount | O, String(C10) | Сумма чеков продажи |
| | | | > cash_amount | O, String(C10) | Сумма оплат наличными по секции |
| | | | > card_amount | O, String(C10) | Сумма оплат по карте по секции |
| | | | > another_amount | O, String(C10) | Сумма другими способами оплат по секции |
| | | > refunds | O, object | Чеки возвратов в заданной секции |
| | | | > count | O, integer | Количество чеков возврата |
| | | | > amount | O, String(C10) | Сумма чеков возврата |
| | | | > cash_amount | O, String(C10) | Сумма возвратов наличными по секции |
| | | | > card_amount | O, String(C10) | Сумма возвратов по карте по секции |
| | | | > another_amount | O, String(C10) | Сумма другими способами возвратов по секции |
| | | > cancels | O, object | Чеки аннулирований в заданной секции |
| | | | > count | O, integer | Количество чеков ааннулирований |
| | | | > amount | O, String(C10) | Сумма чеков аннулирований |
| | | | > cash_amount | O, String(C10) | Сумма аннулирований наличными по секции |
| | | | > card_amount | O, String(C10) | Сумма аннулирований по карте по секции |
| | | | > another_amount | O, String(C10) | Сумма другими способами аннулирований по секции |
| | | > section_name | O, String | Имя секции в ПКС |
| | | > section_number | O, integer | Номер секции в пКС |
| cashier_identificator | R, String | Идентификатор кассира maxLength: 16 minLength: 1 |
| cashier_login | R, String | Логин кассира |
| account_number | R, integer | Учетный номер кассы |
| current_amount | R, String(C9) | Текущая сумма денежных средств в кассе |
| cumulative_total | R, String(C9) | Сумма всех чеков в кассе |
printer_fiscal_error |
O, object[] | Ошибки печати фискальных документов |
| | > code | R, String | Код ошибки |
| | > message | R, String | Сообщение об ошибке |
printer_bank_error (Ошибки печати банковского чека) |
O, object[] | Список ошибок печати банковских чеков |
| | > code | R, String | Код ошибки |
| | > message | R, String | Сообщение об ошибке |
[6] Отчет по секциям заполняется при отправке section_number в запросах /receipt и /refund, для формирования отчета, в личном кабинете пользователя необходимо создать секции, которые в последсвтиеи и будут отправляться из управляющего приложения. Если номер секции отсутствует в ПКС - то отчет по этой секции сформирован не будет, section_name для отправки не обязателен, т.к. имяя секции будет выбрано из ПКС.
[POST] http://{ip адрес}:(порт)//zreport/controlTape
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
is_print: true,
document_number: 1
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| is_print | O, boolean | Вывод чека на принтер: true -печатать, false – не печатать |
| document_number | R, int | Номер документа z-отчет для получения контрольной ленты по смене |
{
zreport_number: 1,
shift_open_datetime: "String",
issued_at: "String",
documents: [
{
type_document: "String",
document_number: 1,
issued_at: "String",
total_amount: "String",
cash_amount: "String",
card_amount: "String",
another_amount: "String",
another_amount_types: [
{
type: "String",
code: "String",
amount: "String",
},
],
cashier_identificator: "String",
unique_code: "String",
},
],
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| zreport_number | R, integer | Номер Z-отчета |
| shift_open_datetime | R, String (YYYY-MM-DDTHH:MM:SS) | Дата и время открытия смены |
| issued_at | R, String (YYYY-MM-DDTHH:MM:SS) | Дата и время формирования документа |
documents |
R, object[] | Список документов, зарегистрированных в смене |
| | > type_document | R, String | Тип документа |
| | > document_number | R, integer | Номер документа |
| | > issued_at | R, String (YYYY-MM-DDTHH:MM:SS) | Дата и время формирования документа |
| | > total_amount | R, String(C9) | Общая сумма по документу |
| | > cash_amount | R, String(C9) | Сумма наличными |
| | > card_amount | R, String(C9) | Сумма оплаты картой |
| | > another_amount | R, String(C9) | Сумма иными способами оплаты |
| > another_amount_types |
O, object[] | Детализация иных способов оплаты |
| | | > type | R, String | Тип оплаты |
| | | > code | R, String | Код типа оплаты |
| | | > amount | R, String(C9) | Сумма данного типа оплаты |
| | > cashier_identificator | R, String | Идентификатор кассира |
| | > unique_code | R, String | Уникальный идентификатор документа |
| printer_fiscal_error | O, object[] | Ошибки печати фискальных документов |
| | > code | R, String | Код ошибки |
| | > message | R, String | Сообщение об ошибке |
При авторизации программная касса получает идентификатор своего тарифа, этим запросом можно узнать является ли тариф для кассы расширенным. Идентификатор расширенного тарифа для тестовой зоны - 11. Идентификатор расширенного тарифа для прод зоны - 8
[GET] http://{ip адрес}:(порт)/tariffId/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{}{
id: 0,
}| Название поля | Тип данных | Описание |
|---|---|---|
| id | integer | Идентификатор тарифа для кассы |
Для данного запроса отсутствует параметр is_print
[POST] http://{ip адрес}:(порт)/markChecker/markTypes/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
codes: [
'String'
],
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| codes | R, String[] | Массив строк, список кодов маркировки для проверки |
HTTP/1.1 200 OK
{
codes: [
{
code: "String",
resultTime: 0,
valid: true,
found: true,
markedGoodsStatus: 1,
status: {
code: 0,
operationDate: "String",
note: "String",
},
type: {
code: 0,
value: "String",
},
group: "String",
gtin: "String",
tnved: "String",
name: "String",
snomer: "String",
lotNumber: "String",
productWeight: "String",
makeDate: "String",
expirationDate: "String",
import: true,
markMethod: {
code: "String",
value: "String",
},
},
],
}| Название поля | Обязательность, тип данных | Описание |
|---|---|---|
| codes | R, object[] | Массив, содержащий результаты проверки по каждому КМ |
| | > code | R, String | КМ, подлежащий проверке |
| | > resultTime | R, integer | Момент времени формирования результата проверки в системе маркировки |
| | > valid | R, boolean | Признак подтверждения проверки (форматно-логического контроля) структуры и криптографической защиты КМ: true – подтверждено; false – не подтверждено |
| | > found | R, boolean | Признак легальности КМ, т.е. подтверждения оператором Республики Беларусь подлинности КМ и наличия сведений в системе маркировки о нанесении или вводе оборот: true – подтверждено; false – не подтверждено |
| | > markedGoodsStatus | O, integer | Актуальный статус маркированного товара на территории Республики Беларусь: 1 - в обороте 2 - не в обороте |
| | > status | O, object | Текущий статус КМ в системе маркировки Республики Беларусь [9] |
| | | > code | O, integer | Код статуса |
| | | > operationDate | O, String | Дата и время выполнения операции в системе маркировки (установки статуса). |
| | | > note | O, String | Наименование статуса |
| | > type | O, object | Тип кода [8] |
| | | > code | O, integer | Код типа кода |
| | | > value | O, String | Наименование типа кода |
| | > group | O, String | Код товарной группы [7] |
| | > gtin | O, String | GTIN товара |
| | > tnved | O, String | Код ТН ВЭД ЕАЭС |
| | > name | O, String | Наименование товара. |
| | > snomer | O, String | Серия и номер БСО. |
| | > lotNumber | O, String | Номер партии |
| | > productWeight | O, String | Переменный вес |
| | > makeDate | O, String | Дата изготовления (производства). |
| | > expirationDate | O, String | Дата истечения срока годности |
| | > import | O, boolean | Признак идентификации КМ, эмитированных в странах-членах ЕАЭС (проверка подлинности КМ осуществлялась в информационной системе страны-члена ЕАЭС): true - подтверждено |
| | > markMethod | O, object | Способ маркировки |
| | | > code | O, String | Код способа маркировки |
| | | > value | O, String | Наименование способа маркировки |
[7] shoes - Обувь
milk - Молочная продукция
tires - Шины и покрышки
perfum - Парфюмерия
clothes - Легкая промышленность
photo - Фотоаппараты и лампы-вспышки
ukz - Товары, подлежащие маркировке УКЗ
water - Вода упакованная
leftovers_shoes - Остатки. Обувь
leftovers_tires - Остатки. Шины
leftovers_clothes - Остатки. Товары легкой промышленности
juice - Безалкогольные напитки и соки
animal_feed - Корм для животных
preserves - Консервированная продукция
veterinary_medicines - Лекарственные препараты для ветеринарного применения
dietary_supplements - Биологически активные добавки к пище
oil_fat - Растительные масла и масложировая продукция
grocery - Пищевая продукция (бакалея)
cosmetics - Косметика бытовая химия
caviar - Икра осетровых и икра лососевых
antiseptics - Антисептики и дезинфицирующие средства
bike - Велосипеды и велосипедные рамы
[8] 1 - Знак защиты (17 х 18)
2 - Код агрегации (Datamatrix)
3 - Защищенный материальный носитель (34 х 17)
4 - Защищенный материальный носитель (147 х 99)
5 - Серийный номер
6 - Код агрегации (SSCC)
7 - Код стран ЕАЭС идентификации товара
8 - Знак защиты, содержащий код идентификации (17 х 18)
9 - Защищенный товарный ярлык (64 х 53)
10 - Код РБ идентификации ювелирных изделий
11 - Стикер, содержащий код идентификации (1718)
12 - Код РБ идентификации молочной продукции
13 - Код агрегации (импорт)
14 - Серийный номер для молочной продукции
15 - Серийный номер (Фототовары)
16 - Код стран ЕАЭС идентификации товара (Фототовары)
17 - Унифицированный контрольный знак (1818)
18 - Стикер, содержащий средство идентификации (18*18)
19 - Знак защиты (18 х 10)
20 - Код РБ идентификации товара (обувь, шины, легкая промышленность)
21 - Защищённый материальный носитель с нанесенным средством идентификации, 28x30 мм
22 - Код РБ идентификации лекарственных препаратов
23 - Средство идентификации лекарственных препаратов на материальном носителе
24 - Код РБ идентификации телефонов и машин вычислительных
25 - Защищенный материальный носитель с нанесенным средством идентификации (25 х 47)
26 - Защищенный материальный носитель с нанесенным средством идентификации (18 х 18)
[9] 0 - Сгенерирован
10 - Заказ кодов
15 - Выдан код
20 - Изготовлен
30 - Валидирован
40 - Подписан РФ
45 - Импортирован
50 - Промаркирован товар
52 - Транзитный товар
55 - Введен в оборот в РБ
60 - Прибыл из-за границы
80 - Реализован в розничной торговле
88 - Реализован. Интернет-торговля
90 - Выбыл за границу
200 - Недействительно. Списан
Для данного запроса отсутствует параметр is_print
[POST] http://{ip адрес}:(порт)/markChecker/gtins/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
"gtins": [
"String"
]
}| Название поля | Тип / Обязательность | Описание |
|---|---|---|
gtins |
String[] (обязательный) |
Массив строк, содержащий список GTIN для проверки |
HTTP/1.1 200 OK
{
gtins: [
{
gtin: "String",
error_message: "String",
found: true,
info: [
{
group: "String",
name: "String",
is_markable: 0,
},
],
},
],
}| Название поля | Тип / Обязательность | Описание |
|---|---|---|
gtins |
object[], (опционально) |
Массив с результатами проверки по каждому переданному значению GTIN товара |
├─ gtin |
String (обязательно) |
GTIN товара |
├─ error_message |
String (опционально) |
Сообщение об ошибке (при наличии) |
├─ found |
boolean (опционально) |
Статус наличия в системе:true - найденfalse - отсутствует |
└─ info |
object[], (опционально) |
Результат проверки GTIN. Содержит перечень экземпляров с кратким описанием товаров. |
| Поле | Тип / Обязательность | Описание |
|---|---|---|
group |
String (опционально) |
Товарная группа [10] Если не определена — false |
name |
String (опционально) |
Наименование товара |
is_markable |
integer (опционально) |
Признак маркировки в РБ:1 — подлежит маркировке2 — не подлежит3 — группа не определена |
[10] shoes - Обувь
milk - Молочная продукция
tires - Шины и покрышки
perfum - Парфюмерия
clothes - Легкая промышленность
photo - Фотоаппараты и лампы-вспышки
ukz - Товары, подлежащие маркировке УКЗ
water - Вода упакованная
leftovers_shoes - Остатки. Обувь
leftovers_tires - Остатки. Шины
leftovers_clothes - Остатки. Товары легкой промышленности
juice - Безалкогольные напитки и соки
animal_feed - Корм для животных
preserves - Консервированная продукция
veterinary_medicines - Лекарственные препараты для ветеринарного применения
dietary_supplements - Биологически активные добавки к пище
oil_fat - Растительные масла и масложировая продукция
grocery - Пищевая продукция (бакалея)
cosmetics - Косметика бытовая химия
caviar - Икра осетровых и икра лососевых
antiseptics - Антисептики и дезинфицирующие средства
bike - Велосипеды и велосипедные рамы
E-POS от ЕРИП в ПКС «Электронный чек» — это альтернативный способ безналичной оплаты товаров и услуг посредством
сканирования клиентом-покупателем сформированного должным образом QR-кода. Он работает с банковскими картами или
мобильными приложениями.
Оплата по qr коду может выполнена разными способами:
- Отдельное приложение;
- Приложения, встроенные в камеру или мессенджер;
- Мобильное приложение банка.
- Инициировать оплату в сервисе E-POS, создать платежную ссылку. Подробнее.
- Предоставить полученную в ответе на запрос ссылку
payment_linkпользователю в виде QR-кода. Либо предоставить лицевой счет оплаты в системе E-POSpersonal_account. - Дождаться проведение оплаты покупателем.
- Сформировать кассовый платежный документ. Подробнее.
❗ Обязательно передать в полеepos_uuid_armзначениеrequest_uidс которым была инициирована оплата в сервисе E-POS (пункт 1).
Для проверки статуса платежа можно использовать запрос EPOS status by uid. - Получить информацию о платеже в системе E-POS Подробнее.
Получение списка услуг и торговых точек по id производителя услуг. Для данного запроса отсутствует параметр is_print
Метод: GET
URL: http://{ip адрес}:{порт}/epos/services/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}HTTP/1.1 200 OK
{
"services": [
{
"id": 0,
"name": "String"
}
],
"retail_outlets": [
{
"id": 0,
"address": "String",
"name": "String"
}
]
}| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
services |
object[] |
нет | Услуги |
retail_outlets |
object[] |
нет | РТТ |
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
id |
integer |
нет | идентификатор услуги в системе EPOS |
name |
String |
да | наименование услуги |
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
id |
integer |
нет | ID РТТ в системе EPOS |
address |
String |
нет | адрес РТТ |
name |
String |
нет | имя РТТ |
Создание платежной ссылки предназначено для инициализации оплаты в сервисе E-POS. Для данного запроса отсутствует
параметр is_print
Метод: POST
URL: http://{ip адрес}:{порт}/epos/createPaymentLink/
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{
"request_uid": "String",
"amount": "String",
// "25.00"
"service_id": 0,
"retail_outlet_id": 0
}| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
request_uid |
String |
да | ID запроса АРМ кассира в разрезе кассы. |
amount |
String |
да | Сумма к оплате |
service_id |
String |
нет | Идентификатор услуги в системе E-POS |
retail_outlet_id |
String |
нет | Идентификатор РТТ в системе E-POS |
HTTP/1.1 201 Created
{
"request_uid": "String",
"payment_link": "String",
"personal_account": "String",
"status": 0
}| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
request_uid |
String |
да | ID запроса АРМ кассира в разрезе кассы |
payment_link |
String |
да | Платежная ссылка |
personal_account |
String |
да | Лицевой счет оплаты в системе E-POS |
status |
integer |
нет | Статус:0 — Оплата не начата1 — Оплата в процессе2 — Оплата прошла3 — Отмена оплаты |
Запрос предназначен для повторного получения платежной ссылки по request_uid запроса на создание платежной ссылки. Для
данного
запроса отсутствует
параметр is_print
Метод: GET
URL: http://{ip адрес}:{порт}/epos/infoStatusByUid?request_uid={request_uid}
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{}| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
request_uid query |
String |
да | ID запроса АРМ кассира в разрезе кассы. |
HTTP/1.1 200 Ok
{
"request_uid": "String",
"payment_link": "String",
"personal_account": "String",
"status": 0
}| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
request_uid |
String |
да | ID запроса АРМ кассира в разрезе кассы |
payment_link |
String |
да | Платежная ссылка |
personal_account |
String |
да | Лицевой счет оплаты в системе E-POS |
status |
integer |
нет | Статус:0 — Оплата не начата1 — Оплата в процессе2 — Оплата прошла3 — Отмена оплаты |
Запрос возвращает информацию о платеже E-POS.
❗Важно. Запрос успешно пройдет только после создания платежного документа (чека) с указанным request_uid в поле
epos_uuid_arm. Для данного запроса отсутствует параметр is_print
Метод: GET
URL: http://{ip адрес}:{порт}/epos/infoPaymentByUid?request_uid={request_uid}
Headers
{
"Connection": "keep-alive",
"Content-Type": "application/json; charset=utf-8"
}{}| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
request_uid query |
String |
да | ID запроса АРМ кассира в разрезе кассы. |
HTTP/1.1 200 Ok
{
"id": 0,
"epos_uuid_arm": "String",
"unique_code": "String",
"service_name": "String",
"personal_account": "String",
"date": "2025-09-22",
"erip_transaction_id": 0,
"epos_transaction_id": 0,
"amount": "String",
"state": 0
}| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
id |
integer |
да | идентификатор платежа в системе E-POS |
epos_uuid_arm |
String |
да | Уникальный идентификатор транзакции EPOS АРМ кассира |
unique_code |
String |
да | UUID запроса платежной ссылки |
service_name |
String |
да | Наименование услуги |
personal_account |
String |
да | № счёта |
date |
String |
нет | Дата и время |
erip_transaction_id |
integer |
да | Номер операции в ЕРИП |
epos_transaction_id |
integer |
да | Номер операции в EPOS |
amount |
String |
да | Сумма оплаты |
state |
integer |
нет | Статус:0 — Оплата не начата1 — Оплата в процессе2 — Оплата прошла3 — Отмена оплаты |
| Пароль для входа в меню администратора: | 845230 |
|---|