Портал поддержки продуктов CSI
Публичный ресурс

SetPrisma | Интеграция с SET Prisma. v. 3.

Протоколы.

web-сервис.

Параметры подключения к Set Prisma

  • IP-адрес сервера Set Prisma и порт;
  • транспортный протокол: HTTP/HTTPS;
    • сертификат самоподписанный.

POST /events

Request body (Content type: application/json)

Response

Code

200ОК

200ERROR
{"errorCode":-1}
500EXCEPTIONServer error

Ошибки

errorCodeerror
-1Отсутствует лицензия
-2Не удалось разобрать пакет

Структура событий.

Формат.

json

Структура






type

value

required

 Назначение

versionstring3.0.даВерсия протокола. При отсутствии атрибута json-документ считается версии 2.0.

events

array





event

object


да




prefix 

string[3]

dict

да

Тип устройства



shop 

integer

0..N

да

Номер магазина



shopNamestring
нетНаименование магазина



device 

integer

0..255

да

Номер устройства



deviceNamestring
нетНаименование устройства


shiftNumberinteger0..N
Номер смены



tabNumber 

string


да

Табельный номер сотрудника



employee 

string


да

ФИО сотрудника



code 

integer

1..N

да

Номер события



dateTime 

string


да

Время события в формате dd.MM.yyyy HH:mm:ss.SSS или yyyy-MM-dd HH:mm:ss.SSS



session 

object



Информация о пользовательской сессии




role

string

dict


Роль




mode

string

dict


Режим работы




login

string



Логин пользователя 



document

object



Информация о документе




type

string

dict

да

Тип документа




number

string


да

Номер




extraTypestringdict
Тип связанного документа: МЧ, ОЧ, накладная...



extraDeviceinteger

Номер устройства, на котором оформлен связанный документ.



extraShiftNumberinteger

Номер смены, в которой оформлен связанный документ.




extraNumber

string



Номер связанного документа




extraDateTimestring

Дата и время оформления связанного документа в формате dd.MM.yyyy HH:mm:ss.SSS или yyyy-MM-dd HH:mm:ss.SSS




amount

number



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



goods

object







pos

string

1..N

да

Номер позиции/идентификатор строки в документе




item

string


да

Артикул




barcode

string



Штриховой код




identifier

string



Идентификатор: акцизная или специальная марка, GS1 barcode,




categorystringdict
Категория (группа) товара




name

string



Наименование




type

string

dict


Тип товара




marked

boolean



Признак маркировки




ageRestrict

boolean



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




measure

string

dict


Мерность




addedBy

string

dict


Способ ввода товара




basePrice

number



Регулярная цена




quantity

number



Количество




price

number



Цена продажи




amount

number



Стоимость позиции




discount

number



Размер скидки на позицию




expirationDatestring

Срок годности. Дата в формате dd.MM.yyyy или yyyy-MM-dd




rejection

string

dict


Причина отклонения



card

object



Информация о карте лояльности




type

string

dict


Тип




category

string

dict


Категория




addedBy

string

dict


Способ ввода номера карты




number

string


да

Номер




customerstring

ФИО владельца




amount

number



Бонусный, марочный баланс




operationstringdict
Операция с картой



rejectionstringdict
Причина отклонения



coupon

object



Информация о купоне




type

string



Тип




category

string



Категория




number

string


да

Номер




rejectionstringdict
Причина отклонения



discount

object



Информация о скидке




type

string

dict


Тип




amount

number



Сумма скидки











payment

object



Информация об оплате




type

string

dict

да

Тип




code

string

dict


Код




cardNumber

string



Номер карты




cardHashstring

Хэш номера карты




amount

number


да

Сумма




rejectionstringdict
Причина отклонения



processing

object



инфо по обращению в процессинговый центр (товар, скидка, оплата, документ, ...)




type

string

dict


Имя




request

string



Запрос (операция)




result

string



Результат



dialog






categorystringdict
Категория



messagestring

Сообщение/вопрос кассиру



valuestring

Значение введённое/выбранное кассиром.



responsestringdict
Реакция/ответ на сообщение


error






categorystringdict
Категория ошибки



codestring

Код ошибки




text

string



