Кассовый сервер предоставляет rest-интерфейс для работы внешних сервисов и приложений. Запросы осуществляются через http-протокол, данные передаются json-сериализованными.

Префикс для rest-интерфейса КС  должен иметь следующий вид: http://<host>:<port>/CSrest/rest/<остальная часть запроса>:

Пример
http://localhost:8080/CSrest/rest/system/info


  • Для получения текущей информации о КС необходимо выполнить запрос типа GET на URL:

    /system/info

    Результат:

    Название поляТипОписаниеПримечания
    versionстрокаверсия кассового сервера
    buildNumberчислономер сборки
    buildDateстрокадата сборки
    commitстрокаверсия проекта в текущий момент времени
    versionREstчисловерсия REST
    dictThreadPoolSizeчислокол-во одновременно выполняемых задач на генерацию справочников
    saleThreadPoolSizeчислокол-во одновременно выполняемых задач на загрузку продаж
    exchangeThreadPoolSizeчислокол-во одновременно выполняемых задач по взаимодействию с кассой
    salerunThreadPoolSizeчислокол-во одновременно выполняемых задач по инициализации выгрузки продаж на кассе
    salesLoadModesмассивБД для загрузки продажДанные получаются из Настроек сервера (подраздел "Продажи")
  • Для получения текущего состояния КС надо выполнить запрос типа GET на URL:

    /system/state

    Результат:

    Название поляТипОписание
    bonusActiveлогическийактивность взаимодействия с бонусным сервером
    licenseManagmentActiveлогическийактивность управления лицензиями
    generateDictionarySchedulerWorkлогическийактивность расписания генерации справочников
    salesSchedulerWorkлогическийактивность расписания загрузки продаж
    dictionaryRunSchedulerWorkлогическийактивность расписания сигналов справочников
    saleRunSchedulerWorkлогическийактивность расписания сигналов справочников
  • Для получения списка магазинов на КС надо выполнить запрос типа GET на URL:

    /shops

    Результатом является коллекция объектов следующего содержания:

    Название поляТипОписание
    idстрокаидентификатор магазина
    titleстрокаотображаемое имя магазина
    clusterIdстрокаидентификатор кластера (если есть)
    exchangeобъектинформация по используемому типу обмена в магазине
    cashesколлекциясписок идентификаторов касс в данном магазине
    parentGroupстроковойидентификатор группы, к которой принадлежит магазин

    Если в качестве GET запроса указать URL:

    /shops/<идентификатор магазина>

    , то результатом будет эта же информация для конкретного магазина.

  • Для получения списка касс на КС надо выполнить запрос типа GET на URL:

    /cashes

    Результатом является коллекция объектов следующего содержания:

    Название поляТипОписание
    idстрокаидентификатор кассы (д.б. уникальным на уровне КС)
    passwordстрокапароль для кассы (не используется)
    clusterIdстрокаидентификатор кластера (если есть)
    ipстрокаip-адрес кассы (может быть задан в виде доменного имени)
    titleстрокаотображаемое имя кассы
    exchangeколлекция объектовинформация по используемым типам обмена в кассе
    cashCodeстрокакод кассы (д.б. уникальным в пределах одного кластера)
    parentShopстрокаидентификатор магазина, к которому принадлежит касса

    Если в качестве GET запроса указать URL:

    /cashes/<идентификатор кассы>

    , то результатом будет эта же информация для конкретной кассы.

  • Для получения списка справочников на КС надо выполнить запрос типа GET на URL:

    /dicts

    Результат:

    Название поляТипОписание
    dictIdстрокаидентификатор справочника
    captionстроканазвание справочника
    classesколлекция строквнутренние названия выгружаемых классов справочников
    КлассОписание
    su.artix.artixinterchange.unload.AgerestrictDictionary.javaВыгрузка возрастных ограничений по процентному содержанию алкоголя
    su.artix.artixinterchange.unload.BarcodeDictionary.javaВыгрузка штрих-кодов
    su.artix.artixinterchange.unload.ButtonDictionary.javaВыгрузка кнопок
    su.artix.artixinterchange.unload.CardDictionary.javaВыгрузка современных карт
    su.artix.artixinterchange.unload.CardGroupDictionary.javaВыгрузка современных групп карт
    su.artix.artixinterchange.unload.CashUserDictionary.javaВыгрузка кассиров
    su.artix.artixinterchange.unload.CatalogDictionary.javaВыгрузка каталогов
    su.artix.artixinterchange.unload.ClientDictionary.javaВыгрузка современных клиентов
    su.artix.artixinterchange.unload.CmactionDictionary.javaВыгрузка действий
    su.artix.artixinterchange.unload.CommandDictionary.javaВыгрузка команд
    su.artix.artixinterchange.unload.CurrencyDictionary.javaВыгрузка валюты
    su.artix.artixinterchange.unload.DeptDictionary.javaВыгрузка отделов
    su.artix.artixinterchange.unload.DiscountKitDictionary.javaВыгрузка комплектов
    su.artix.artixinterchange.unload.DiscSystemDictionary.javaВыгрузка дисконтных систем
    su.artix.artixinterchange.unload.HotKeyDictionary.javaВыгрузка горячих клавиш
    su.artix.artixinterchange.unload.InventGroupDictionary.javaВыгрузка групп товаров
    su.artix.artixinterchange.unload.InventItemDictionary.javaВыгрузка товаров
    su.artix.artixinterchange.unload.InventItemShortDictionary.javaВыгрузка товаров без ограничений и дополнительных цен
    su.artix.artixinterchange.unload.InventItemShortGlobalPricesLocalDictionary.java
    su.artix.artixinterchange.unload.KbKeyDictionary.javaВыгрузка клавиш
    su.artix.artixinterchange.unload.LDiscCardDictionary.javaВыгрузка старых дисконтных карт
    su.artix.artixinterchange.unload.LDiscFixedDictionary.javaВыгрузка старых фиксированных скидок
    su.artix.artixinterchange.unload.LDiscSchemeDictionary.javaВыгрузка старых схем скидок
    su.artix.artixinterchange.unload.LVatDictionary.javaВыгрузка налогов
    su.artix.artixinterchange.unload.MCashUserDictionary.javaВыгрузка старых пользователей
    su.artix.artixinterchange.unload.MacroDictionary.java
    su.artix.artixinterchange.unload.MenuDictionary.javaВыгрузка меню
    su.artix.artixinterchange.unload.PriceDictionary.javaВыгрузка цен
    su.artix.artixinterchange.unload.RoleDictionary.javaВыгрузка ролей
    su.artix.artixinterchange.unload.ShopDictionary.javaВыгрузка магазинов
    su.artix.artixinterchange.unload.TimerestrictDictionary.javaВыгрузка возрастных ограничений по процентному содержанию алкоголя
    su.artix.artixinterchange.unload.TmcrequiredquantityDictionary.java
    su.artix.artixinterchange.unload.TmcvisualverifyDictionary.java
    su.artix.artixinterchange.unload.UnitDictionary.javaВыгрузка единиц измерения
  • Для запуска генерации справочников необходимо отправить запрос типа POST на URL:

    http://<хост>:<порт>/CSrest/rest/v2/treeObjects/unload?

    Параметры запроса:

    НаименованиеТип данныхОписаниеПримечания
    idsстрокаИдентификатор объекта, на котором необходимо запустить генерацию справочников (магазин, касса, категория)


    usernameстрокаЛогин пользователя с кассового сервера


    В теле запроса передается массив объектов, содержащих следующие поля:

    НаименованиеТип данныхВозможные значенияОписаниеПримечания
    dictionaryстрока
    Имя задачи на выгрузку
    unloadingлогический
    • true
    • false
    Флаг полной выгрузкиПри значении true будет произведена полная выгрузка

    Пример запроса на запуск генерации справочников на магазине с id = _shop_1_53cf17d3 с последующей выгрузкой на кассы:

    POST http://192.169.1.200:8080/CSrest/rest/v2/treeObjects/unload?ids=_shop_1_53cf17d3&username=admin
    [ {
    "dictionary": "discount",
    "unloading": true
    } ]
  • Для отправки сигнала на кассу для запуска загрузки справочников необходимо выполнить запрос типа POST на URL:

    http://<хост>:<порт>/cashes/<идентификатор кассы>/dicts/startLoad

    Тело запроса должно быть пустым.

  • Для отправки сигнала на кассу для запуска выгрузки продаж необходимо выполнить запрос типа PUT на URL:

    http://<host>:<port>/CSrest/rest/sales/unload/cashid/{cashId}/kick

    Параметры запроса:

    НаименованиеТип данныхОписаниеПримечания
    cashIdstringИдентификатор кассы, на которую нужно отправить сигнал на выгрузку продаж

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

    При успешном добавлении сигнала возвращается статус HTTP "200". При ошибке возвращается код ошибки.

Для любого планировщика со страницы http://<host>:<port>/CS/CashServerWeb/timetable доступны следующие операции: получить состояние, остановить, запустить.

