Сохранение онлайн-чека
Для сохранения документа необходимо выполнить POST-запрос на URL:
http://<host>:<port>/CSrest/rest/dictionaries/onlinechecks
Пример запроса через curl
:
curl -i -X POST -d @check.json http://localhost:8080/CSrest/rest/dictionaries/onlinechecks --header "Content-Type: application/json"
, где localhost:8080
– это <host>:<port>
кассового сервера, а check.json
– это файл с содержимым онлайн-чека.
Просмотр онлайн-чека
http://localhost:8080/CSrest/rest/dictionaries/onlinechecks/484
, где 484
– идентификатор документа на сервере.
Структура онлайн-чека
Сам чек (document
) имеет структуру json, но в теле запроса к кассовому серверу он передается как строка. Поэтому все кавычки должны быть экранированы \"вот так\".
{ "cashcode": "123", "shopcode": "12323", "documentid": 484, "document": "{\"positions\":[{\"posnum\":1,\"vatsum\":3.08,\"code\":\"1094\",\"name\":\"Сапоги\",\"price\":15.5,\"barcode\":\"1094\",\"dept\":null,\"catalogcode\":1,\"paymentmethod\":0,\"paymentobject\":0,\"taramode\":0,\"quant\":2,\"measure\":1,\"vatrate\":24,\"measurename\":\"шт\",\"minprice\":14.31,\"vatcode\":3,\"tmctype\":\"shoes\",\"excisemark\":\"123123\",\"supplier\":{\"agentpaymentobject\":1,\"inn\":\"987654321012\",\"name\":\"S means Supplier\",\"phone\":\"88005553535\",\"suppliercode\":1}}],\"identifier\":\"\",\"payments\":[{\"type\":3,\"amount\":25.5,\"valcode\":1,\"valname\":\"Электронный платеж\"}],\"sum\":31.0, \"dontChange\":0}", "state": "NOT_PAID" }
Параметры тела запроса:
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
shopcode | string | Код магазина | Необходимо для применения тегов в дисконте. Поле необязательно для заполнения |
cashcode | string | Код кассы | Необходимо для применения тегов в дисконте. Поле необязательно для заполнения |
state | string | Статус загрузки онлайн-чека:
| Для загрузки нового документа используется статус
|
documentid | string | Уникальный идентификатор документа. По идентификатору касса запрашивает документ | |
document | string | Чек в формате JSON с экранированными кавычками |
Структура объекта document
{ \"positions\": [ { \"posnum\": 1, \"vatsum\": 3.08, \"code\": \"1094\", \"name\": \"Сапоги\", \"price\": 15.5, \"barcode\": \"1094\", \"dept\": null, \"catalogcode\":1, \"paymentmethod\": 0, \"paymentobject\": 0, \"taramode\": 0, \"quant\": 2, \"measure\": 1, \"vatrate\": 24, \"measurename\": \"шт\", \"minprice\": 14.31, \"vatcode\": 3, \"tmctype\": \"shoes\", \"excisemark\": \"123123\", \"supplier\": { \"agentpaymentobject\": 1, \"inn\": \"987654321012\", \"name\": \"S means Supplier\", \"phone\": \"88005553535\", \"suppliercode\": \"1\" }, \"additionalprices\": { \"1\": { \"barcode\": \"100\", \"code\": 1, \"documentId\": \"1234\", \"effectiveDate\": \"2023-12-26T11:06:32.000\", \"name\": \"дополнительная цена 1\", \"packingPrice\": 0, \"price\": 14 } } ], \"discounts\": [ { \"campaigncode\": 19, \"campaignname\": \"акция\", \"discountcode\": 20, \"discountmode\": 1, \"discountname\": \"скидка с индексной ставкой\", \"discountrate\": 1, \"discountsum\": 12.5, \"discounttype\": 3, \"ispositiondiscount\": 1, \"minpriceignored\": false, \"posnum\": 1 } ], \"identifier\": \"\", \"payments\": [ { \"type\": 3, \"amount\": 25.5, \"valcode\": 1, \"valname\": \"Электронный платеж\" } ], \"sum\": 31, \"dontChange\": 0 }
Параметры объекта document
:
Наименование | Описание | Примечания |
---|---|---|
positions | Список позиций чека | |
identifier | Для внутреннего использования. Остается пустым | |
payments | Оплаты | |
sum | Сумма чека | |
dontChange | Возможность модифицировать чек (удаление позиций):
| Поле необязательно для заполнения. Значение по умолчанию |
Параметры объекта position
:
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
posnum | int | Номер позиции в чеке | |
vatsum | double | Сумма налога | Можно указать 0 . Используется для печати отчетов |
code | string | Код товара | |
name | string | Наименование товара | |
articul | string | Артикул товара | |
price | double | Цена товара | |
barcode | string | Штрих-код товара | |
dept | int | Код отдела | |
catalogcode | int | Код каталога | Используется для считывания кода номенклатуры средств индивидуальной защиты |
paymentmethod | int | Признак способа расчета | Признак способа расчета указывается на основании признака предмета расчета |
paymentobject | int | Признак предмета расчета | |
taramode | int | Значение 0 | Для внутреннего использования |
quant | double | Количество товара | |
measure | int | Код единицы измерения | Используется для совместимости с обычной кассой. Указываем любое числовое значение |
vatrate | double | Ставка налога | Можно указать 0 . Используется для печати отчетов |
measurename | string | Наименование единицы измерения | |
isfractionalmeasure | boolean | Дробная единица измерения:
| По умолчанию |
minprice | double | Минимальная цена товара | |
vatcode | string | Код налога | Должен быть больше или равен 1 |
tmctype | string | Тип товара:
| |
excisemark | string | Код маркировки | Используется для алкогольной и табачной продукции, для обувных и маркированных товаров |
supplier | object | Поставщик товаров | |
additionalprices | object | Дополнительные цены |
Параметры объекта supplier
:
Наименование | Тип данных | Описание |
---|---|---|
agentpaymentobject | int | Признак агента по предмету расчета |
inn | string | ИНН поставщика |
name | string | Наименование поставщика |
phone | string | Телефон поставщика |
suppliercode | string | Код поставщика |
Параметры объекта additionalprices
:
Наименование | Тип данных | Описание |
barcode | string | Штрих-код товара |
code | int | Код индекса цены |
documentid | string | Идентификатор документа переоценки |
effectivedate | datetime | Дата переоценки |
name | string | Название цены |
packingprice | number | Цена для расфасовки |
price | number | Дополнительная цена |
Параметры объекта discounts
:
Наименование | Тип данных | Описание |
campaigncode | int | Код группы акций |
campaignname | string | Название группы акций |
discountcode | int | Код скидки |
discountmode | int | Режим скидки:
|
discountname | string | Название скидки |
discountrate | number | Ставка скидки (проценты в случае процентной скидки, сумма в случае суммовой скидки, |
discountsum | number | Сумма скидки |
discounttype | int | Тип скидки:
|
ispositiondiscount | int | Флаг на что применялась скидка:
|
minpriceignored | int | Флаг игнорирования минимальной цены при применении скидки |
posnum | int | Номер товарной позиции |
Параметры объекта payments
:
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
type | int | Тип оплаты:
| Для онлайн-чеков необходимо указывать тип оплаты Для корректной работы необходимо настроить соотнесение типов оплат на кассе |
amount | double | Сумма оплаты в рублях | Например, 15.20 рубля. |
valcode | int | Код валюты | Нужен для продаж, чтобы отличать офлайн оплаты от онлайн оплат. Значение может быть любым. |
valname | string | Наименование валюты |