Текст ошибки



persons






numberinteger

Количество человек



infoobject






sexstring

Пол {male|female}




agenumber

Возраст




emotionstring

Эмоция


vehicle






numberstring

Государственный номер транспортного средства


offlineboolean

Признак offline-события

Схема.

Пример.


Итоговый документ

При регистрации или аннулирования/отмены кассового документа в Set Prisma отправляется информационный пакет, содержащее весь его состав:

  • Заголовок;
  • Позиции;
  • Карты;
  • Купоны;
  • Скидки;
  • Оплаты.

Структура





type

value

required

 Назначение

versionstring3.0.даВерсия протокола. При отсутствии атрибута json-документ считается версии 2.0.


document

object


да




prefix 

string[3]

dict

да

Тип устройства



shop 

integer

0..N

да

Номер магазина



shopNamestring
нетНаименование магазина



device 

integer

0..255

да

Номер устройства



deviceNamestring
нетНаименование устройства


shiftNumberinteger0..NнетНомер смены



tabNumber 

string


да

Табельный номер сотрудника



employee 

string


да

ФИО сотрудника



dateTime 



да

Время документа



type

string

dict

да

Тип документа



number

string


да

Номер



amount

number(19,2)



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



statusinteger
да0 - зарегистрирован/завершён, 1 - аннулирован/отменён, 2 - отложен



goods

array







pos

string

1..N

да

Номер позиции/идентификатор строки в документе




item

string


да

Артикул




barcode

string



Штриховой код




identifier

string



Идентификатор: акцизная или специальная марка, GS1 barcode,




categorystringdict
Категория (группа) товара




name

string



Наименование




type

string

dict


Тип товара




marked

Boolean



Признак маркировки




ageRestrict

Boolean



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




measure

string

dict


Мерность




addedBy

string

dict


Способ ввода товара




basePrice

number(19,2)



Регулярная цена




quantity

number(19,3)



Количество




price

number(19,2)



Цена продажи




amount

number(19,2)



Стоимость позиции




discount

number(19,2)



Размер скидки на позицию




quantityPlannumber(19,2)

Количество по плану



cards

array



Информация о карте лояльности




type

string

dict


Тип




category

string

dict


Категория




addedBy

string

dict


Способ ввода номера карты




number

string


да

Номер




customerstring

ФИО владельца




amount

number(19,2)



Бонусный, марочный баланс



coupons

array



Информация о купоне




type

string



Тип




category

string



Категория




number

string


да

Номер



discounts

array



Информация о скидке




type

string

dict


Тип




actionNamestring

Наименование акции в CRM




amount

number(19,2)



Сумма скидки




posinteger

Номер позиции, на которую дана скидка. Для скидки на чек не заполняется.



cardNumberstring

Номер карты. Только для скидки по карте



couponNumberstring

Номер купона. Только для скидки по купону



payments

array



Информация об оплате




type

string

dict

да

Тип




code

string

dict


Код




cardNumber

string



Номер карты




amount

number(19,2)


да

Сумма

Пример


Реестр событий

Код

Название

Описание

Пользовательские сессии

1

Начало работы

Авторизация пользователя в приложении при запуске или при выходе из режима ожидания/блокировки. Открывает очередной сеанс работы.

2

Отказ в авторизации

Система отклонила логин/пароль пользователя.

3

Конец работы

Выход пользователя с блокировкой приложения, при которой для возобновления работы требуется авторизация, завершение работы приложения.

4

Вход в режим

Пользователь переключил приложение в один из режимов работы (администратор, кассир, инженер).

5

Выход из режима

Завершение работы в отдельном режиме приложения.

6

Повышение прав

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

7

Окончание повышения прав

Возврат к правам текущего пользователя.




Управление документом

11Начало документа

Любой документ открывается событием "Начало документа";

12Конец документа

Любой документ закрывается событием "Конец документа" или "Аннулирование документа";

Если после регистрации чека над ним выполняются действия: например, регистрация в CRM с выдачей карты, купона, по которым также генерируются события, то событие "Конец документа" должно отправляться после всех этих действий.