ЗадачаИзменяемая часть запроса
Расписание сигналы справочникиschedulers/dictionaries
Расписание сигналы продажиschedulers/sales
Расписание генерация справочниковschedulers/generateDictionaries
Трансфер справочникиschedulers/generateTransferDictionaries
Трансфер глобальные справочникиschedulers/generateTransferGlobalDictionaries
Трансфер продажиschedulers/generateTransferSale
Трансфер глобальные продажиschedulers/generateTransferGlobalSale
Трансфер структураschedulers/generateTransferStruct
Трансфер бонусыschedulers/generateTransferBonus
Расписание глобальная генерацияschedulers/generateGlobalDictionaries
Расписание генерация по категориямschedulers/generateCategoryDictionaries
Расписание сигналы весыschedulers/scales
Прогрузка переоценок на весыschedulers/repriceScale
Загрузка продаж в БДschedulers/loadSales
Загрузка продаж из очередиschedulers/loadSalesQueue
Контроль целостности продажschedulers/sales/controlEntirety

Для всех задач, перечисленных выше, для управления ею нужно использовать следующие запросы:

ДействиеЗапросРезультат
Посмотреть состояние задачиGET <общий префикс>/<изменяемая часть запроса>/status

Успешный результат возвращает HTTP-код "200" и строку:

  • "WORKING" – задача запущена,
  • "TERMINATED" – задача остановлена
Поставить задачу на паузуPUT <общий префикс>/<изменяемая часть запроса>/pauseПри успешном запросе возвратиться HTTP-код "200"
Восстановить выполнение задачиPUT <общий префикс>/<изменяемая часть запроса>/resumeПри успешном запросе возвратиться HTTP-код "200"
ЗадачаИзменяемая часть текста
Генерация справочникиhandlers/dictionary
Обмен справочникиhandlers/exchange
Обмен продажиhandlers/sales
Прогрузка весовhandlers/scales

Для всех задач, перечисленных выше, для управления ею нужно использовать следующие запросы:

ДействиеЗапросРезультат
Проверить, что задача на паузеGET <общий префикс>/<изменяемая часть запроса>/pausedУспешный результат возвращает HTTP-код "200" и true, если задача на паузе, иначе будет значение false
Поставить задачу на паузуPUT <общий префикс>/<изменяемая часть запроса>/pauseПри успешном запросе возвратиться HTTP-код "200"
Восстановить выполнение задачиPUT <общий префикс>/<изменяемая часть запроса>/resumeПри успешном запросе возвратиться HTTP-код "200"

При установке состояния задачи неважно, какое состояние было предыдущим.

Для приостановки выполнения задачи "Загрузка продаж в БД" можно выполнить curl-запрос вида:

Пример запроса
curl -I -XPUT "http://localhost:8080/CSrest/rest/schedulers/loadSales/pause

Обработка запросов на поиск чека. Поиск чека ведется по идентификатору и коду магазина.

Для того чтобы получить документ продажи надо выполнить GET запрос на URL:

/sales/document/<identifier>[?shopId=<id магазина>&clusterId=<id кластера>&idType=<тип id документа>]

, где identifier – идентификатор документа, shopId – id магазина, clusterId – id кластера, idType – тип id документа, sourceidentifier – идентификационный номер документа-основания для операций, fiscalidentifier – фискальный идентификатор документа. Параметры shopId, clusterId и idType являются необязательными строковыми параметрами.

Параметр idType может принимать значение:

  • -1 –  по полю sourceidentifier в таблице document,

  • 0 – по полю identifier в таблице document,

  • 1 – по полю fiscalidentifier в таблице document,

  • 2 – по номеру карты клиента, поле number в таблице carditem,

  • 3 – по номеру телефона клиента, поле phone в таблице client

Возможны следующие варианты запросов:

  1. Ни один из параметров shopId и clusterId не указан, тогда поиск документа будет осуществляться в БД documentsAll.
  2. Если указать параметр shopId (id магазина), то поиск документа будет осуществляться в БД documents<номер магазина>.
  3. Магазин находится в кластере, тогда для него необходимо в запросе указать параметр clusterId, при этом:
  • Если shopId указан, то поиск документа будет осуществляться в БД <номер кластера>documents<номер магазина>
  • Если shopId НЕ указан, то поиск документа будет осуществляться в БД  <номер кластера>documentsAll

Результатом запроса будет массив json-объектов, это связано с тем что identifier не является уникальным значением.

Пример объекта
[{
	"documentid":16,
	"cashCode":"13",
	"docNum":2,
	"docType":13,
	"userCode":"4",
	"timeBeg":1425548174000,
	"timeEnd":1425548174000,
	"discPerc":0.00,
	"discAbs":0.00,
	"docSum":15.20,
	"closed":1,
	"sumcash":0.00,
	"baseSum":0.00,
	"modSum":0.00,
	"sum2m":0.00,
	"inventPositions":[],
	"bonusPositions":[],
	"moneyPositions":
	[{
		"userCode":"4",
		"posTime":1425548174000,
		"opCode":44,
		"valCode":1,
		"sumB":15.20,
		"reverseOperation":0,
		"nrate":0.0000,
		"bond":0.0000,
		"bond_quant":0,
		"vsum":15.20,
		"sumn":15.20,
		"sume":15.20,
		"docNum":2,
		"c_link":0,
		"frnum":0,
		"cardnum":""
	}],
	"stornoPositions":[],
	"cardPositions":[],
	"identifier":"333:13:2:2",
	"vatsum":0.00,
	"summode":0,
	"sumtype":0,
	"dateincrement":0,
	"deptCode":0,
	"c_link":0,
	"sumn":15.20,
	"sume":15.20,
	"vbrate":1.0000,
	"verate":1.0000,
	"docSumm":15.20
}]

Статусы акцизных марок

Статусы акцизных марок при совершении кассовых операций могут принимать следующие значения: 

  • 0 – Марка не зарегистрирована в БД,
  • 1 – Товар с такой маркой продан,
  • 2 – Товар с такой маркой возвращен,
  • 3 – Марка зарезервирована в чеке продажи,
  • 4 – Марка снята с резерва в чеке продажи,
  • 5 – Марка зарезервирована в чеке возврата (чеке возврата по чеку продажи),
  • 6 – Марка снята с резерва в чеке возврата (чеке возврата по чеку продажи),
  • 7 – Акцизная марка отсутствует в списке разрешенных к продаже,
  • 8 – Связка кода и алкокода товара отсутствует,
  • 9 – Товар отсутствует на остатке,
  • 10 – Штрих-код для проверки в белом списке не передан,
  • 11 – Соответствие акцизной марки и штрих-кода в белом списке не найдено,
  • 12 – Магазин для проверки остатков не найден,
  • 13 – Штрих-код для проверки остатков не заполнен,
  • 14 – Код товара для проверки остатков не заполнен,
  • 15 – Справочник остатков для товара, по которому проверяем остатки, заполнен не корректно.

Получение статуса акцизной марки

Для получения информации о статусе регистрации акцизной марки нужно выполнить запрос:

  • типа POST на URL:

    http://<host>:<port>/CSrest/rest/sales/exciseMark/status/?doctype=<тип документа>&identifier=<идентификатор чека>[?shopcode=<код магазина>&cashcode=<код кассы>&tmccode=<код товара>&barcode=<штрих-код товара>&additionalexcisemark=<дополнительный штрих-код акцизной марки>&excisetype=<тип акцизной марки>&reserveid=<идентификатор запроса, по которому выполнялось резервирование>]

    Параметры shopcode, cashcode, tmccode, barcode, additionalexcisemark, excisetype, reserveid являются необязательными параметрами.

    Параметры tmccode (код товара), barcode (штрих-код товара), additionalexcisemark (дополнительный штрих-код акцизной марки) используются для проверки наличия связки кода и алкокода акцизных товаров (статус 8).

    При выполнении повторного запроса на резервирование акцизной марки в чеке продажи/возврата будет осуществлена проверка на соответствие идентификатора чека и идентификатора запроса на резервирование акцизной марки (GUID, БД Documents таблица Excisemarks поле reserveid):

    • если идентификатор чека и идентификатор запроса резервирования акцизной марки (GUID) совпадают с соответствующими значениями предыдущего запроса, то статус акцизной марки будет изменен (для чека продажи – статус 4, для чека возврата – статус 6),
    • если идентификатор чека и идентификатор запроса резервирования акцизной марки (GUID) не совпадают с соответствующими значениями предыдущего запроса, то статус акцизной марки не будет изменен (для чека продажи останется статус 3, для чека возврата – статус 5).

    Тело запроса состоит из массива строк, содержащих идентификаторы акцизных марок.

    Пример тела запроса
    [
        "sdgf8734t",
        "22N000003L82ID9EYWS0A4K50821001000478QSGD2PXY2RZSFS0A18SKXXR4Q87AKT0",
        "22N000000HM5B96KYYP01DP408150020199076KX6B38AR2SWXBDJV5PU8H5H1C0X66Y",
        "20N000004RI5YQIBC2T0DFU40211002010451AD623AXDL7OUSAPNT6Y8SUAYMUAEZGD",
        "12QWERTYUIOPLKJHGFDSAZX11111234567890QWERTYUIOPQWERTYUIOPQWERTYUIOPQ"
    ]

    Результатом запроса является массив объектов, содержащих информацию об идентификаторах акцизных марок и статусы их регистрации.

    Пример ответа
    [
        {
            "exciseMarkId": "12QWERTYUIOPLKJHGFDSAZX11111234567890QWERTYUIOPQWERTY7IOPQWERTYU1700",
            "status": 1,
            "tmccode": "46047016",
            "barcode": "222",
            "statusDate": "2016-12-22T10:21:53.000+0000",
            "exciseType": "ALCOHOL"
        }
    ]
  • типа POST на URL:

    http://localhost:38051/CSrest/rest/sales/exciseMark/status/check

    Тело запроса состоит из объектов, которые позволяют получить статус марки и информацию из белого списка марок:

    Пример тела запроса
    [
    {"exciseMarkId": "111", "exciseType": "ALCOHOL"},
    {"exciseMarkId": "222", "exciseType": "TOBACCO"},
    {"exciseMarkId": "333", "exciseType": "SHOES"}
    ]

    Телом ответа является массив объектов, содержащих информацию об акцизных марках из белого списка и о статусе марок. В ответе содержится информация об акцизной марке для всех привязанных штрих-кодов:

    Пример ответа
    [          
      {
            "exciseType": "ALCOHOL",
            "exciseMarkId": "123",
            "exciseMarkWhite": [
                {
                    "excisemarkid": "123",
                    "shopcode": "All",
                    "inn": "3333",
                    "exciseType": "ALCOHOL",
                    "serialnumber": "3333",
                    "barcode": "1"
                },
                {
                    "excisemarkid": "123",
                    "shopcode": "All",
                    "inn": "3333",
                    "exciseType": "ALCOHOL",
                    "serialnumber": "3333",
                    "barcode": "2"
                }
            ],
            "status": 0
        },
        {
            "exciseType":"TOBACCO",
            "exciseMarkId":"222",
            "status":3
        },
        {
            "exciseType":"SHOES",
            "exciseMarkId":"222",
            "status":0
        }
    ]

    Если в теле запроса заполнено поле barcode,

    Пример тела запроса с заполнением поля barcode
    [
    {"exciseMarkId": "111", "exciseType": "ALCOHOL", "barcode": "1"},
    {"exciseMarkId": "222", "exciseType": "TOBACCO"},
    {"exciseMarkId": "333", "exciseType": "SHOES"}
    ]

    то в ответе будет получена только информация об акцизной марке для указанного штрих-кода:

    Пример ответа
    [          
     	{
            "exciseType": "ALCOHOL",
            "exciseMarkId": "123",
            "exciseMarkWhite": {
                    "excisemarkid": "123",
                    "shopcode": "All",
                    "inn": "3333",
                    "exciseType": "ALCOHOL",
                    "serialnumber": "3333",
                    "barcode": "1"
                },
                "status": 0
        },     
    	{
            "exciseType":"TOBACCO",
            "exciseMarkId":"222",
            "status":3
        },
        {
            "exciseType":"SHOES",
            "exciseMarkId":"222",
            "status":0
        }
    ]

