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

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

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

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

documentid

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

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

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

state

varchar(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Дата и время изменения статуса документа

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

last_statetinyint

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

  • 1 – да.
  • 0 – нет.


onlinepaymentstatus

varchar(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": "+788005553535",
          "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":0,
    "isModifiable":0,
    "cardIsDeletable":0,    
    "client": {
        "name": "Клиент",
        "inn": "123456789012",
        "organization": {
            "name": "Организация",
            "inn": "123456789013" 
        }
  	}
}

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

НаименованиеТип данныхОписаниеПримечания
positionsarrayПозиции чекаПоле обязательно для заполнения
identifierstring

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


paymentsarrayОплаты
sumdoubleСумма чека

dontChange

int

Запрещено изменение чека:

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

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

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

isModifiable

int

Разрешена модификация чека:

  • 0 – чек с возможностью изменения (удаление позиций),
  • 1 – чек с возможностью модификации (удаление, добавление позиций, карт).

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

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

Используется при dontChange=0.

cardIsDeletable

int

Разрешено удаление карты:

  • 0 – запрещено удаление карты,
  • 1 – разрешено удаление карты.

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

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

Используется при:

  • dontChange=0,
  • isModifiable=1.


clientobject

Клиент


cardsarrayКарты


couponsarray

Купоны


shopnamestringНазвание магазина
pointsForEarndouble

Сумма баллов для начисления


pointsForSpenddouble

Сумма баллов для списания


Свойства массива объектов position:

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

articul

stringАртикул товара
barcodestringШтрих-код товараПоле обязательно для заполнения
codestringКод товараПоле обязательно для заполнения

dept

intКод отделаПоле обязательно для заполнения
isallowbonusspendboolean

Списание бонусов:

  • true – разрешено;
  • false – запрещено.

isfractionalmeasure

boolean

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

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

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

measureintКод единицы измерения

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

Используется для совместимости с обычной кассой. Указываем любое числовое значение

measurenamestringНаименование единицы измеренияПоле обязательно для заполнения
minpricedoubleМинимальная цена товараПоле обязательно для заполнения
namestringНаименование товараПоле обязательно для заполнения

paymentmethod

intПризнак способа расчетаПризнак способа расчета указывается на основании признака предмета расчета
paymentobjectintПризнак предмета расчетаПоле обязательно для заполнения
posnumintНомер позиции в чекеПоле обязательно для заполнения
pricedoubleЦена товараПоле обязательно для заполнения
quantdoubleКоличество товараПоле обязательно для заполнения
catalogcodeintКод каталогаИспользуется для считывания кода номенклатуры средств индивидуальной защиты
taramodeintЗначение 0

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

tmcobjectТовар

tmctype

string

Тип товара:

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

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

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

Должен быть больше или равен 1

vatratedoubleСтавка налога

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

Можно указать 0. Используется для печати отчетов

vatsumdoubleСумма налога

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

Можно указать 0. Используется для печати отчетов

spentbonusesarrayСписанные бонусы
earnedbonusesarrayНачисленные бонусы
additionalpricesobjectДополнительные цены
discountsarrayСкидки

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

НаименованиеТип данныхОписание
pricedoubleЦена товара
minpricedouble

Минимальная цена товара

opmodeint

Флаги работы с товаром:

  • 1 – запретить продажу товара;
  • 2 – запретить возврат товара;
  • 4 – не показывать товар в списках;
  • 8 – запретить возврат товара в чеке продажи. 

(см. Правила использования битовых масок)

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

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

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

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

Свойства массива объектов spentbonuses:

НаименованиеТип данныхОписание
campaigncodeintКод группы акций
campaignnamestring

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

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

Сумма скидки

sessionidstringУникальный идентификатор списания

Свойства массива объектов earnedbonuses:

НаименованиеТип данныхОписание
campaigncodeintКод группы акций
campaignnamestring

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

cardnumberstringНомер карты, на которую будут произведены начисления
posnumint

Порядковый номер операции

amountdouble

Сумма начисления бонусов

assettimebegdatetimeДата и время активации бонуса
assettimeenddatetimeДата и время аннулирования бонуса
weightintВес акции

Объект additionalprices формируется в виде пар <ключ>:<значение>. В качестве ключа используется значение поля code (код индекса цены) в строковом представлении, в качестве значения – объект "Дополнительная цена".

Параметры объекта "Дополнительная цена":

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

Тип данных

Описание

barcode

string

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

code

int

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

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

double

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

Свойства массива объектов discounts:

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

Тип данных

Описание

Примечание

campaigncode

int

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

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

campaignname

string

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

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

discountcode

int

Код скидки

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

discountmode

int

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

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

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

discountname

string

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

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

discountrate

double

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

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

discountsum

double

Сумма скидки

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

discounttype

int

Тип скидки:

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

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

ispositiondiscount

int

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

  • 0 – на чек,
  • 1 – на позицию.

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

minpriceignoredbooleanФлаг игнорирования минимальной цены при применении скидкиПоле обязательно для заполнения

posnum

int

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


couponnumber

string

Номер купона


Свойства массива объектов payments:

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

Тип оплаты:

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

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

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

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

amountdoubleСумма оплаты в рублях

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

Например, 15.20 рубля.

valcodeintКод валюты

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

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

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

Свойства массива объектов cards:

НаименованиеТип данныхОписание
numberstring

Номер карты 

Свойства массива объектов coupons:

НаименованиеТип данныхОписание
typeintТип купона

number

stringНомер купона

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

Свойство

Тип данных

Описание

name

string

ФИО клиента

text

string

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

sex

int

Пол клиента:

  • 0 – мужской,
  • 1 – женский.

birthday

date

День рождения

specialDate1

date

Первая особая дата клиента

specialDate2

date

Вторая особая дата клиента

specialDate3

date

Третья особая дата клиента

specialDate1Name

string

Название первой особой (специальной) даты

specialDate2Name

string

Название второй особой (специальной) даты

specialDate3Name

string

Название третьей особой (специальной) даты

zipCode

string

Почтовый индекс клиента

address

string

Адрес клиента

email

string

E-mail

webPage

string

Web-страница

phoneNumber

string

Телефонный номер клиента

inn

string

ИНН

document

string

Данные документа клиента (паспорта, водительского удостоверения и т.д.)

okpo

string

ОКПО

okpd

string

ОКПД

occupation

string

Род занятий

childrenCount

int

Количество детей клиента

extendedOptions

text

Дополнительные параметры

organization

object

Организация

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

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