13Аннулирование документа
14Запись документа
15Получение документа
16Отмена документаПередаётся в тех случаях, когда кассовое ПО позволяет выполнить удаление товарных позиций и самого чека без вызова операции аннулирования.

Товарные позиции 

20

Добавление товарной позиции

Фиксирует момент добавления товарной позиции в документ. 

21

Процессинг товара

Запрос во вне на проверку, регистрацию, активацию, получение дополнительных характеристик товара.

22

Отказ в добавлении товара

Система не может добавить товар в чек. Указывается причина.

23

Отмена товара

Отмена добавления в документ текущего товара.

24

Удаление товара

Удаление позиции из документа, кроме текущей.

25

Изменение количества товара

Ручное изменение количества товара в позиции, кроме текущей.

26

Изменение цены товара вручную

Ручное изменение цены товара в позиции.

27

Сканирование марки

Ввод акцизной или специальной марки для маркированной продукции.

28

Запрос информации о товаре

Вывод на экран информации о товаре без добавления в документ.

29

Взвешивание товара

Взвешивание товара для определения количества в текущей позиции.

30Ввод товараСканирование/выбор товара, который перед добавлением в документ требует дополнительных действий: проверка, взвешивание, ввод марки....
31Выбор ценыВыбор цены из предустановленного списка: цены в отделах, МРЦ на табак...
32Ввод количестваУказание количества товара в текущей позиции.
33Автоматическое изменение цены товараАвтоматическое увеличение цены товара до значения МРЦ, если цена товара ниже МРЦ.
34Отклонение маркиДля введённой акцизной или специальной марки не пройдена проверка валидности по регулярным выражениям. 
35Отказ в изменении количества товара
36Отмена сканирования маркиКассир на запрос ввода марки для товара нажимает "Отмена" и товар в чек не добавляется.
38Переход на чековую позицию по ш/кСканирование товара в режиме поиска позиции

39

Сканирование вне чека

Сканирование штрихового кода, которое не обрабатывается кассовой программой в рамках процесса по добавлению или поиску товара в чеке.
200Взвешивание вне чекаОт прикассовых весов получен вес, который не обрабатывается кассовой программой в рамках процесса по взвешиванию товара при добавлении в чек.
201Отказ в отмене товараКассир пытается отменить товар в подвале чека, но касса блокирует операцию и товар остаётся в чеке
202Отказ в удалении товараКассир пытается удалить товарную позицию из чека, но касса блокирует операцию и товар остаётся в чеке

Карты

40Добавление картыДобавление в чек карты покупателя.
41Отказ в добавлении картыКарта не добавлена в чек: неизвестная, с ограничениями...
42Выдача картыВыдача карты лояльности "новому" покупателю. В том числе, при продаже карты.
43Процессинг картыЗапрос во вне на проверку, активацию, получение дополнительных характеристик карты.
44Операция по картеПри списании бонусов либо назначается скидка, либо проводится оплата, что фиксируется отдельными событиями. Дополнительное событие по списанию облегчает процедуру обработки данных.
45Отмена картыУдаление карты из чека



Купоны

50Добавление купонаДобавление в чек купона.
51Отказ в добавлении купонаКупон не добавлен в чек: неизвестный, недействующий...
52Выдача купонаВыдача купона покупателю.
53Процессинг купонаЗапрос во вне на проверку, активацию, получение дополнительных характеристик купона.
54Отмена купонаУдаление купона из чека



Скидки

60Назначение скидкиПрименение скидки на товарную позицию или на чек, в том числе по карте и купонам.
61Отмена скидки

Отмена ранее применённой скидки.




Оплаты
70Добавление оплатыВ документ добавлена оплата
71Отказ в добавлении оплатыСистема не может добавить оплату в чек. Указывается причина.
72Удаление оплатыОтмена ранее добавленной оплаты
73Ввод оплатыВыбор оплаты, суммы и платёжного средства в случае, если перед добавлением оплаты в документ требуются дополнительных действий: проверка, запрос баланса, списание...
74Процессинг оплатыЗапрос во внешнюю систему на проверку платёжного средства, получение дополнительных характеристик оплаты, списание.
75Отмена операции на терминалеВызов с кассы функции отмены выполненной операции на терминале банка.