Изменение статуса акцизной марки

Для получения изменения статуса регистрации акцизной марки с сервера касса выполняет запрос типа PUT на URL:

http://<host>:<port>/CSrest/rest/sales/exciseMark/status?identifier=<идентификатор чека>[?shopcode=<код магазина>&cashcode=<код кассы>&excisetype=<тип акцизной марки>&force=false&reserveid=<идентификатор запроса, по которому выполнялось резервирование>]

Параметры shopcode, cashcode, excisetype, reserveid, force являются необязательными параметрами.

Параметр force отвечает за установку статуса акцизных марок без дополнительных проверок:

  • при значении true установка статуса будет без дополнительной проверки идентификатора чека и идентификатора запроса резервирования акцизной марки (GUID) на совпадение с соответствующими значениями предыдущего статуса,
  • при значении false если пытаемся поменять статус акцизной марки, то будет учтен предыдущий статус акцизной марки, идентификатор чека и идентификатора запроса резервирования акцизной марки (GUID) с дополнительной проверкой на совпадение с соответствующими значениями предыдущего статуса.

Тело запроса состоит из массива строк, содержащих идентификаторы акцизных марок и присваиваемом статусе.

Пример тела запроса
[
    {
        "status": 4,
        "tmccode": "111",
        "barcode": "11",
        "exciseMarkId": "12QWERTYUIOPLKJHGFDSAZX11111234567890QWERTYUIOPQWERTYUIOPQWERTYUIOPQ"
    },
    {
        "status": 4,
        "tmccode": "111",
        "barcode": "11",
        "exciseMarkId": "12QWERTYUIOPLKJHGFDSAZX11111234567890QWERTYUIOPQWERTYUIOPQWERTYUIOPW"
    }
]

Получение списка каталогов

Для получения списка каталогов необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/catalogs

Для получения списка каталогов с информацией о странице данных необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/catalogs/bypage

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные каталогов
pageintegerНомер страницы, данные с которого нужно отобразитьНе обязателен. По умолчанию 0
sizeintegerКоличество записей на каждой страницеНе обязателен. По умолчанию 100
namestringПоиск по наименованию каталогаНе обязателен. По умолчанию не указано
name_likebooleanПоиск по частичному вхождению наименования каталога (начинается с...)Не обязателен. По умолчанию не указано
Пример ответа с данными о странице
[
	{
		"catalogid":42204230,
		"catalogname":"Каталог №1"
	}
]
Пример ответа с данными о странице
{"content":
	[
		{
		"catalogid":1,
		"catalogname": "Каталог №1"
		},
		{
			"catalogid":3,
			"catalogname":"Каталог №2"
		}
	],
"firstPage":true,
"totalPages":46,
"numberOfElements":100,
"totalElements":4569,
"lastPage":false,
"size":100,"number":0
}

Сохранение данных о каталоге в БД КС

Для сохранения данных о каталоге необходимо направить запрос типа POST на URL:

http://<host>:<port>/CSrest/rest/dictionaries/catalogs

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталога

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные каталога
Тело запроса
{
	"catalogid":42204230,
	"catalogname":"Каталог результат"
}

Получение количества каталогов

Для получения количества каталогов с сервера необходимо выполнить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/catalogs/count

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания

clusterId

stringИдентификатор кластера

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина

Удаление записи о каталоге

Для удаления записи о каталоге необходимо направить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/dictionaries/catalogs/id/{id}

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
id

serializable

Идентификатор каталогаОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталога

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные каталога

Получение данных каталога по идентификатору

Для получения записи о каталоге необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/catalogs/id/{id}

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
id

serializable

Идентификатор каталогаОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталога

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные каталога

Проверка идентификатора каталога

Для получения информации о наличии каталога с конкретным ID необходимо выполнить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/catalogs/{catalogId}/exists

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания

clusterId

stringИдентификатор кластера

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина

Получение списка софт-чеков с КС

Для получения списка софт-чеков с сервера необходимо выполнить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/softchecks

Для получения списка софт-чеков с информацией о странице данных необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/softchecks/bypage

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания

clusterId

stringИдентификатор кластера

Не обязателен. По умолчанию не указан

page

integerНомер страницы, с которой будут выведены данныеНеобязательный параметр. По умолчанию 0

size

integerКоличество записей на одной страницеНеобязательный параметр. По умолчанию 100
softcheckidstringИдентификатор софт-чекаНеобязательный параметр. По умолчанию не указан

Результатом запроса является массив объектов, содержащих информацию об идентификаторах софт-чеков, дате и времени их создания и товарных позициях.

[{
	"softcheckid": "1",
	"options": 123,
	"creationDate": "2017-01-30T05:09:00.000+0000",
	"softcheckposition": [{
			"softcheckpositionid": 1,
			"softcheckid": "1",
			"barcode": "1234567890",
			"quantity": 10.000,
			"name": "Творог",
			"code": "654748"
		},
		{
			"softcheckpositionid": 2,
			"softcheckid": "1",
			"barcode": "4515553460",
			"quantity": 9.000,
			"name": "Сметана",
			"code": "067815"
		}
	]
}]

Получение количества софт-чеков

Для получения количества софт-чеков с сервера необходимо выполнить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/softchecks/count

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера

Не обязателен. По умолчанию не указан

Получение софт-чека по его идентификатору

Для получения софт-чека по идентификатору необходимо выполнить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/softchecks/id/{id}

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
idserializableИдентификатор софт-чекаОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера

Не обязателен. По умолчанию не указан

Получение софт-чека по его идентификатору с датой отгрузки

Для получения софт-чека по идентификатору с датой отгрузки необходимо выполнить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/softchecks/id/{id}/withStatus

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
idserializableИдентификатор софт-чекаОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера

Не обязателен. По умолчанию не указан

Результатом запроса является объект, содержащий информацию об идентификаторе софт-чека, дате и времени его создания и товарных позициях.

{
   "softcheckid": "111222333",
   "options": 7,
   "creationDate": "2016-03-04T04:37:20.000+0000",
   "status": 1,
   "statusDate": "2022-12-05T05:14:56.000+0000",
   "softcheckposition": [
       {
           "softcheckpositionid": 5,
           "softcheckid": "111222333",
           "barcode": "121456789",
           "quantity": 2.330,
           "code": "12",
           "deptNumber": 2,
           "price": 22.33
       }
   ]
}

Сохранение софт-чека

Для сохранения софт-чека на сервере необходимо выполнить запрос типа POST с данными софт-чека на URL:

http://<host>:<port>/CSrest/rest/dictionaries/softchecks

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания

clusterId

stringИдентификатор кластера

Не обязателен. По умолчанию не указан.

Пример тела запроса:

