Onlinecheck – Онлайн-чеки

Таблица Onlinecheck используется только в БД кассового сервера.

СвойствоТип данныхОписаниеПримечания
idint(20)Идентификатор записи

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

documentid

varchar(50)Идентификатор документа

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

documenttextЧек в формате JSON, представленный в виде строки с экранированными кавычками
statevarchar(20)

Статус онлайн-чека:

  • NOT_PAID – новый. Документ добавлен на сервер.
  • NEW – новый чек с полной/частичной онлайн-оплатой.
  • RESERVED – зарезервирован. Документ получен на кассе, но еще не закрыт.
    Нужен для того, чтобы нельзя было его продать на нескольких кассах одновременно.
  • CLOSED – закрыт. Документ успешно закрыт на кассе.
  • CANCELED – чек отменен. Чек был сторнирован на кассе без возможности восстановления (устарело).
  • ONLINE_PAYING – признак того, что по чеку проходила онлайн-оплата.
  • ONLINE_CLOSED – чек был оплачен онлайн.
  • UNDERREVIEW – на примерке/время примерки истекло.
  • EXPIRED – время примерки истекло. Данный статус отображается только по запросу статуса онлайн-чеков (не отображается в БД).

Для загрузки нового документа используется статус NOT_PAID или NEW.

  • Статусы онлайн-чека NEW и NOT_PAID можно перевести в статусы RESERVED, CANCELED, ONLINE_PAYING
  • Статус онлайн-чека RESERVED можно перевести в статусы NEW, NOT_PAID, CANCELED, CLOSED, ONLINE_PAYING, ONLINE_CLOSED, UNDERREVIEW
  • Статусы онлайн-чека CANCELED, CLOSED и ONLINE_CLOSED нельзя перевести в другие статусы
  • Статус онлайн-чека ONLINE_PAYING можно перевести в статусы ONLINE_PAYING, ONLINE_CLOSED
  • Статус онлайн-чека UNDERREVIEW можно перевести в статус RESERVED в том случае, если время примерки еще не истекло
shopcodevarchar(50)Код магазина
cashcodevarchar(50)Код кассы
change_datedatetimeДата и время изменения статуса документа

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

onlinepaymentstatusvarchar(100)

Статус онлайн-оплаты:

  • WITHOUT_PAYMENT – чек без онлайн-оплаты или не закрыт на удаленном ФР.
  • SUCCESS – чек успешно оплачен (частично или полностью) или успешно закрыт на удаленном ФР.
  • FAIL – при оплате или закрытии чека на удаленном ФР произошла ошибка.
  • NOT_CONFIRM – не подтвержденный статус онлайн-оплаты или статус онлайн-закрытия на удаленном ФР.

Для онлайн-чеков, которые были сохранены на КС до добавления поля onlinepaymentstatus, статус онлайн-оплаты будет принимать значение null.

Статус онлайн-оплаты null нельзя изменить

Изменение статуса оплаты возможно только для онлайн-чеков со статусом NOT_PAID
  • Сохранить онлайн-чек можно с любым статусом оплаты
  • Если статус оплаты не будет указан, то ему будет присвоено значение WITHOUT_PAYMENT
  • Статус оплаты WITHOUT_PAYMENT можно перевести в любой статус
  • Статус оплаты NOT_CONFIRM можно перевести в статусы SUCCESS и FAIL

  • Статус оплаты FAIL можно перевести в статус SUCCESS

  • Статус оплаты SUCCESS нельзя перевести в любой другой

sourcedocumentidvarchar(50)Идентификатор документа-основания

Структура JSON-объекта document