Процессинг
80 Вызов процессингаОбращение к процессинговому центру
81Ошибка процессингаОшибка при обращении или в ответе процессингового центра
82

Открытие внешнего приложения на кассе


83Закрытие внешнего приложения на кассе



Чек
90РасчётПереход режим расчёта с покупателем. Подытог.
91Отмена расчётаВозврат в режим формирования позиционного состава документа.
92Регистрация чекаРегистрация и печать кассового чека.
93Копия чекаПечать копии чека.
94Печать пречекаПечать предварительного чека



Касса
100Открыт денежный ящикСобытие содержит привязку к документу, если произошло при оформлении кассового чека, внесения или инкассации денежных средств.
101Перезагрузка кассы
102В кассе большая сумма денег
103Закрыт денежный ящик
105Печать X-отчета
106Печать Z-отчета
107Начало смены
108Конец смены
109Информация о кассе
115Открыт денежный ящик по кнопке
116Печать копии Z-отчёта
Диалог с оператором.
110Сообщение операторуИнформационное сообщение, не блокирующее.
111Запрос операторуДиалоговое окно, на которое кассир должен выполнить выбор, ввести информацию.
112Ответ оператораКассир выполнил требуемое действие, диалоговое окно закрылось.



SCO
120Вызов помощника покупателемПокупатель вызывает помощника
121Кассу переобучили весу товараКасса сообщила, что контрольный вес не соответствует товару. Помощник указал, что вес корректный.
122Помощник проигнорировал контрольный вес товараКасса сообщила, что контрольный вес не соответствует товару. Помощник указал, что товар корректный, вес игнорировать.
123Тарирование контрольных весов
124Покупатель попал на выборочную проверку
125Нажата кнопка "Начать"
126Помощник подтвердил возраст покупателя
127Помощник не подтвердил возраст покупателя
128Товар отсканирован, но долго ставится на контрольную платформу
129Товар отсканирован, но не добавлен в чек
130Покупатель исправил свою ошибку
131Товар поставили на контрольные весы в момент оплаты
132Неотсканированный товар поставили на контрольные весы
133Товар сняли с контрольных весов
134Вес товара не соответствует заданному
135Нестабильный вес на контрольных весах
136Все ошибки разрешены
137Отложенный вызов помощникаСигнал помощнику (фонарь) о необходимости вмешательства без блокировки кассы
138Вызов помощника с блокировкой кассыБлокировки кассы и сигнал помощнику (фонарь) о необходимости вмешательства 
139Блокировка кассы при простое
Видеоаналитика
201Вход/выход покупателяОтправляется при входе в магазин или выходе из магазина покупател(я, ей)
202Количество человек в очередиОтправляется при каждом изменении количества человек в зоне контроля очереди
203Наличие кассира на кассеОтправляется при появлении сотрудника в кассовой рабочей зоне или при выходе сотрудника из неё. Может быть > 1
210Въезд автотранспортаОтправляется при въезде транспортного средства на территорию
211Выезд автотранспортаОтправляется при выезде транспортного средства с территории



Другие
999Ошибка
1000Текущее времяОнлайн-событие с текущим временем кассы для синхронизации.


Справочные значения атрибутов событий

Справочник типов устройств - источников событий фиксированный. События с неизвестным значением не обрабатываются.

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

ЗначениеНазваниеПодстановка
event.prefixТип устройства - источника событий.
ККМКасса
SSCТерминал self-scanning
CAMКамера
VRSвидеорегистратор/видеосервер
VASсистема видео-анализа
WMSWMS-система
TSDТерминал сбора данных



event.session.modeРежим работы@event.session.mode@
cashierРежим кассиракассира
adminРежим администратораадминистратора
customizationРежим настроекнастроек