{
	"softcheckid": "1",
	"options": 123,
	"creationDate": "2017-01-30T05:09:00.000+0000",
	"softcheckposition": [{
		"softcheckpositionid": 1,
		"softcheckid": "1",
		"barcode": "1234567890",
		"quantity": 10.000,
		"name": "Творог",
		"code": "654748"
	}, {
		"softcheckpositionid": 2,
		"softcheckid": "1",
		"barcode": "4515553460",
		"quantity": 9.000,
		"name": "Сметана",
		"code": "067815"
	}]
}

Удаление софт-чека

Для удаления софт-чека необходимо отправить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/dictionaries/softchecks/id/{id}

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
idserializableИдентификатор софт-чекаОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера

Не обязателен. По умолчанию не указан

Сохранение документа

Для сохранения документа необходимо выполнить запрос POST на URL:

http://<host>:<port>/CSrest/rest/dictionaries/pendingchecks/

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера

Не обязателен. По умолчанию не указан.

Параметры тела запроса:

НаименованиеТип данныхВозможные значенияОписание

documentid

string
Уникальный идентификатор документа. Формируется на кассе

state

string

Статус отложенного чека:

  • NOT_PAID – новый. Документ добавлен на сервер.
  • RESERVED – зарезервирован. Документ получен на кассе, но еще не закрыт. Нужен для того, чтобы нельзя было его продать на нескольких кассах одновременно.
  • CLOSED – закрыт. Документ успешно закрыт на кассе.
  • OUT – покупатель вышел. Покупатель отсканировал чек на выходе из магазина.
  • CANCELED – чек отменен. Чек был сторнирован на кассе без возможности восстановления.

Статус зарезервированного заказа:

Реализовано для сервиса заказа лекарств tabletka.by.

  • ORDER_NOT_PAID – заказ сформирован и не оплачен.

  • ORDER_RESERVED – заказ зарезервирован на другой кассе – готовится к выдаче на другой кассе. Данный статус заказ приобретает, когда формируется чек продажи.

  • ORDER_CLOSED – заказ выдан и оплачен.

  • ORDER_CANCELED – заказ отменен.

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

Изменять статусы отложенных чеков на зарезервированные запрещено. Аналогично, изменять статусы зарезервированных заказов на отложенные запрещено.

Статус документа

cashcode

string
Код кассы

shopcode

string
Код магазина

document

string
Полный образ чека в формате JSON
Пример тела запроса
{
    "cashcode": "str",
    "shopcode": "str",
    "documentid": "str",
    "document": "str",
    "state": "str"
}

При успешном выполнении запроса возвращается HTTP статус "200". Если при выполнении запроса произошла ошибка, то тело ответа будет содержать:

Пример ответа с ошибкой
{
  "errorCode" : "int",
  "url" : "str",
  "message" : "str",
  "errorClassName" : "str"
}

Получение документа

Для получения документа необходимо выполнить запрос GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/pendingchecks/{documentid}

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера

Не обязателен. По умолчанию не указан.

В URL запрос может быть добавлена часть exists, которая будет проверять наличие запрашиваемых данных и возвращать true либо false. Если exists не указан в запросе, то при отсутствии запрашиваемых данных будет выводиться ошибка.

Пример ответа
{
    "cashcode": "str",
    "shopcode": "str",
    "documentid": "str",
    "document": "str",
    "state": "str"
}

Изменение документа

Для изменения документа необходимо выполнить запрос PUT на URL:

http://<host>:<port>/CSrest/rest/dictionaries/pendingchecks/{documentid}

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера

Не обязателен. По умолчанию не указан

Пример тела запроса
{
    "cashcode": "str",
    "shopcode": "str",
    "document": "str",
    "state": "str"
}

Поля document и state не обязательные. В запросе должно присутствовать как минимум одно из них. 

При успешном выполнении запроса возвращается HTTP статус "200". Если при выполнении запроса произошла ошибка, то тело ответа будет содержать:

Пример ответа с ошибкой
{
  "errorCode" : "int",
  "url" : "str",
  "message" : "str",
  "errorClassName" : "str"
}

Получение списка отложенных чеков

Для получения списка отложенных чеков необходимо выполнить запрос GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/pendingchecks[?cashid=<id_кассы>&page=<номер страницы>&size=<размер_страницы>&scope=<охват_записей>&states=<статусы_отложенных_чеков>]

Для получения списка отложенных чеков с информацией о странице данных необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/pendingchecks/bypage[?cashid=<id_кассы>&page=<номер страницы>&size=<размер_страницы>&scope=<охват_записей>&states=<статусы_отложенных_чеков>]

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
cashIdstringИдентификатор кассы, с которой необходимо получить данные отложенных чековНеобязательный параметр. Данные о магазине и кластере
clusterIdstringИдентификатор кластера

Не обязателен. По умолчанию не указан

page

integerНомер страницы, с которой будут выведены данныеНеобязательный параметр. По умолчанию 0

size

integerКоличество записей на одной страницеНеобязательный параметр. По умолчанию 100
scopestring

Охват записей:

  • ALL – все отложенные чеки,
  • BY_SHOP – отложенные чеки по магазину. Код магазина shopcode определяется по cashid,
  • BY_CASH – отложенные чеки по кассе. Код магазина и код кассы определяется по cashid.
Необязательный параметр. Если не указан, то будут присланы все записи
statesstring

Статус отложенного чека:

  • NOT_PAID – новый. Документ добавлен на сервер,
  • RESERVED – зарезервирован. Документ получен на кассе, но еще не закрыт. Нужен для того, чтобы нельзя было его продать на нескольких кассах одновременно,
  • CLOSED – закрыт. Документ успешно закрыт на кассе,
  • OUT – покупатель вышел. Покупатель отсканировал чек на выходе из магазина,
  • CANCELED – чек отменен. Чек был сторнирован на кассе без возможности восстановления.

Статус зарезервированного заказа:

Реализовано для сервиса заказа лекарств tabletka.by.

  • ORDER_NOT_PAID – заказ сформирован и не оплачен,

  • ORDER_RESERVED – заказ зарезервирован на другой кассе – готовится к выдаче на другой кассе. Данный статус заказ приобретает, когда формируется чек продажи,

  • ORDER_CLOSED – заказ выдан и оплачен,

  • ORDER_CANCELED – заказ отменен.

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

В результате обработки запроса сервер возвращает ответ вида:

{
  "number": 0,
  "size": 100,
  "lastPage": true,
  "totalElements": 2,
  "numberOfElements": 2,
  "totalPages": 1,
  "firstPage": true,
  "content": [
    {
        ... непосредственно объект
    },...следующие объекты страницы
  ]
}

Получение онлайн-чека

Для получения онлайн-чека для восстановления на кассе необходимо выполнить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/onlinechecks/{documentid}

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера

Не обязателен. По умолчанию не указан

В URL запрос может быть добавлена часть exists, которая будет проверять наличие запрашиваемых данных и возвращать true либо false. Если exists не указан в запросе, то при отсутствии запрашиваемых данных будет выводиться ошибка.

Пример запроса с exist
http://<host>:<port>/CSrest/rest/dictionaries/onlinechecks/1/exist


Пример ответа
{
    "cashcode": "str",
    "shopcode": "str",
    "documentid": "str",
    "document": "str",
    "state": "str"
}

Изменение онлайн-чека

Для изменения документа необходимо выполнить запрос PUT на URL:

http://<host>:<port>/CSrest/rest/dictionaries/onlinechecks/{documentid}

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера

Не обязателен. По умолчанию не указан.

Пример тела запроса
{
    "cashcode": "str",
    "shopcode": "str",
    "document": "str",
    "state": "str"
}

Поля document и state не обязательные. В запросе должно присутствовать как минимум одно из них. 

При успешном выполнении запроса возвращается HTTP статус "200". Если при выполнении запроса произошла ошибка, то тело ответа будет содержать:

Пример ответа с ошибкой
{
  "errorCode" : "int",
  "url" : "str",
  "message" : "str",
  "errorClassName" : "str"
}

Сохранение онлайн-чека

Для сохранения документа необходимо выполнить запрос POST на URL:

http://<host>:<port>/CSrest/rest/dictionaries/onlinechecks

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера

Не обязателен. По умолчанию не указан

Параметры тела запроса:

НаименованиеТип данныхВозможные значенияОписание

documentid

string
Уникальный идентификатор документа. Формируется на кассе

state

string
  • NOT_PAID – новый. Документ добавлен на сервер,
  • RESERVED – зарезервирован. Документ получен на кассе, но еще не закрыт. Нужен для того, чтобы нельзя было его продать на нескольких кассах одновременно,
  • CLOSED – закрыт. Документ успешно закрыт на кассе,
  • CANCELED – чек отменен. Чек был сторнирован на кассе без возможности восстановления.

cashcode

string
Код кассы

shopcode

string
Код магазина

document

string
Полный образ чека в формате JSON
Пример тела запроса
{
    "cashcode": "str",
    "shopcode": "str",
    "documentid": "str",
    "document": "str",
    "state": "str"
}

При успешном выполнении запроса возвращается HTTP статус "200". Если при выполнении запроса произошла ошибка, то тело ответа будет содержать:

Пример ответа с ошибкой
{
  "errorCode" : "int",
  "url" : "str",
  "message" : "str",
  "errorClassName" : "str"
}

Поиск и верификация карты

Перед отправкой запросов необходимо настроить СМС-шлюз. О настройке СМС-шлюза подробнее можно прочитать в статье "Настройки сервера".