Пример заполненного объекта document
{
  "documentid": 7771231232,
  "document": {
    "positions": [
      {
        "posnum": 1,
        "code": "8070002401961",
        "barcode": "8070002401961",
        "name": "Футболка из хлопка с коротким рукавом, Белый, S",
        "minprice": 0,
        "price": 799,
        "quant": 1,
        "measure": 796,
        "measurename": "шт",
        "isfractionalmeasure": false,
        "vatcode": "101",
        "vatrate": 20,
        "vatsum": 159.8,
        "dept": 0,
        "paymentmethod": 4,
        "paymentobject": 0,
        "taramode": 0,
        "tmctype": "alcohol",
        "excisemark": "",
        "catalogcode": 0,
        "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": "",
    "sum": 799,
    "dontChange": 1,
	"client": {
        "name": "Клиент",
        "inn": "123456789012",
        "organization": {
            "name": "Организация",
            "inn": "123456789013" 
        }
  	}
}

Параметры объекта document:

НаименованиеОписаниеПримечания
positionsСписок позиций чека
identifier

Для внутреннего использования. Остается пустым


sumСумма чека

dontChange

Возможность модифицировать чек (удаление позиций):

  • 0 – чек с возможностью модификации,
  • 1 – чек неизменяемый.

По умолчанию 0

client

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


Параметры объекта position:

НаименованиеТип данныхОписаниеПримечания
posnumintНомер позиции в чеке
vatsumdoubleСумма налогаМожно указать 0. Используется для печати отчетов
codestringКод товара
namestringНаименование товара

articul

stringАртикул товара
pricedoubleЦена товара
barcodestringШтрих-код товара
deptintКод отдела
catalogcodeintКод каталогаИспользуется для считывания кода номенклатуры средств индивидуальной защиты

paymentmethod

intПризнак способа расчетаПризнак способа расчета указывается на основании признака предмета расчета
paymentobjectintПризнак предмета расчета
taramodeintЗначение 0Для внутреннего использования
quantdoubleКоличество товара
measureintКод единицы измеренияИспользуется для совместимости с обычной кассой. Указываем любое числовое значение
vatratedoubleСтавка налогаМожно указать 0. Используется для печати отчетов
measurenamestringНаименование единицы измерения

isfractionalmeasure

boolean

Дробная единица измерения:

  • true – для весовых товаров (количество товара может принимать дробные значения),
  • false – для штучных товаров (количество товара может быть только целочисленным).

По умолчанию false

minpricedoubleМинимальная цена товара
vatcodestringКод налогаДолжен быть больше или равен 1

tmctype

string

Тип товара:

  • shoes – обувной товар,
  • protectivemeans – индивидуальное средство защиты,
  • markedgoods – маркированный товар,
  • tobacco – табачная продукция,
  • alcohol – алкогольная продукция.


Если тип не указан, то позиция содержит обычный товар
excisemarkstringКод маркировкиИспользуется для алкогольной и табачной продукции, для обувных и маркированных товаров
supplierobjectПоставщик товаров
additionalpricesobjectДополнительные цены

Параметры объекта supplier:

НаименованиеТип данныхОписание
agentpaymentobjectintПризнак агента по предмету расчета
innstring

ИНН поставщика

namestringНаименование поставщика
phonestringТелефон поставщика
suppliercodestringКод поставщика

Параметры объекта additionalprices:

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

Тип данных

Описание

barcode

string

Штрих-код товара

code

int

Код индекса цены

documentidstringИдентификатор документа переоценки
effectivedatedatetimeДата переоценки
namestringНазвание цены
packingpricenumberЦена для расфасовки
price

number

Дополнительная цена

Параметры объекта discounts:

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

Тип данных

Описание

campaigncode

int

Код группы акций

campaignname

string

Название группы акций

discountcode

int

Код скидки

discountmode

int

Режим скидки:

  • 1 – автоматическая,
  • 2 – по карте,
  • 3 – вручную,
  • 4 – фиксированная,
  • 5 – скидка на комплект,
  • 6 – скидка "на мелочь" (округление),
  • 8 – оплата сертификатом как скидкой на чек,
  • 9 – скидка по купону,
  • 10 – корректирующая скидка,
  • 11 – фискальное округление.

discountname

string

Название скидки

discountrate

number

Ставка скидки (проценты в случае процентной скидки, сумма в случае суммовой скидки,
индекс цены в случае скидки по индексу цены, отрицательная ставка – надбавка)

discountsum

number

Сумма скидки

discounttype

int

Тип скидки:

  • 1 – процентная,
  • 2 – суммовая,
  • 3 – индекс цены,
  • 4 – фиксированная цена,
  • 5 – бонус.

ispositiondiscount

int

Флаг на что применялась скидка:

  • 0 – на чек,
  • 1 – на позицию.
minpriceignoredintФлаг игнорирования минимальной цены при применении скидки

posnum

int

Номер товарной позиции

Параметры объекта payments:

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

Тип оплаты:

  • 1 – Наличными,
  • 2 – Электронными,
  • 3 – Предварительная оплата (аванс),
  • 4 – Последующая оплата (кредит),
  • 5 – Иная форма оплаты (встречное предоставление),
  • 6..10 – расширенные типы оплаты.

Для онлайн-чеков необходимо указывать тип оплаты 3 (аванс).

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

amountdoubleСумма оплаты в рубляхНапример, 15.20 рубля.
valcodeintКод валюты

Нужен для продаж, чтобы отличать офлайн оплаты от онлайн оплат.

Значение может быть любым

valnamestringНаименование валюты

Параметры объекта organization:

НаименованиеТип данныхОписание
namestringНаименование организации
innstringИНН организации
  • No labels