event.document.type
event.document.extraType
Тип документа@event.document.type@
Полное наименованиеКраткое наименование
saleЧек продажиПродажачека продажи
returnSaleЧек возвратаВозвратчека возврата
corrSaleКоррекция приходаКоррекциякоррекции прихода
corrPurchaseКоррекция расходаКоррекциякоррекции расхода
purchaseПокупка (Расход)Расходпокупки
returnPurchaseВозврат покупки (Возврат расхода)Возврат расходавозврата покупки
depositВнесение наличных в кассуВнесениевнесения наличных в кассу
withdrawalИзъятие наличных из кассыИзъятиеизъятия наличных из кассы
x_reportX-отчёт
X-отчёта
z_reportZ-отчёт
Z-отчёта
acceptanceПриёмка
приёмки
shipmentОтгрузка
отгрузки
inventoryИнвентаризация
инвентаризации
writeOffСписание
списания
returnToSupplierВозврат поставщику
возврата поставщику
event.document.extraTypeДополнительные типы. Не могут указываться в event.document.type@event.document.extraType@
softChequeМягкий чекМЧмягкого чека
delayedChequeОтложенный чекОЧотложенного чека
qrChequeQR-чек
QR-чека
chequePartЧасть разделённого чека
части разделённого чека
fiscalDocФискальный документ.
фискального документа
invoice

Накладная


накладной




event.goods.typeТип товара/услуги
foodПищевая продукция
nonFoodНепищевая продукция
alcoholАлкоголь
alcosetАлкогольный промо-набор
tobaccoТабачная продукция
energyЭнергетические напитки
presentCardПодарочная карта
presentТовар-подарок
discountCardДисконтная карта
lotteryTicketЛотерейный билет
moneyOrderДенежный перевод
productЛюбой товар. Используется, если нет возможности точной типизации.
serviceЛюбая услуга. Используется, если нет возможности точной типизации.
bonusPointЗачисление бонусных балансов
licenseKeyЭлектронный ключ ПО
mobilePayМобильная оплата
jewelЮвелирный товар
clothingОдежда
event.goods.measureМерность товара
pieceштучный
weightвесовой
measuredмерный (кроме весового)
pieceWeightштучно-весовой



event.goods.addedByСпособ добавления товара@event.goods.addedBy@
scannerсканированиесканером
barcodeпо штрихкоду вручнуювручную по ш/к
articleпо коду вручнуювручную по коду
directoryиз справочникаиз справочника
softChequeмягкий чекиз мягкого чека
delayedChequeотложенный чекиз отложенного чека
selfScanningмягкий чек self-scanningиз self-scanning
qrChequeиз QR-кодаиз QR-кода
picListплиткакнопкой экрана
priceпо ценепо цене
event.goods.rejectionПричина отказа, отклонения товара@event.goods.rejection@
notFoundТовар не найденТовар не найден
saleBanЗапрет продажиЗапрет продажи
zeroPriceНулевая ценаНулевая цена
dateExpiredИстёк срок годностиИстёк срок годности
AgeNotConfirmedНе подтверждён возрастНе подтверждён возраст
MarkNotValidМарка не прошла проверкуМарка не прошла проверку
MarkDuplicatedДубль маркиДубль марки
event.card.typeТип карты@event.card.type@
discountСкидочнаяскидочной карты
bonusБонуснаябонусной карты
children_spbДетская карта СПбдетской карты СПб
social_mskСоциальная карта москвичасоциальной карты москвича



event.card.addedByСпособ ввода карты@event.card.addedBy@
scannerСканированиесканером
cardReaderРидерридером
handВручнуювручную
terminalЧерез терминал банкачерез терминал банка



event.discount.typeТип скидки@event.discount.type@
actionПо акциискидки по акции
cardПо картескидки по карте
couponПо купонускидки по купону
bonusБонусыскидки бонусами
handРучнаяручной скидки
markdownУценкауценочной скидки
roundОкруглениескидки на округление



event.card.operationОперация с картой покупателя@event.card.operation@
balanceПолучение балансаполучения баланса
activateАктивацияактивации
writeOffСписаниесписания с
accrualНачислениеначисления для 
cancelWriteOffОтмена списанияотмены списания с
cancelAccrualОтмена начисленияотмена начисления для 



event.payment.typeТип оплаты@event.payment.type@
cashналичныеналичными
cashlessбезналичныйбезналичными
prepaymentзачёт аванса (подарочная карта)подарочной картой
bonusбонусыбонусами