Для поиска и верификации карты на кассовом сервере необходимо выполнить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/ident/cards?number=111&idcardgroup=1[?phonenumber=<номер_телефона>&vertype=<тип_верификации>&cashid=<id_кассы>]

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания

idcardgroup

integerИдентификатор группы картОбязательный параметр

number

stringНомер карты, передаваемый с кассы

Обязательный параметр. Проверка будет выполнена в соответствии с указанным местом поиска:

  • MAIN_CARD. Передаваемый номер будет проверяться в поле number таблицы cardTemp.
  • ADDITIONAL_CARD. Передаваемый номер будет проверяться в поле additionalnumber таблицы additionalcardTemp.

phonenumber

stringНомер телефонаНеобязательный параметр

vertype

stringТип верификации

Необязательный параметр. По умолчанию AUTO.

Можно указать несколько типов верификации через запятую.

  • SMS. СМС-верификация, предполагает отправку смс-сообщения с кодом верификации. Код верификации потребуется указать в диалоге на кассе

  • TELEGRAM. Верификация через код подтверждения, отправляемый в Telegram-бот.

  • PUSH. Верификация через push-сообщение, отправляемое в приложение на телефоне клиента

    В настоящее время данный тип верификации не реализован.
  • AUTO. Автоматическая верификация без проверки.
  • NONE. Для данной карты верификация не требуется.

cashid

stringИдентификатор кассы

Необязательный параметр. 

Не путать с кодом кассы!

При отправке запросов на кластерный КС используется для определения кластера и соответствующей БД с данными.

Если запрос отправляется на обычный кассовый сервер, то параметр можно не указывать.

Если не удалось отправить запрос или получить ответ от сервера, то карта в чек не добавляется. При получении ответа выполняется его анализ.

Если после отказа от ввода кода подтверждения в списке типов верификаций:

  • нет других элементов, то карта не будет добавлена в чек,
  • есть другие элементы, то будет сформирован повторный запрос на сервер, содержащий в себе список типов верификаций, из которого будет исключена отклоненная верификация и верификация, которую вернул сервер.

В результате поиска и верификации карты сервер возвращает ответ:

[{"cardNumber":<номер_основной_карты>, "verificationCode":<код_верификации>,"verificationResult":<результат_верификации>}]

Результат верификации может принимать значения:

  • 0 – SUCCESS. Верификация прошла успешно.
  • 1 – INTERNAL_SERVER_ERROR. Верификация не удалась по причине ошибки на сервере.
  • 2 – EXTERNAL_PLUGIN_ERROR. Верификация не удалась по причине ошибки во внешнем шлюзе (к примеру, шлюз посылки СМС возвратил ошибку).

При результате верификации 0 выполняется проверка поля cardNumber на пустоту:

  • если получен номер карты, то карта добавляется в чек,
  • если номер карты пуст, то кассиру выводится ошибка, карта в чек не добавляется.

Код отправляется пользователю через тот тип верификации, который указан в запросе. В запросе может быть указано несколько типов верификации, приоритетным является тот, который в списке указан самым первым. Если ни один из указанных типов верификации не доступен, то код отправлен не будет.

Получение списка клиентов с кассового сервера

Для получения списка клиентов необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/clients

Для получения списка клиентов с постраничной информацией необходимо направить запрос типа GET на URl:

http://<host>:<port>/CSrest/rest/dictionaries/clients/bypage

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные клиентов

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные клиентов
pageintegerНомер страницы, данные с которого нужно отобразитьНе обязателен. По умолчанию 0
sizeintegerКоличество записей на каждой страницеНе обязателен. По умолчанию 100
namestringПоиск по имени клиентаНе обязателен. По умолчанию не указано
name_likebooleanПоиск по частичному вхождению имени клиента (начинается с...)Не обязателен. По умолчанию не указано
phonenumberstringПоиск по номеру телефонаНе обязателен. По умолчанию не указано
phonenumber_likebooleanПоиск по частичному вхождению номера телефона (заканчивается на...)

Не обязателен. По умолчанию false. Принимает значения:

  • true – поиск по телефону будет выполняться по последним цифрам номера телефона (если в запросе в параметре phonenumber передаются последние цифры номера телефона).

    При значении true запрос будет выполняться довольно долго.
  • false – поиск по телефону будет выполняться по полному соответствию, указанному в поле phonenumber.
organizationcodevarcharПоиск по коду организацииНе обязателен. По умолчанию не указано
birthdayintegerПоиск по дате рождения клиентаНе обязателен. По умолчанию не указано. Задается в формате "ГГГГММДД"
codewordstringПоиск по кодовому словуНе обязателен. По умолчанию не указано
codeword_likebooleanПоиск по частичному вхождению кодового слова (начинается с...)Не обязателен. По умолчанию false
orderstringНаправление сортировки поиска по полю name

Не обязателен. По умолчанию не указано. Принимает значения: 

  • ASC – данные отсортированы по полю name,
  • DESC – данные обратно отсортированы по полю name.
subscriptionadjintegerПоиск по согласию на рассылку
  • 0/NULL – не согласен.
  • 1 – согласен на рассылку.
emailstringПоиск по emailНе обязателен. По умолчанию не указан
Пример ответа без данных о странице
 {
      "idclient": "1434b73a-3b2a-4ce9-b3a9-dabffaea7fdf",
      "name": "Иванов Иван Иванович",
      "text": "hgfg",
      "sex": 0,
	  "birthday": "1993-09-03",
      "specialdate1name": "",
      "specialdate2name": "",
      "specialdate3name": "",
      "zipcode": "77778",
      "address": "",
      "email": "222",
      "webpage": "",
      "phonenumber": "+79231233212",
      "inn": "",
      "document": "",
      "okpo": "",
      "okpd": "",
      "occupation": "",
      "extendedoptions": "",
      "codeword": ""
      "organizationcode": "1"
	  "subscriptionadj": 0
   },
      {
      "idclient": "14e61dfb-4fe9-4bed-ba04-a436d6352e32",
      "name": "Сидоров Петр Евгеньевич",
      "text": "",
      "sex": 0,
	  "birthday": "1960-10-31",
      "specialdate1name": "",
      "specialdate2name": "",
      "specialdate3name": "",
      "zipcode": "",
      "address": "",
      "email": "",
      "webpage": "",
      "phonenumber": "89662225233",
      "inn": "",
      "document": "",
      "okpo": "",
      "okpd": "",
      "occupation": "",
      "extendedoptions": "",
      "codeword": ""
      "organizationcode": "2"
	  "subscriptionadj": 1
   }
Пример ответа с данными о странице
{
   "content":    [
            {
         "idclient": "2311212111111111",
         "name": "Иван Панченко
		 "sex": 0,
         "organizationcode": "1"
		 "subscriptionadj": 1
      },
            {
         "idclient": "ee71afa1-6985-4e85-9cca-2f37ce553269",
         "name": "Тестовый пользователь с кодом организации",
         "text": "",
         "sex": 0,
         "specialdate1name": "",
         "specialdate2name": "",
         "specialdate3name": "",
         "zipcode": "",
         "address": "",
         "email": "",
         "webpage": "",
         "phonenumber": "",
         "inn": "",
         "document": "",
         "okpo": "",
         "okpd": "",
         "occupation": "",
         "extendedoptions": "",
         "codeword": "",
         "organizationcode": "1"
		 "subscriptionadj": 0
      }
   ],
   "numberOfElements": 2,
   "totalElements": 2,
   "firstPage": true,
   "lastPage": true,
   "totalPages": 1,
   "size": 100,
   "number": 0
}

Сохранение данных о клиенте в БД КС

Для сохранения данных о клиенте необходимо направить запрос типа POST на URL:

http://<host>:<port>/CSrest/rest/dictionaries/clients

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные клиентов

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные клиентов

Тело запроса:

{
	"idclient": "ff8081815b601935015b601ede1e0004",
	"name": "Свиридова Юлия Петровна",
	"sex": 1,
	"phonenumber": "79021234567"
}

Получение количества объектов (записей о клиентах) с КС

Для получения количества записей о клиентах необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/clients/count

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные клиентов

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазин, с которого необходимо получить данные клиентов

Удаление записи о клиенте

Для удаления записи о клиенте необходимо направить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/dictionaries/clients/id/{id}

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
id

serializable

Идентификатор клиентаОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные клиентов

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные клиентов

Получение данных о клиенте по идентификатору

Для получения записи о клиенте необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/clients/id/{id}

В URL запрос может быть добавлена часть exists, которая будет проверять наличие запрашиваемых данных и возвращать true либо false. Если exists не указан в запросе, то при отсутствии запрашиваемых данных будет выводиться ошибка.

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
id

serializable

Идентификатор клиентаОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные клиентов

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные клиентов

 Получение списка организаций в КС

Для получения списка организаций необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/organizations

Для получения списка организаций с постраничной информацией необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/organizations/bypage

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные организаций

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные организаций
pageintegerНомер страницы, данные с которого нужно отобразитьНе обязателен. По умолчанию 0
sizeintegerКоличество записей на каждой страницеНе обязателен. По умолчанию 100
namestringПоиск по имени клиентаНе обязателен. По умолчанию не указано
name_likebooleanПоиск по частичному вхождению имени клиента (начинается с...)Не обязателен. По умолчанию не указано
Пример ответа без данных о странице
[
      {
      "organizationcode": "1",
      "name": "Организация 1",
      "registeredaddress": "Ул. Печкина, 37",
      "inn": "123456",
      "kpp": "123456",
      "okpo": "123456",
      "operatingaccount": "123456",
      "bank": "Сбербанк",
      "correspondingaccount": "123456",
      "bik": "123456"
   },
      {
      "organizationcode": "2",
      "name": "Организация 2",
      "registeredaddress": "Ул. Чкалова, 123",
      "inn": "321321",
      "kpp": "321321",
      "okpo": "321321",
      "operatingaccount": "321321",
      "bank": "ВТБ",
      "correspondingaccount": "321321",
      "bik": "321321"
   }
]
Пример ответа с данными о странице
{
   "content": [   {
      "organizationcode": "1",
      "name": "Организация 1",
      "registeredaddress": "Ул. Печкина 37",
      "inn": "123456",
      "kpp": "123456",
      "okpo": "123456",
      "operatingaccount": "123456",
      "bank": "Сбербанк",
      "correspondingaccount": "123456",
      "bik": "123456"
   }],
   "numberOfElements": 1,
   "totalElements": 1,
   "firstPage": true,
   "lastPage": true,
   "totalPages": 1,
   "size": 100,
   "number": 0
}

Сохранение данных об организации в БД КС

Для сохранения данных об организации необходимо направить запрос типа POST на URL:

http://<host>:<port>/CSrest/rest/dictionaries/organizations/

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные организаций

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные организаций

Тело запроса:

{
      "organizationcode": "3",
      "name": "Организация 3",
      "registeredaddress": "Ул. Ленина, 33",
      "inn": "321654",
      "kpp": "321654",
      "okpo": "321654",
      "operatingaccount": "321654",
      "bank": "АльфаБанк",
      "correspondingaccount": "321654",
      "bik": "321654"
   }

Получение количества объектов (записей об организациях) с КС

Для получения количества записей об организациях необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/organizations/count

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные организаций

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные организаций

Удаление записи об организации

Для удаления записи об организации необходимо направить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/dictionaries/organizations/id/{id}

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
id

serializable

Идентификатор организацииОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные организации

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopIdstringИдентификатор магазина, с которого необходимо получить данные организации

Получение данных об организации по идентификатору

Для получения записи об организации необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/organizations/id/{id}

В URL запрос может быть добавлена часть exists, которая будет проверять наличие запрашиваемых данных и возвращать true либо false. Если exists не указан в запросе, то при отсутствии запрашиваемых данных будет выводиться ошибка.

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
id

serializable

Идентификатор организацииОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные организации

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные организации

 Получение списка групп карт в КС

Для получения списка групп карт необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cardGroups

Для получения списка клиентов с постраничной информацией необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cardGroups/bypage

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные групп карт

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные групп карт
pageintegerНомер страницы, данные с которого нужно отобразитьНе обязателен. По умолчанию 0
sizeintegerКоличество записей на каждой страницеНе обязателен. По умолчанию 100
namestringПоиск по имени клиентаНе обязателен. По умолчанию не указано
name_likebooleanПоиск по частичному вхождению имени клиента (начинается с...)Не обязателен. По умолчанию не указано
Пример ответа без данных о странице
[
      {
      "idcardgroup": 1,
      "name": "Основные карты",
      "text": "1",
      "cardmode": 1,
      "prefixbeg": "1",
      "prefixend": "1",
      "lenbeg": 1,
      "lenend": 2,
      "regexpattern": "1",
      "inputmask": 1,
      "regexrule": "0",
      "valutCode": 1,
      "discounttype": 1,
      "discountvalue": 1,
      "bonususecase": 1,
      "showinfo": 1,
      "notaddemptycard": 1,
      "printinfo": 1
   },
      {
      "idcardgroup": 2,
      "name": "Дополнительные карты",
      "cardmode": 1,
      "regexpattern": "44[0-9]",
      "inputmask": 0
   }
]
Пример ответа с данными о странице
{
   "content":    [
            {
         "idcardgroup": 1,
         "name": "Основные карты",
         "text": "1",
         "cardmode": 1,
         "prefixbeg": "1",
         "prefixend": "1",
         "lenbeg": 1,
         "lenend": 2,
         "regexpattern": "1",
         "inputmask": 1,
         "regexrule": "0",
         "valutCode": 1,
         "discounttype": 1,
         "discountvalue": 1,
         "bonususecase": 1,
         "showinfo": 1,
         "notaddemptycard": 1,
         "printinfo": 1
      },
            {
         "idcardgroup": 2,
         "name": "Дополнительные карты",
         "cardmode": 1,
         "regexpattern": "44[0-9]",
         "inputmask": 0
      }
   ],
   "numberOfElements": 2,
   "totalElements": 2,
   "lastPage": true,
   "firstPage": true,
   "totalPages": 1,
   "size": 100,
   "number": 0
}

Сохранение данных о группе карт в БД КС

Для сохранения данных о группе карт необходимо направить запрос типа POST на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cardGroups

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные групп карт

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные групп карт

Тело запроса:

{
      "idcardgroup": 2,
      "name": "VIP-карты",
      "cardmode": 1,
      "regexpattern": "44[0-9]",
      "inputmask": 0
}

Получение количества объектов (записей о группах карт) с КС

Для получения количества записей о группах карт необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cardGroups/сount

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные групп карт

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные групп карт

Удаление записи о группе карт

Для удаления записи о группе карт необходимо направить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cardGroups/id/{id}

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
id

serializable

Идентификатор группы картОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные групп карт

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные групп карт

Получение данных о группе карт по идентификатору

Для получения записи о группе карт необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cardGroups/id/{id}

В URL запрос может быть добавлена часть exists, которая будет проверять наличие запрашиваемых данных и возвращать true либо false. Если exists не указан в запросе, то при отсутствии запрашиваемых данных будет выводиться ошибка.

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
id

serializable

Идентификатор группы картОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные групп карт

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные групп карт

Получение списка карт с кассового сервера

Для получения списка карт необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cards

Для получения списка карт с информацией о странице данных необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cards/bypage

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные карт

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные карт
pageintegerНомер страницы, данные с которого нужно отобразитьНе обязателен. По умолчанию 0
sizeintegerКоличество записей на каждой страницеНе обязателен. По умолчанию 100
numberstringПоиск по номеру картыНе обязателен. По умолчанию не указано
number_likebooleanПоиск по частичному вхождению номера клиента (начинается с...)Не обязателен. По умолчанию не указано
idcardgroupintegerФильтровать поиск по идентификатору группы картНе обязателен. По умолчанию не указано
idclientstringФильтровать поиск по идентификатору клиентаНе обязателен. По умолчанию не указан
Пример ответа без данных о странице
[
      {
      "idcard": "ff8081815b601935015b601e52ce0003",
      "idcardgroup": 1,
      "idclient": "ff8081815b601935015b601ede1e0004",
      "number": "250111",
      "blocked": 0
   },
      {
      "idcard": "ff8081815b601935015b601f96de0006",
      "idcardgroup": 1,
      "idclient": "ff8081815b601935015b601f52360005",
      "number": "250222",
      "blocked": 0
   }
]
Пример ответа с данными о странице
{
   "content":    [
            {
         "idcard": "ff8081815b601935015b601e52ce0003",
         "idcardgroup": 1,
         "idclient": "ff8081815b601935015b601ede1e0004",
         "number": "250111",
         "blocked": 0
      }
   ],
   "numberOfElements": 4,
   "totalElements": 4,
   "lastPage": true,
   "firstPage": true,
   "totalPages": 1,
   "size": 100,
   "number": 0
}

Сохранение данных о карте в БД КС

Для сохранения данных о карте необходимо направить запрос типа POST на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cards

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные карт

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные карт

Тело запроса:

{
      "idcard": "ff8081815b601935015b601e52ce0003",
      "idcardgroup": 1,
      "idclient": "ff8081815b601935015b601ede1e0004",
      "number": "250111",
      "blocked": 0
}

Получение количества объектов (записей о картах) с КС

Для получения количества записей о картах необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cards/count

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные карт

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные карт

Удаление записи о карте

Для удаления записи о карте необходимо направить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cards/id/{id}

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
id

serializable

Идентификатор картыОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные карты

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные карты

Получение данных о карте по идентификатору

Для получения записи о карте необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cards/id/{id}

В URL запрос может быть добавлена часть exists, которая будет проверять наличие запрашиваемых данных и возвращать true либо false. Если exists не указан в запросе, то при отсутствии запрашиваемых данных будет выводиться ошибка.

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
id

serializable

Идентификатор картыОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные карт

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные карт

Получение списка групп сертификатов с кассового сервера

Для получения списка групп сертификатов необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/certificates

Для получения списка групп сертификатов с постраничной информацией необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/certificates/bypage

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные групп сертификатов

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные групп сертификатов
pageintegerНомер страницы, данные с которого нужно отобразитьНе обязателен. По умолчанию 0
sizeintegerКоличество записей на каждой страницеНе обязателен. По умолчанию 100
rangeBigDecimalИскать диапазон по значениюНе обязателен. По умолчанию не указан
namestringИскать по частичному вхождению названия (начинается с...)Не обязателен. По умолчанию не указано

При поиске диапазона по значению будет найден диапазон, содержащий указанное значение.
Например, при указании в поиске номера 151 будет найден диапазон от 100 до 200.