event.payment.codeКод оплаты@event.payment.code@
"payment":{type":"cash"}

backсдачасдача
"payment":{"type":"cashless"}

bankбанковская картабанковской картой
children_spbдетская карта СПбдетской картой СПб
social_mskсоциальная карта москвичасоциальной картой москвича
alipayэлектронный кошелёк AliPayэлектронным кошельком AliPay
wechatэлектронный кошелёк WeChatэлектронным кошельком WeChat
"payment":{"type":"bonus"}

spasiboСпасибо от СбербанкаСпасибо от Сбербанка
aeroflot

Мили Аэрофлот

Мили Аэрофлот



event.processing.typeПроцессинг
utmУТМ ЕГАИС
setmarkSET Mark
setloySET Loyalty



event.dialog.category

ageConfirmПодтверждение возраста покупателя



event.error.category

scoОшибки при работе на кассе самообслуживания SCO



event.error.code

"error":{"category":"sco"}

weighingTimeoutТовар сканирован, но долго ставится на контрольную платформу
weighingDuringPayТовар поставили на контрольные весы в момент оплаты
weighingWithoutScanНесканированный товар поставили на контрольные весы
goodsRemovedFromScalesТовар сняли с контрольных весов
unstableWeightНестабильный вес
paymentTimeoutОтмена оплаты по таймауту







Примеры событий

Примечание.

В качестве примеров приводится не полный json-документ, а только элементы массива events.


Примеры сценариев

Добавление алкогольного товара в чек.

#
Действие/операция
Код события
Название события
1Кассир сканирует штриховой кода товара

2Касса выполняет поиск товара по ш/к и получает его характеристики30Ввод товара
3Касса запрашивает ввод акцизной марки

4Кассир сканирует акцизную марку27Сканирование марки
5Касса выполняет запрос на проверку марки

6Касса получает ответ об успешной проверке21Процессинг товара
7Касса запрашивает подтверждение достаточного возраста покупателя104Запрос кассиру
8Кассир подтверждает105Ответ кассира
9Товар добавляется в чек20Добавление товарной позиции

Альтернативные варианты сценария.

2.1.Касса не находит товар22Отказ в добавлении товара
4.1.Кассир не может сканировать и нажимает отмена22Отказ в добавлении товара
6.1.Проверка не успешна

21

22

Процессинг товара

Отказ в добавлении товара

7.1.Кассир не подтверждает возраст

105

22

Ответ кассира

Отказ в добавлении товара





Применение купона.





1Кассир сканирует штриховой кода купона.

2Касса выполняет запрос в CRM систему для проверки и получения параметров купона.53Процессинг купона
3Касса получает ответ об успешной проверке50Добавление купона
4Касса выполняет расчёт и применение скидки по купону60Назначение скидки
5Оплата, регистрация чека, обращение в CRM, ответ от CRM "выдать купон"......
6Касса запрашивает купон для активации и выдачи104Запрос кассиру
7Кассир сканирует ш/к купона105Ответ кассира
8Касса выполняет запрос на активацию купона в CRM

9Касса получила ответ об успешной операции53Процессинг купона
10Касса выводит сообщение кассиру о выдаче купона52Выдача купона

Альтернативные варианты сценария.

2.1.Проверка не успешна51Отказ в добавлении купона
7.1.Купон не выдаётся - нет в наличии, покупатель отказался ...105Ответ кассира
9.1.Не удалось активировать купон53В событии "Процессинг купона" передаётся результат и информация об ошибке.




Оплата подарочной картой





1Кассир выбирает оплату подарочной картой.

2Касса запрашивает номер карты.

3Кассир вводит номер подарочной карты73Ввод оплаты
4Касса выполняет запрос на проверку и получение номинала

5Касса получает ответ об успешной проверке и номинал74Процессинг оплаты
6Кассир подтверждает оплату подарочной картой

7Касса выполняет запрос на списание средств

8Касса получает ответ об успешной операции списания74Процессинг оплаты
9Оплата добавляется в чек70Добавление оплаты

Альтернативные варианты сценария.

5.1.Проверка не успешна71Отказ в добавлении оплаты
8.1.Не удалось выполнить списание71Отказ в добавлении оплаты







© 1994-2023, ООО "Кристалл Сервис Интеграция".
Все права защищены.

Политика обработки персональных данных