Пример ответа без данных о странице
[{
   "code": "1",
   "rangefrom": 1,
   "rangeto": 10,
   "name": "Сертификаты",
   "sum": 300,
   "inputmask": 31
}]
Пример ответа с данными о странице
{
   "content": [   {
      "code": "1",
      "rangefrom": 1,
      "rangeto": 10,
      "name": "Сертификаты",
      "sum": 300,
      "inputmask": 31
   }],
   "firstPage": true,
   "totalPages": 1,
   "numberOfElements": 1,
   "totalElements": 1,
   "lastPage": true,
   "size": 100,
   "number": 0
}

Получение количества объектов (групп сертификатов) с кассового сервера

Для получения количества записей о группах сертификатов необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/certificates/count

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные о группе сертификатов

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные о группе сертификатов

Получение группы сертификатов по идентификатору

Для получения записи о группе сертификатов необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/certificates/id/{id}

В URL запрос может быть добавлена часть exists, которая будет проверять наличие запрашиваемых данных и возвращать true либо false. Если exists не указан в запросе, то при отсутствии запрашиваемых данных будет выводиться ошибка.

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
id

serializable

Идентификатор (код) группы сертификатовОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные групп сертификатов

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные групп сертификатов
Пример ответа
{
   "code": "1",
   "rangefrom": 1,
   "rangeto": 10,
   "name": "Сертификаты",
   "sum": 300,
   "inputmask": 31
}

Сохранение группы сертификатов в БД КС

Для сохранения данных о группе сертификатов необходимо направить запрос типа POST на URL:

http://<host>:<port>/CSrest/rest/dictionaries/certificates

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные групп сертификатов

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные групп сертификатов

Тело запроса:

{
   "code": "1",
   "rangefrom": 1,
   "rangeto": 10,
   "name": "Сертификаты",
   "sum": 300,
   "inputmask": 31
}

Удаление записи о группе сертификатов из БД КС

Для удаления записи о группе сертификатов необходимо направить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/dictionaries/certificates/id/{id}

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
id

serializable

Идентификатор группы сертификатовОбязательное поле. По умолчанию не указан
clusterIdstringИдентификатор кластера, с которого необходимо получить данные групп сертификатов

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные групп сертификатов

Для получения истории изменений карт с кассового сервера без указания параметров пейджинации максимально первые 100 записей необходимо отправить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/cardChanged

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить историю изменений карт

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

pageintegerНомер страницы данных, которую нужно отобразитьНе обязателен. По умолчанию 0
sizeintegerКоличество записей на каждой страницеНе обязателен. По умолчанию 100
idcardOLDstringПоиск по старому идентификатору картыНе обязателен. По умолчанию не указано
idcardNEWstringПоиск по новому идентификатору картыНе обязателен. По умолчанию не указано
userNamestringПоиск по имени пользователя, выполнившего операциюНе обязателен. По умолчанию не указано
operationstringПоиск по операцииНе обязателен. По умолчанию не указано
applicationstringПоиск по приложению, из которого были внесены измененияНе обязателен. По умолчанию не указано
Пример ответа
{
"id": 1,
"operation": "insert",
"application": null,
"changedNEW":       {
         "status": null,
         "multiplicatorend": null,
         "cardstatus": 0,
         "idcard": "3bae2896-0ec4-42ac-8111-f8884ab5308a",
         "number": "123456",
         "idclient": "e2cd6fa:15b1db79910:-7ffc",
         "pincode": "",
         "accountNumber": null,
         "lastKnownBonusBalance": 0,
         "validitydatebeg": null,
         "lastKnownBonusBalanceDate": null,
         "idcardgroup": null,
         "validitydateend": null,
         "cardSum": 0,
         "blocked": null,
         "multiplicatorcurrent": 0,
         "multiplicator": 0,
         "multiplicatorbeg": null
},
"changedOLD":       {
         "status": null,
         "multiplicatorend": null,
         "cardstatus": 0,
         "idcard": null,
         "number": null,
         "idclient": null,
         "pincode": null,
         "accountNumber": null,
         "lastKnownBonusBalance": null,
         "validitydatebeg": null,
         "lastKnownBonusBalanceDate": null,
         "idcardgroup": null,
         "validitydateend": null,
         "cardSum": null,
         "blocked": 0,
         "multiplicatorcurrent": null,
         "multiplicator": null,
         "multiplicatorbeg": null
      },
"userName": null,
"date": "2017-03-30T05:45:27.000+0000"
}

Для получения истории изменений клиентов с кассового сервера без указания параметров пейджинации максимально первые 100 записей необходимо отправить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/clientChanged

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить историю изменений клиентов

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

pageintegerНомер страницы данных, которую нужно отобразитьНе обязателен. По умолчанию 0
sizeintegerКоличество записей на каждой страницеНе обязателен. По умолчанию 100
idclientOLDstringПоиск по старому идентификатору клиентаНе обязателен. По умолчанию не указано
idclientNEWstringПоиск по новому идентификатору клиентаНе обязателен. По умолчанию не указано
userNamestringПоиск по имени пользователя, выполнившего операциюНе обязателен. По умолчанию не указано
operationstringПоиск по операцииНе обязателен. По умолчанию не указано
applicationstringПоиск по приложению, из которого были внесены измененияНе обязателен. По умолчанию не указано
Пример ответа
{
"id": 1,
"operation": "insert",
"application": null,
"changedNEW":       {
         "specialdate3name": "",
         "birthday": "1982-02-05",
         "sex": 0,
         "okpd": "",
         "userid": null,
         "idclient": "e2cd6fa:15b1db79910:-8000",
         "codeword": "",
         "okpo": "",
         "document": "",
         "specialdate3": null,
         "specialdate2": null,
         "specialdate1": null,
         "name": "Семён Семёнович Горбунков",
         "inn": "",
         "phonenumber": "79031234567",
         "text": "",
         "occupation": "",
         "zipcode": "",
         "childrencount": null,
         "specialdate1name": "",
         "extendedoptions": "",
         "address": "",
         "email": "",
         "webpage": "",
         "specialdate2name": ""
      },
"changedOLD":       {
         "specialdate3name": null,
         "birthday": null,
         "sex": null,
         "okpd": null,
         "userid": null,
         "idclient": null,
         "codeword": null,
         "okpo": null,
         "document": null,
         "specialdate3": null,
         "specialdate2": null,
         "specialdate1": null,
         "name": null,
         "inn": null,
         "phonenumber": null,
         "text": null,
         "occupation": null,
         "zipcode": null,
         "childrencount": null,
         "specialdate1name": null,
         "extendedoptions": null,
         "address": null,
         "email": null,
         "webpage": null,
         "specialdate2name": null
      },
"userName": null,
"date": "2017-03-30T05:37:03.000+0000"
}

Получение списка каталогов товаров

Для получения списка каталогов товаров необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/inventcatalogs

Для получения списка каталогов товаров с информацией о странице данных необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/inventcatalogs/bypage

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные каталогов товаров
pageintegerНомер страницы, данные с которого нужно отобразитьНе обязателен. По умолчанию 0
sizeintegerКоличество записей на каждой страницеНе обязателен. По умолчанию 100
Пример ответа без данных о странице
[
	{
		"pk":
		{
			"tmccode":"\"1\"",
			"catalogid":"144622214"
		},
		"tmcprice":41.11
	}
]
Пример ответа с данными о странице
{"content":
	[
		{
			"pk":
					{
						"tmccode":"\"1\"",
						"catalogid":"144622214"
					},
			"tmcprice":41.11
		}
	],
"firstPage":true,
"totalPages":359,
"numberOfElements":100,
"totalElements":35801,
"lastPage":false,
"size":100,
"number":0
}

Сохранение данных о каталоге товаров в БД КС

Для сохранения данных о каталоге товаров необходимо направить запрос типа POST на URL:

http://<host>:<port>/CSrest/rest/dictionaries/inventcatalogs

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные каталогов товаров
Тело запроса
{
	"pk":
	{
		"tmccode":"\"1\"",
		"catalogid":"144622214"
	},
	"tmcprice":41.11
}

Получение количества объектов (записей о каталогах товаров) с КС

Для получения количества записей о каталогах товаров необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/inventscatalogs/count

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные каталогов товаров

Удаление записи о каталоге товаров

Для удаления записи о каталоге товаров необходимо направить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/dictionaries/inventcatalogs/catalogid/{catalogid}/tmccode/{tmccode}

Где catalogid – идентификатор каталога товаров, tmccode – код товара.

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные каталогов товаров

Получение данных о каталоге товаров

Для получения записи о каталоге товаров необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/dictionaries/inventcatalogs/catalogid/{catalogid}/tmccode/{tmccode}

Где catalogid – идентификатор каталога товаров, tmccode – код товара.

В URL запрос может быть добавлена часть exists, которая будет проверять наличие запрашиваемых данных и возвращать true либо false. Если exists не указан в запросе, то при отсутствии запрашиваемых данных будет выводиться ошибка.

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если не указан ни один из параметров, то выполняется обращение к БД All

shopidstringИдентификатор магазина, с которого необходимо получить данные каталогов товаров

Получение схемы лояльности

Для получения системы лояльности необходимо направить запрос типа GET на URL:

 http://<host>:<port>/CSrest/rest/systemLoyalty

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Пример ответа
{"discountSystem":"","bonusEarnSystem":"","bonusLimitSystem":"","bonusPeriodicSystem":""} 

Запись схемы лояльности

Для записи системы лояльности необходимо направить запрос типа PUT на url:

 http://<host>:<port>/CSrest/rest/systemLoyalty

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Получение дисконтной системы

Для получения дисконтной системы необходимо направить запрос типа GET на URL:

 http://<host>:<port>/CSrest/rest/discount

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Запись дисконтной системы

Для записи дисконтной системы необходимо направить запрос типа PUT на URL:

 http://<host>:<port>/CSrest/rest/discount

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Удаление дисконтной системы

Для удаления дисконтной системы необходимо направить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/discount 

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All.

Получение системы начисления бонусов

Для получения системы начисления бонусов необходимо направить запрос типа GET на URL:

 http://<host>:<port>/CSrest/rest/bonusEarn

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Запись системы начисления бонусов

Для записи системы начисления бонусов необходимо направить запрос типа PUT на URL:

 http://<host>:<port>/CSrest/rest/bonusEarn

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Удаление системы начисления бонусов

Для удаления системы начисления бонусов необходимо направить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/bonusEarn 

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Получение системы списания бонусов

Для получения системы списания бонусов необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/bonusLimit 

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Запись системы списания бонусов

Для записи системы списания бонусов необходимо направить запрос типа PUT на URL:

 http://<host>:<port>/CSrest/rest/bonusLimit

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Удаление системы списания бонусов

Для удаления системы списания бонусов необходимо направить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/bonusLimit 

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Получение системы периодического начисления бонусов

Для получения системы периодического начисления бонусов необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/bonusPeriodic 

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Запись системы периодического начисления бонусов

Для записи системы периодического начисления бонусов необходимо направить запрос типа PUT на URL:

 http://<host>:<port>/CSrest/rest/bonusPeriodic

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Удаление системы периодического начисления бонусов

Для удаления системы периодического начисления бонусов необходимо направить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/bonusPeriodic

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные каталогов товаров

Не обязателен. По умолчанию не указан.

Если параметр не указан, то выполняется обращение к БД All

Получение списка документов для возврата товара на другой кассе

Для получения списка документа-основания и всех документов возврата, которые были по нему выполнены, необходимо выполнить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/sales/document/{identifier}/withreturned

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
shopIdstringИдентификатор магазина, с которого необходимо получить данныеПо умолчанию All
clusterIdstringИдентификатор кластера, с которого необходимо получить данные
idTypestringТип идентификатора, по которому будет выполняться поиск документа

При значении "1" – поиск в документах будет выполняться по полю fiscalidentifier.

При значении "-1" – поиск в документах будет выполняться по полю sourceidentifier.

При значении "0" или если значение не указано, то поиск будет выполняться по полю identifier.

При значении "2" – поиск будет выполнятся по номеру карты клиента, поле number в таблице carditem.

При значении "2" – поиск будет выполнятся по номеру карты клиента, поле number в таблице carditem.

Пример ответа
{"mainDocuments": [<массив документов, найденных по указанному идентификатору>],
"returnedDocuments": [<массив документов возврата, связанных с документами mainDocuments>]}

Получение персональной цены для клиента

Для получения персональной цены для клиента по номеру карты, коду товара и коду магазина необходимо отправить запрос типа GET на URL:

http://<host>:<port>/personal_discount/v1/personal_price?cardNumber={cardNumber}&inventCode={inventCode}&shopCode={shopCode}

Дублирование цен для связки номера карты, кода товара и кода магазина исключено.

Хост и порт сервиса персональных скидок могут отличаться от адреса кассового сервера. На сервисе персональных скидок включена bacis авторизация.

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания

cardNumber

stringНомер карты

inventCode

stringКод товара

shopCode

stringКод магазина

В результате запроса возвращается персональная цена товара.

Получение списка пользователей

Для получения списка пользователей необходимо отправить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/users
Пример ответа
[{"userId":"1","password":"2","rights":
	{
		"cashAdministration":true,
		"userAdministration":true,
		"bonusAdministration":false,
		"bonusView":false,
		"manageLoyalty":true,
		"commitLoyalty":true,
		"discountsView":false,
		"accruedOfBonusesView":false,
		"cancellationOfBonusesView":false,
		"advertisingView":false,
		"cardsView":false,
		"certificatesView":false,
		"administrationView":false,
		"manageScripts":false,
		"summaryTableView":false,
		"cardManagement":false,
		"viewCard":false,
		"clientManagement":false,
		"viewClient":false,
		"cardGroupManagement":false,
		"viewCardGroup":false,
		"seniorOperatorKTS":false,
		"operatorKTS":false,
		"loyaltyOperator":false,
		"system":false,
	"bonusEditor":false,
	"viewBonus":false,
	"viewCoupons":false,
	"viewPeriodicChargingOfBonuses":false
}}]

Попытка авторизоваться под пользователем

Для того чтобы авторизоваться под пользователем необходимо отправить запрос типа POST на URL:

http://<host>:<port>/CSrest/rest/login
Пример тела запроса
{
"userId": "admin",
"password": "admin"
}

Добавление пользователя

Для того чтобы добавить нового пользователя необходимо отправить запрос типа POST на URL:

http://<host>:<port>/CSrest/rest/users
Пример тела запроса
{
"userId": "admin34",
"password": "admin34",
"rights": 
	{
		"cashAdministration": true,
		"userAdministration": true,
		"bonusAdministration": true,
		"bonusView": true,
		"manageLoyalty": true,
		"commitLoyalty": false,
		"discountsView": false,
		"accruedOfBonusesView": false,
		"cancellationOfBonusesView": false,
		"advertisingView": false,
		"cardsView": false,
		"certificatesView": false,
		"administrationView": false,
		"manageScripts": false,
		"summaryTableView": false,
		"cardManagement": false,
		"viewCard": false,
		"clientManagement": false,
		"viewClient": false,
		"cardGroupManagement": false,
		"viewCardGroup": false,
		"seniorOperatorKTS": false,
		"operatorKTS": false,
		"loyaltyOperator": false,
		"system": false,
		"bonusEditor": false,
		"viewBonus": false,
		"viewCoupons": false,
		"viewPeriodicChargingOfBonuses": false
	}
}

Получение данных о пользователе

Для получения данных о пользователе необходимо направить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/users/{userId:.+}

Редактирование данных пользователя

Для редактирования данных пользователя необходимо направить запрос типа PUT на URL:

http://<host>:<port>/CSrest/rest/users/{userId:.+}

Удаление пользователя

Для удаления пользователя необходимо направить запрос типа DELETE на url:

http://<host>:<port>/CSrest/rest/users/{userId:.+}

Получение количества пользователей

Для получения количества пользователей необходимо отправить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/webUsers/count

Определение наличия пользователя с заданным именем

Для того чтобы определить есть ли пользователь с таким именем необходимо отправить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/webUsers/{name:.+}/exists

Если пользователь с таким именем найден, то вернется ответ true, в противном случае false.

Получение списка пользователей

Для получения списка пользователей необходимо отправить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/webUsers

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
withoutSecurityRolebooleanНе показывать SecurityRoleНе обязателен. По умолчанию true
pageintegerНомер страницы с данными, которую нужно отобразитьНе обязателен. По умолчанию не указано
sizeintegerКоличество записей на каждой страницеНе обязателен. По умолчанию не указано

Добавление пользователя

Для добавления пользователя необходимо отправить запрос типа POST на URL:

http://<host>:<port>/CSrest/rest/webUsers

Получение данных о пользователе

Для получения данных о пользователе по имени необходимо отправить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/webUsers/{name:.+}

Для получения данных о пользователе по имени и паролю необходимо отправить запрос типа GET на URL:

http://<host>:<port>/CSrest/rest/webUsers/{name:.+}/{password:.+}

Обновление пользователя

Для обновления данных пользователя необходимо отправить запрос типа PUT на URL:

http://<host>:<port>/CSrest/rest/webUsers/{name:.+}

Удаление пользователя

Для удаления данных о пользователе необходимо отправить запрос типа DELETE на URL:

http://<host>:<port>/CSrest/rest/webUsers/{name:.+}

Получение номера УПД (счет-фактуры)

Для получения номера счет-фактуры необходимо направить запрос типа POST на url:

http://<host>:<port>/CSrest/rest/waybillNumbers/next

Параметры запроса:

Наименование
Тип данных
Описание
Примечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные
shopcodestringКод магазина, в котором будет выдан УПД (счет-фактура)

Не обязательный

cashcodeintegerКод кассы, на которой будет выдан УПД (счет-фактура)

Не обязательный

shiftnumintegerНомер смены

Не обязательный

checknumintegerНомер чека

Не обязательный

documentidintegerИдентификатор чека

Не обязательный

Пример ответа
{
	"waybillNumber": "1/2325"
}

Изменение статуса УПД (счет-фактуры)

Для изменения статуса УПД (обозначения выдачи УПД на кассе) необходимо направить запрос типа PUT на URL:

http://<host>:<port>/CSrest/rest/waybillNumbers/confirm

Параметры запроса:

НаименованиеТип данныхОписаниеПримечания
clusterIdstringИдентификатор кластера, с которого необходимо получить данные
Пример тела запроса
{
	"waybillNumber": "1/2325"
}
  • No labels