API УКМ 5 доступно на кассовом сервере. Порт: 29017.

Описание API актуально для версии API 1.0, кассового сервера версии 1.25.

Совместимость версий API гарантируется в пределах мажорной версии. Т.е. версии 1.0, 1.1, 1.2 и т.д. совместимы, но версии 1.1 и 2.3, например, нет.

Импорт торговых данных

Архитектурные требования

Серверная архитектура кассовой системы диктует определенные требования к правилам загрузки информации из товаро-учетной системы: если во внешней товаро-учетной системе изменяется объект (или создается новый / удаляется ранее существовавший), то информация об этом должна быть передана кассовому серверу (API) только один раз. Далее кассовой сервер организует доставку этой информации до касс, к которым относится объект.

Объекты, которые выгружает торгово-учетная система, могут быть двух типов:

  • объекты, общие для всех касс торговой сети;
  • объекты, предназначенные для касс конкретного магазина.

Объекты, общие для всех касс:

- справочник налогов;
- группы товаров (товарная иерархия);
- товары (включая шрихкоды);
- дополнительные параметры товаров;
- пик-листы;
- поставщики/продавцы;
- товары поставщиков/продавцов.

Объекты, общие для касс магазина:

- цены на товары;
- дополнительные цены на товары;
- цены на штрихкоды;
- кассиры;
- продавцы-консультанты).

Кассовая система не осуществляет анализ выгруженной из торговой системы информации на предмет ее отличия от той, которая уже есть в кассовой системе. Соответственно, объем передаваемой информации на кассы определяется объемом информации, выгруженной из торговой системы. Поэтому торговая система должна быть ориентирована на выгрузку только изменившейся в ней информации.

Для объектов, общих для всей сети, категорически не приветствуется так называемая «полная выгрузка», при которой торговая система всегда выгружает весь состав объекта.

Полная выгрузка приводит к абсолютно неоправданной нагрузке на кассовый сервер и сетевую инфраструктуру – в результате, весь пакет будет передан на все кассы торговой сети.

Полная выгрузка допустима для объектов, общих для касс одного магазина (например, цены, кассиры, продавцы).

Оптимальная схема выгрузки – накопление в торговой системе изменений за несколько часов и их выгрузка в кассовую систему.

Надо иметь в виду, что загружаемый объект всегда должен содержать все его признаки (исключение составляют только атрибуты, их наличие необязательно). Под признаками объекта понимаются как его атрибуты, так и прочие сущности, такие как штрих-коды, принадлежность к товарной группе, описание, налоговая группа и др. Имеющаяся запись о каждом признаке будет полностью заменена на новое значение. Если какой-то признак отсутствует в запросе, то, если он обязателен в соответствии со схемой (помечен значком *), то запрос не будет принят системой (возникнет сообщение об ошибке); если признак не обязателен, то его значение будет установлено в значение null. В том числе, это относится к признакам, содержащим множество значений. Например, в информации о товаре есть признак barcodes (штрих-коды). При каждой выгрузке товара в признаке barcodes должны быть перечислены все штрихкоды для данного товара, и прежний перечень будет полностью заменен на новый, в том числе и на пустой.

Массив атрибутов является необязательным. Помимо загрузки, атрибуты также можно присваивать объектам вручную, в веб-интерфейсе кассового сервера УКМ 5. Если загрузить заполненный массив, то атрибуты выставятся на группы. Если загрузить пустой массив, то все атрибуты с группы уберутся. Если выполнить загрузку без массива атрибутов, то изменения атрибутов групп не произойдет (атрибуты останутся такими, как их загрузили ранее или настроили на в веб-интерфейсе сервера УКМ 5 ранее). В свою очередь, при выгрузке с кассового сервера, на кассу выгружаются объекты с полным объемом признаков – с атрибутами или без. Если при загрузке объекта возникает ошибка, то не принимается весь пакет, а не только ошибочный объект.

Технические особенности

  • Сервер УКМ 5 всегда выступает в роли сервера. Клиентом является товаро-учетная система.
  • Авторизация не требуется. IT-службы клиента должны обеспечивать безопасность.
  • Загрузка данных всегда производится партиями. Размер партии ограничен выделенным ресурсами. Рекомендуемый размер партии – 10 000 записей.
  • Рекомендуется загружать данные в один поток. Следующий запрос можно посылать только после получения ответа на предыдущий.
  • При импорте проверяется соответствие данных схеме, а также наличие дубликатов.
  • Загрузка объектов (товары, цены, пик-листы и т.д.) всегда происходит в инкрементальном режиме. Т.е. данные о новых объектах прибавляются к уже имеющимся. При этом, признаки тех объектов, которые уже присутствуют в базе сервера, полностью перезаписываются на новые (за исключением атрибутов). Под признаками объекта понимаются как его атрибуты, так и прочие сущности, такие как штрих-коды, принадлежность к товарной группе, описание, налоговая группа и др.
  • Для удаления данных используется поле deleted, которое присутствует во всех сущностях.
  • Успешный импорт означает, что запрос сконвертирован во внутренний формат УКМ 5 и передан на дальнейшую обработку. Однако, из этого не следует, что он загружен в базу данных и передан на кассы.

Правила загрузки основных и дополнительных цен

За загрузку цен отвечают два метода:

В обоих методах есть возможность указать дату-время начала и окончания действия цены. Этой возможностью следует пользоваться только в том случае, если есть реальная необходимость предварительной загрузки цен на кассы до начала их действия. Если такой необходимости нет, то либо эти параметры не надо указывать совсем, либо нужно всегда назначать им одинаковое значение: дату начала – «в далеком прошлом», дату окончания – «в далеком будущем». 

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

Подробнее о том, как касса определяет актуальную цену на товар, можно узнать тут.

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

На текущий момент, в России существует только один налог, учитываемый в розничной торговле. Это НДС, имеющий 3 ставки: 0%, 10% и 20%.

В некоторых случаях, или владелец ККТ или поставщик товара (в случае реализации по договорам комиссии или агентским договорам) могут быть освобождены от учета НДС, в этом случае товар регистрируется в ККТ по особой ставке «НДС не облагается». Также, для ряда операций товары регистрируются в ККТ по особым «расчетным» ставкам.

Пример заполнения справочника групп налогов (таблица tax_group в базе данных):

Id (код группы)

Tax_id

Percent

Fp_code

Advanced_tax_id

Is_preferential

Примечание

1

1

20



false

НДС=20%

2

1

10



false

НДС=10%

3

1

20


1

false

20/120 (расчетная)

4

1

10


2

false

10/110 (расчетная)

5

1

0



false

НДС=0%

6

1

0



true

НДС не облагается

7

1

5



false

НДС=5%

8

1

7



false

НДС=7%

9

1

5


7

false

5/105 (расчетная)

10

1

7


8

false

7/107 (расчетная)

Значения Percent должны быть целыми числами.

Товары со ставкой НДС в 10% в торговой системе привязаны к группе с id=2.

Товары со ставкой НДС в 20% в торговой системе привязаны к группе с id=1.

Если в товарном справочнике в торговой системе есть товары, облагаемые по ставке НДС=0 (не путать с «НДС не облагается»!), то:

- в справочнике должна быть группа со ставкой НДС=0% и значением Is_preferential=false (в данном примере – id=5).

Если предполагается продажа товара без расчета НДС (например, продажа на кассах юр. лица, освобожденного от уплаты НДС), то:

- в справочнике должна быть группа, «отвечающая» за ставку «НДС не облагается» (в данном примере – id=6) с установленным признаком Is_preferential=true;

- независимо от того, какая группа указана у товара, в чеке он будет зарегистрирован с группой  id=6.

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

- в справочнике должны быть группы, «отвечающие» за расчетные ставки (в данном примере – id=3 и 4, соответственно);

- для групп с «обычными» ставками должны быть указаны соответствующие им расчетные группы (в параметре Advanced_tax_id);

- при получении предоплаты за товар с группой id=2, товар будет зарегистрирован в чеке с группой 4 (для группы id=2 указано значение Advanced_tax_id=4);

- при получении предоплаты за товар с группой id=1, товар будет зарегистрирован в чеке с группой 3 (для группы id=1 указано значение Advanced_tax_id=3).

Если предполагается получение на кассе авансовых платежей (например, продажа подарочного сертификата), то:

- в справочнике должна быть группа, «отвечающая» за расчетную ставку (в данном примере – id=3);

- товар, который регистрируется в чеке для получения аванса, должен иметь признак Аванс;

- если для SKU указана налоговая ставка с признаком Is_preferential=true, то с этой ставкой он и будет регистрироваться в чеке;

- если SKU продается в магазине, для которого задано, что он не является плательщиком НДС, то SKU регистрируется в чеке с налоговой группой, для которой установлено значение Is_preferential=true;

- если для SKU указана налоговая ставка с заполненным значением Advanced_tax_id (в справочнике налоговых групп), то SKU регистрируется с указанной для него налоговой группой;

- если для SKU указана налоговая ставка с незаполненным Advanced_tax_id, то SKU регистрируется налоговой группой, у которой параметр Advanced_tax_id равен группе, указанной у товара. 

Следует помнить о том, что для правильной регистрации товаров в ККТ необходимо устанавливать соответствие между налоговыми группами в кассовой программе и в конкретных моделях ККТ. Установка соответствия происходит в разделе fiscalprinter настроек оборудования.

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

СП 801-ФСП 101-Ф, СП 402-Ф, СП 802-Ф

      # соответствие налога в СП ККТ (слева) и налоговой группы в УКМ 5 (справа).

      # tax0 – НДС 20;

      # tax1 – НДС 10;

      # tax2 – НДС 20/120;

      # tax3 – НДС 10/110;

      # tax4 – НДС 0;

      # tax5 – без НДС

      taxes: {

        tax0 = 1

        tax1 = 2

        tax2 = 3

        tax3 = 4

        tax4 = 5

        tax5 = 6

        defaultTax = 1          # Если у товара не указана налоговая группа берётся максимальный налог (это номер налога в ККТ!)

      }

      # соответствие налога в СП ККТ (слева) и налоговой группы в УКМ 5 (справа).

      # tax1 – НДС 20;

      # tax2 – НДС 10;

      # tax3 – НДС 20/120;

      # tax4 – НДС 10/110;

      # tax5 – НДС 0;

      # tax6 – без НДС

      taxes: {

        tax1 = 1

        tax2 = 2

        tax3 = 3

        tax4 = 4

        tax5 = 5

        tax6 = 6

        defaultTax = 1          # Если у товара не указана налоговая группа берётся максимальный налог (это номер налога в ККТ!)

      }

Подробные инструкции по настойке налоговых групп для каждой модели ККТ можно найти здесь.

Для комиссионеров, пользующихся УСН, есть возможность передать в УКМ 5 размер используемой налоговой ставки для товара через API, заполнив поле payVat (запрос /api/v1/import/legalEntities) одним из следующих значений: usn_no_nds (УСН не плательщик НДС), osn (ОСН), usn5 (УСН 5%), usn7 (УСН 7%).

Реализация в недалеком будущем

По мере развития продукта СуперМаг УКМ5, планируется реализация следующих параметров, формальное наличие которых в API-документации на текущий момент не означает, что они функционально реализованы:


/api/v1/import/store/{id}/barcodePrices

      isPromoPrice – признак того, что торговая система проводит акцию на данный товар в данном магазине

      dateTo – дата и время начала действия цены

      dateFrom – дата и время окончания действия цены


/api/v1/import/store/{id}/itemPrices

      isPromoPrice – признак того, что торговая система проводит акцию на данный товар в данном магазине


/api/v1/import/items

      descr – подробное описание товара


/api/v1/import/itemProperties

      showToCashier – показывать свойство на экране кассира

      printOnReceipt – печатать значение свойства в чеке


/api/v1/import/taxGroups

      fpCode – код налоговой группы в фискальном устройстве.

Экспорт продаж

Особенности

Экспорт продаж может происходить двумя способами:

1. Сервер УКМ 5 работает как клиент для сервера товаро-учетной системы. Т.е. в товаро-учетной системе должен быть REST API-сервис, который реализует следующую схему запросов:

/api/v1/export/receipt – Экспорт чеков. Этот метод должен быть реализован на внешнем сервере.

/api/v1/export/shift – Экспорт смены с чеками. Этот метод должен быть реализован на внешнем сервере. 

/api/v1/export/moneyOperation – Экспорт операций с денежным ящиком. Этот метод должен быть реализован на внешнем сервере.

  • Данные выгружаются из kafka. Для работы требуется, чтобы была включена передача данных с касс через kafka.
  • Смены выгружаются по факту закрытия вместе со всеми чеками, которые были в каждой смене. При этом, чеки запрашиваются из базы данных. Если в базе данных не хватает чеков, смена не будет выгружаться.
  • Данные выгружаются последовательно, в порядке прихода с касс. Если при выгрузке данных возникает внутренняя ошибка (например, не все чеки по смене пришли на сервер), данные перекладываются в отдельный топик, чтобы не блокировать выгрузку остальных данных. Фоновый процесс пытается выгрузить данные из топика с ошибками.
  • Данные хранятся в kafka 7 дней. Если за это время они не будут выгружены, то будут потеряны.
  • Т.к. данные выгружаются по мере их прихода с касс, то информация выгружается только единожды. Если внешней системе нужна информация повторно, то необходимо воспользоваться запросами, приведенными ниже.

2. Сервер УКМ 5 работает как сервер для товаро-учетной системы, т.е. товаро-учетная система обращается к серверу УКМ 5 и получает нужную информацию:

/api/v1/export/receipt/{storeId}/{date} – Экспорт чеков по запросу за дату (по всем кассам магазина).

/api/v1/export/shiftWOReceipts/{storeId}/{date} – Экспорт смен без чеков по запросу за дату (по всем кассам магазина).

/api/v1/export/shift/{storeId}/{posId}/{date} – Экспорт конкретной смены (вместе с чеками) по запросу.

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

В обоих вариантах взаимодействия авторизация не требуется. Безопасность обеспечивается IT-службами клиента.

Выгрузка оперативных продаж

Для метода /api/v1/export/receiptPackage существует ряд запросов:

Название запросаТип запросаПараметры запросаКод ответаТело ответа
1Выгрузка чеков с подтверждениемGET
200Чеки со статусом выгрузки Невыгруженные чеки. Количество чеков в пачке ограничено параметром Размер пачки.
700Имеется блокировка на выгрузку.
500Ошибка, описание ошибки.
2Подтверждение получения и обработки пачки чековPUT
200Ok.
500Ошибка, описание ошибки.
3Удаление блокировкиDELETE
200Ok.
500Ошибка, описание ошибки.

Мапирование кодов средств оплаты

API УКМ 5 допускает использование кастомных кодов для обозначения различных средств оплаты. Для активации механизма мапирования кодов средств оплаты, необходимо обратиться к команде техподдержки УКМ 5.

Механизм мапирования фигурирует в выгружаемой информации по чеку (например, /api/v1/export/receiptPackage) и реализован через переменную pType:

paymentTypeMap: [
{externalId = 1, pType = "cash"},
{externalId = 2, pType = "card"},
{externalId = 3, pType = "certificate"}]

Здесь pType может принимать следующие значения:

      - cash – наличные;

      - card – банковская карта;

      - certificate – подарочный сертификат/подарочная карта;

      - PayCard – платежная карта (не банковская);

      - other – другие средства оплаты.

Если для pType задано значение, то для всех средств оплаты с данным pType значение Receipt.payments.paymentId заменяется на значение, указанное в параметре externalId.

Если мапирование не задано, то Receipt.payments.paymentId выгружается без изменения.

Внимание! Мапирование кодов средств оплаты не реализовано для запросов по выгрузке смен.

Расчет налогов

Расчет налогов кассой носит справочный характер и может не совпадать с расчетом налогов, выполненным ККТ (и переданным в ОФД), а также не совпадать с расчетом, сделанным в соответствии с правилами бухгалтерского учета.

{"paths":{"/api/v1/import/store/{id}/barcodePrices":{"post":{"operationId":"importBarcodePrices","tags":["routes"],"summary":"Импорт цен, назначенных на штрихкоды товара","description":"Импорт цен, назначенных на штрихкоды товара","parameters":[{"in":"path","name":"id","type":"string","required":true},{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.BarcodePriceList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/items":{"post":{"operationId":"importItems","tags":["routes"],"summary":"Импорт товаров","description":"Импорт товаров","parameters":[{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.ItemList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/groupItems":{"post":{"operationId":"importGroupItems","tags":["routes"],"summary":"Импорт групп товаров","description":"Импорт групп товаров (товарная иерархия)","parameters":[{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.GroupItemList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/store/{id}/itemPrices":{"post":{"operationId":"importItemPrices","tags":["routes"],"summary":"Импорт цен на товары","description":"Импорт цен на товары","parameters":[{"in":"path","name":"id","type":"string","required":true},{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.ItemPriceList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/store/{id}/AlternativeItemPrices":{"post":{"operationId":"importAlternativeItemPrices","tags":["routes"],"summary":"Импорт альтернативных цен на товары","description":"Импорт альтернативных цен на товары","parameters":[{"in":"path","name":"id","type":"string","required":true},{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.AlternativeItemPriceList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/store/{id}/AdditionalItemPrices":{"post":{"operationId":"importAdditionalItemPrices","tags":["routes"],"summary":"Импорт дополнительных цен на товары","description":"Импорт дополнительных цен на товары","parameters":[{"in":"path","name":"id","type":"string","required":true},{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.AdditionalItemPriceList"}}],"responses":{"200":{"description":"Успешная загрузка"},"400":{"description":"Плохой запрос (дубликаты или неверно заполнена структура)"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/picklists":{"post":{"operationId":"importPicklists","tags":["routes"],"summary":"Импорт picklist","description":"Импорт picklist (произвольные Перечни товаров)","parameters":[{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.PicklistList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/store/{id}/sellers":{"post":{"operationId":"importSellers","tags":["routes"],"summary":"Импорт продавцов и их карт","description":"Импорт продавцов и их карт (индивидуальные продажи)","parameters":[{"in":"path","name":"id","type":"string","required":true},{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.SellerList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/taxGroups":{"post":{"operationId":"importTaxGroups","tags":["routes"],"summary":"Импорт групп налогов","description":"Импорт групп налогов","parameters":[{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.TaxGroupList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/taxes":{"post":{"operationId":"importTaxes","tags":["routes"],"summary":"Импорт налогов","description":"Импорт налогов","parameters":[{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.TaxList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/store/{id}/users":{"post":{"operationId":"importUsers","tags":["routes"],"summary":"Импорт пользователей","description":"Импорт пользователей касс (кассиров)","parameters":[{"in":"path","name":"id","type":"string","required":true},{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.UserList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/legalEntityItemVendors":{"post":{"operationId":"importLegalEntityItemVendors","tags":["routes"],"summary":"Импорт поставщиков","description":"Импорт поставщиков товаров для магазинов","parameters":[{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.LegalEntityItemVendorList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/legalEntityItemContractors":{"post":{"operationId":"importLegalEntityItemContractors","tags":["routes"],"summary":"Импорт продавцов товаров","description":"Импорт продавцов товаров для магазинов","parameters":[{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.LegalEntityItemContractorList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/legalEntities":{"post":{"operationId":"importLegalEntities","tags":["routes"],"summary":"Импорт юр. лиц","description":"Импорт юридических лиц","parameters":[{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.LegalEntityList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/itemProperties":{"post":{"operationId":"importItemProperties","tags":["routes"],"summary":"Импорт свойств товаров","description":"Импорт дополнительных свойств товаров","parameters":[{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.ItemPropertiesList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/legalEntityItemPaymentAgents":{"post":{"operationId":"importLegalEntityItemPaymentAgents","tags":["routes"],"summary":"Импорт привязки платежного агента к товару-услуге","description":"Импорт привязки платежного агента к товару-услуге","parameters":[{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.LegalEntityItemPaymentAgentList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/import/barcodeProperties":{"post":{"operationId":"importBarcodeProperties","tags":["routes"],"summary":"Импорт свойств штрих-кодов товаров","description":"Импорт дополнительных свойств штрих-кода товаров","parameters":[{"in":"body","name":"body","schema":{"$ref":"#/definitions/models.importer.BarcodePropertiesList"}}],"responses":{"200":{"description":"Успешная загрузка"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}},"consumes":["application/json"]}},"/api/v1/export/receipt/{storeId}/{date}":{"get":{"operationId":"exportReceipts","tags":["routes"],"summary":"Экспорт чеков по запросу за дату","parameters":[{"in":"path","name":"storeId","description":"Номер магазина во внешней товароучётной системе","type":"string","required":true},{"in":"path","name":"date","description":"Дата закрытия чека в формате `yyyy-MM-dd`","type":"string","required":true}],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/models.exporter.ReceiptsList"}},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}}}},"/api/v1/export/receiptPackage":{"get":{"operationId":"getReceiptPackage","tags":["routes"],"summary":"Запрос очередного пакета чеков","description":"Экспорт пакета чеков с подтверждением обработки пакета чеков","responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/models.exporter.ReceiptsList"}},"404":{"description":"Нет необработанных чеков","schema":{"type":"string"}},"423":{"description":"Получение пакета блокировано, так как нет подтверждения обработки предыдущего пакета","schema":{"type":"string"}},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}}},"delete":{"operationId":"unlockReceiptPackage","tags":["routes"],"summary":"Сброс блокировки повторной выгрузки пакета чеков","description":"Сброс блокировки повторной выгрузки пакета чеков","responses":{"200":{"description":"success"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}}},"put":{"operationId":"confirmReceiptPackage","tags":["routes"],"summary":"Подтверждение обработки пакета чеков","description":"Подтверждение обработки пакета чеков после операции запроса пакета чеков","responses":{"200":{"description":"success"},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}}}},"/api/v1/export/shiftWOReceipts/{storeId}/{date}":{"get":{"operationId":"exportShiftsWOReceipts","tags":["routes"],"summary":"Экспорт смен без чеков по запросу за дату","parameters":[{"in":"path","name":"storeId","description":"Номер магазина во внешней товароучётной системе","type":"string","required":true},{"in":"path","name":"date","description":"Дата закрытия смены в формате `yyyy-MM-dd`","type":"string","required":true}],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/models.exporter.ShiftWOReceiptsList"}},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}}}},"/api/v1/export/shift/{storeId}/{posId}/{date}":{"get":{"operationId":"exportShifts","tags":["routes"],"summary":"Экспорт смены по запросу","description":"Экспорт конкретной смены со всеми имеющимися по ней данными","parameters":[{"in":"path","name":"storeId","description":"Номер магазина во внешней товароучётной системе","type":"string","required":true},{"in":"path","name":"posId","description":"Номер кассы","type":"string","required":true},{"in":"path","name":"date","description":"Дата закрытия смены в формате `yyyy-MM-dd`","type":"string","required":true}],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/models.exporter.ShiftWithReceiptsList"}},"404":{"description":"Смена по запрошенным параметрам не найдена","schema":{"type":"string"}},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}}}},"/api/v1/export/moneyOperation/{storeId}/{posId}/{date}":{"get":{"operationId":"exportMoneyOperations","tags":["routes"],"summary":"Экспорт операций с денежным ящиком.","description":"Экспорт операций с денежным ящиком с данными","parameters":[{"in":"path","name":"storeId","description":"Номер магазина во внешней товароучётной системе","type":"string","required":true},{"in":"path","name":"posId","description":"Номер кассы","type":"string","required":true},{"in":"path","name":"date","description":"Дата операции в формате `yyyy-MM-dd`","type":"string","required":true}],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/models.exporter.MoneyOperationList"}},"404":{"description":"Операции с денежным ящиком по запрошенным параметрам не найдены","schema":{"type":"string"}},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}}}},"/api/v1/export/receipt":{"get":{"operationId":"index","tags":["routes"],"summary":"Экспорт чеков. Этот метод должен быть реализован на внешнем сервере. Тут просто приведена схема.","responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/models.exporter.Receipt"}},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}}}},"/api/v1/export/shift":{"get":{"operationId":"index","tags":["routes"],"summary":"Экспорт смены. Этот метод должен быть реализован на внешнем сервере. Тут просто приведена схема","responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/models.exporter.ShiftWithReceipts"}},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}}}},"/api/v1/export/moneyOperation":{"get":{"operationId":"index","tags":["routes"],"summary":"Экспорт операций с денежным ящиком. Этот метод должен быть реализован на внешнем сервере. Тут просто приведена схема","responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/models.exporter.MoneyOperation"}},"500":{"description":"Ошибка обработки","schema":{"type":"string"}}}}}},"produces":["application/json"],"definitions":{"models.importer.ItemPropertiesList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.ItemProperties"}}},"required":["elements"]},"models.importer.TaxRate":{"properties":{"tax":{"$ref":"#/definitions/models.importer.Tax"},"percent":{"format":"int32","description":"Налоговая ставка в процентах (10 или 20)","type":"integer"}},"required":["tax","percent"]},"ru.servplus.pos.common.models.receipt.common.AgentType":{"properties":{}},"models.exporter.ShiftWithReceipts":{"description":"Основная модель Информация о смене (включая чеки)","properties":{"receipts":{"type":"array","items":{"$ref":"#/definitions/models.exporter.Receipt"}},"expenseCount":{"type":"integer","format":"int32"},"kkmExpenseCount":{"type":"integer","format":"int32"},"expenseAmount":{"type":"number","format":"double"},"counters":{"$ref":"#/definitions/models.exporter.ShiftCounters"},"shift":{"$ref":"#/definitions/models.exporter.Shift"},"payments":{"type":"array","items":{"$ref":"#/definitions/models.exporter.ShiftPayment"}},"fnInfo":{"$ref":"#/definitions/models.exporter.ShiftFNInfo"},"kkmExpenseAmount":{"type":"number","format":"double"},"kkmInfo":{"$ref":"#/definitions/models.exporter.ShiftKKMInfo"}},"required":["shift","payments","receipts"]},"models.exporter.MoneyOperationList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.exporter.MoneyOperation"}}},"required":["elements"]},"models.importer.SellerCard":{"description":"Карта продавца","properties":{"number":{"description":"Код идентификации, записанный на карте","type":"string","maxLength":40},"dateTill":{"format":"date-time","description":"Дата окончания действия карты","type":"string","example":"2018-06-22T08:00:19"},"active":{"type":"boolean"},"dateFrom":{"format":"date-time","description":"Дата начала действия карты","type":"string","example":"2018-06-22T08:00:19"}},"required":["number","active"]},"models.exporter.ShiftCounters":{"description":"Информация о количестве чеков за смену по данным кассы","properties":{"receiptsExpense":{"type":"integer","format":"int32"},"posId":{"format":"int64","description":"ИД кассы","type":"integer"},"shiftId":{"format":"int64","description":"Уникальный (в рамках кассы) идентификатор смены","type":"integer"},"receiptsReturn":{"format":"int32","description":"Количество чеков возвратов за смену по данным кассы","type":"integer"},"receiptsCancel":{"format":"int32","description":"Количество аннулированных чеков за смену по данным кассы","type":"integer"},"moneyboxAmount":{"format":"double","description":"сумма наличных в денежном ящике после закрытия смены","type":"number"},"cumulativeSale":{"format":"double","description":"накопительный итог продаж с начала работы кассы","type":"number"},"insertion":{"format":"int32","description":"Количество внесений в денежный ящик за смену по данным кассы","type":"integer"},"withdrawal":{"format":"int32","description":"Количество изъятий из денежного ящика за смену по данным кассы","type":"integer"},"storeId":{"description":"ИД магазина","type":"string"},"receiptsSale":{"format":"int32","description":"Количество чеков продаж за смену по данным кассы","type":"integer"}},"required":["posId","storeId","shiftId","cumulativeSale","receiptsSale","receiptsReturn","receiptsCancel","insertion","withdrawal"]},"models.importer.AdditionalItemPriceList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.AdditionalItemPrice"}}},"required":["elements"]},"ru.servplus.pos.common.models.receipt.common.DiscountKind":{"description":"manual-ручная скидка или отсутствует (пусто)","properties":{}},"models.importer.GroupItemList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.GroupItem"}}},"required":["elements"]},"ru.servplus.pos.common.models.receipt.common.ReceiptNumber":{"properties":{"posNumber":{"format":"int64","type":"integer"},"shiftNumber":{"format":"int64","type":"integer"},"globalDocNumber":{"format":"int64","type":"integer"},"receiptNumber":{"format":"int64","type":"integer"}},"required":["posNumber","shiftNumber","receiptNumber","globalDocNumber"]},"models.exporter.ReceiptDates":{"description":"даты чека","properties":{"dateOpen":{"format":"date-time","description":"дата-время начала чека","type":"string","example":"2018-06-22T08:00:19"},"dateClose":{"format":"date-time","description":"дата-время окончания чека","type":"string","example":"2018-06-22T08:00:19"},"dateSubtotal":{"format":"date-time","description":"дата-время начала оплаты чека (последнего подытога)","type":"string","example":"2018-06-22T08:00:19"}},"required":["dateOpen","dateClose"]},"ru.servplus.pos.common.models.receipt.common.DiscountProgramSource":{"properties":{}},"ru.servplus.pos.common.models.receipt.common.OperationMode":{"description":"0 - расчет скидок выполнялся при наличие связи с сервером маркетинга УКМ5, 1 - при отсутствии связи","properties":{}},"models.exporter.misc.AwardCoupon":{"properties":{"expiryDate":{"format":"date-time","type":"string"},"number":{"type":"string"},"amount":{"$ref":"#/definitions/Money"},"effectDate":{"format":"date-time","type":"string"},"comment":{"type":"string"}},"required":["number","comment"]},"models.importer.LegalEntity":{"description":"юр. лицо","properties":{"agentType":{"description":"тип агента","type":"string","enum":["broker","agent","bankAgent","notSet"]},"phoneNumber":{"type":"string"},"address":{"type":"string"},"deleted":{"type":"boolean"},"inn":{"description":"ИНН. Может быть или юр. лица, или физ. лица","type":"string","maxLength":40},"name":{"description":"название","type":"string","maxLength":100},"payVat":{"description":"Система налогообложения. Возможные варианты: \"usn_no_nds\" - УСН не плательщик НДС, \"osn\" - ОСН, \"usn5\" - УСН 5% НДС, \"usn7\" - УСН 7% НДС","type":"string","enum":["usn_no_nds","osn","usn5","usn7"]}},"required":["inn","name","payVat","agentType","deleted"]},"models.importer.LegalEntityItemVendorList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.LegalEntityItemVendor"}}},"required":["elements"]},"ru.servplus.pos.common.models.receipt.common.DiscountInfo":{"properties":{"amount":{"description":"сумма скидки","$ref":"#/definitions/Money"},"code":{"type":"string"},"programSource":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.DiscountProgramSource"},"couponNumber":{"type":"string"},"externalCode":{"type":"string"},"kind":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.DiscountKind"},"couponQuantity":{"format":"int32","type":"integer"},"name":{"description":"название скидки","type":"string"},"discountCard":{"description":"номер диск.карты (если скидка была предоставлена по диск.карте) это НЕ карта клиента!","type":"string"},"mechanicId":{"format":"int32","type":"integer"},"id":{"format":"int32","description":"ИД скидки","type":"integer"},"efts":{"format":"int32","description":"код типа скидки","type":"integer"}},"required":["id","efts","name","amount"]},"models.importer.LegalEntityItemContractorList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.LegalEntityItemContractor"}}},"required":["elements"]},"ru.servplus.common.documents.rawreceipt.RawReceiptType":{"description":"sale - чек продажи, refundOnReceipt - возврат на основании чека","properties":{}},"models.exporter.ShiftWOReceipts":{"properties":{"shift":{"$ref":"#/definitions/models.exporter.Shift"},"counters":{"$ref":"#/definitions/models.exporter.ShiftCounters"},"kkmInfo":{"$ref":"#/definitions/models.exporter.ShiftKKMInfo"},"fnInfo":{"$ref":"#/definitions/models.exporter.ShiftFNInfo"},"payments":{"type":"array","items":{"$ref":"#/definitions/models.exporter.ShiftPayment"}},"expenseAmount":{"type":"number","format":"double"},"expenseCount":{"type":"integer","format":"int32"},"kkmExpenseAmount":{"type":"number","format":"double"},"kkmExpenseCount":{"type":"integer","format":"int32"}},"required":["shift","payments"]},"models.importer.GroupAttribute":{"description":"аттрибут группы. Используется для ограничений продажи и маркировки. Возможные значения alcohol, tobacco, egais, markedTobacco, markedGoods, advance, noSellerRequired, service, energyDrink, naturalGas","properties":{"id":{"type":"string","maxLength":40}},"required":["id"]},"models.importer.ItemProperty":{"description":"дополнительное свойство товара","properties":{"showToCashier":{"type":"boolean"},"values":{"description":"возможные значения свойства. Если не задано, должен ввести кассир. Если задано одно, оно подставляется по умолчанию. Если задан список, кассир выбирает из списка.","type":"array","items":{"$ref":"#/definitions/models.importer.ItemPropertyValue"}},"name":{"description":"название свойства","type":"string"},"printOnReceipt":{"type":"boolean"},"id":{"description":"идентификатор свойства","type":"string"}},"required":["id","name","values","showToCashier","printOnReceipt"]},"models.importer.barcode.BarcodeProperty":{"description":"дополнительное свойство штрих-кода товара","properties":{"showToCashier":{"type":"boolean"},"values":{"description":"возможные значения свойства. Если не задано, должен ввести кассир. Если задано одно, оно подставляется по умолчанию. Если задан список, кассир выбирает из списка.","type":"array","items":{"$ref":"#/definitions/models.importer.barcode.BarcodePropertyValue"}},"name":{"description":"название свойства","type":"string"},"printOnReceipt":{"type":"boolean"},"id":{"description":"идентификатор свойства","type":"string"}},"required":["id","name","values","showToCashier","printOnReceipt"]},"models.exporter.ReceiptsList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.exporter.Receipt"}}},"required":["elements"]},"ru.servplus.pos.common.models.receipt.common.Gift":{"description":"Перечень подарков, выданных по чеку в рамках системы лояльности","properties":{"item":{"description":"Код (артикул) товара, выданного как подарок","type":"string"},"quantity":{"$ref":"#/definitions/ru.servplus.pos.common.models.Quantity"}},"required":["item","quantity"]},"ru.servplus.pos.common.models.receipt.sale.EGAISMark":{"description":"марка ЕГАИС, прочитанная с товара","properties":{"mark":{"description":"марка","type":"string"}},"required":["mark"]},"ru.servplus.pos.common.models.receipt.common.ItemProperty":{"properties":{"showToCashier":{"type":"boolean"},"values":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.ItemPropertyValue"}},"name":{"type":"string"},"printOnReceipt":{"type":"boolean"},"id":{"type":"string"}},"required":["id","name","values","showToCashier","printOnReceipt"]},"models.importer.BarcodePropertiesList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.barcode.BarcodeProperties"}}},"required":["elements"]},"models.importer.LegalEntityList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.LegalEntity"}}},"required":["elements"]},"models.importer.Barcode":{"description":"Штрихкод товара","properties":{"quantity":{"format":"double","description":"Количество товара по штрихкоду (в упаковке) (для штучного товара значение 0 трактуется кассой как 1)","type":"number"},"id":{"description":"Штрихкод товара","type":"string","maxLength":40}},"required":["id","quantity"]},"ru.servplus.pos.common.models.receipt.sale.Requisite":{"properties":{"code":{"type":"string"},"rType":{"type":"integer","format":"int32"}},"required":["code","rType"]},"ru.servplus.pos.common.models.User":{"description":"кассир","properties":{"roleId":{"format":"int64","description":"код роли кассира","type":"integer"},"name":{"description":"ФИО","type":"string"},"inn":{"description":"ИНН кассира","type":"string"},"id":{"format":"int64","description":"код кассира","type":"integer"}},"required":["id","name","roleId"]},"models.importer.TaxGroup":{"description":"Налоговая группа (ее id указывается у товара)","properties":{"taxRates":{"type":"array","items":{"$ref":"#/definitions/models.importer.TaxRate"}},"isPreferential":{"type":"boolean"},"advanceTaxId":{"format":"int64","type":"integer"},"id":{"format":"int64","description":"Код налоговой группы (с кодом в ККТ не связан напрямую)","type":"integer"},"delete":{"type":"boolean"},"fpCode":{"description":"Не используется","type":"string","maxLength":20}},"required":["id","fpCode","taxRates","delete"]},"models.exporter.misc.MarketingResult":{"properties":{"efts":{"type":"integer","format":"int32"},"transactionID":{"type":"string"},"transactionTime":{"type":"string"},"operationType":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.OperationType"},"operationMode":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.OperationMode"},"cardNum":{"type":"string"},"discountAmount":{"$ref":"#/definitions/Money"},"awardBonuses":{"$ref":"#/definitions/Money"},"usedBonuses":{"$ref":"#/definitions/Money"},"origTransactionID":{"type":"string"},"awardCoupons":{"type":"array","items":{"$ref":"#/definitions/models.exporter.misc.AwardCoupon"}},"usedCoupons":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.UsedCoupon"}},"gifts":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.Gift"}}},"required":["efts","transactionTime","operationType","operationMode","discountAmount","awardBonuses","usedBonuses","awardCoupons","usedCoupons","gifts"]},"ru.servplus.pos.common.models.receipt.sale.KKTKIZ":{"description":"информация для маркир.товаров, отправленная в ККТ","properties":{"kizType":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.KIZType"},"kktCode":{"description":"массив байт, который был отправлен в ККТ (тег 1162)","type":"string"},"serial":{"description":"уникальный код маркированного товара","type":"string"},"requisite":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.Requisite"},"checkResult":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.CheckResult"}},"required":["kktCode","kizType"]},"ru.servplus.pos.common.models.receipt.sale.EGAISReceiptData":{"properties":{"sign":{"description":"Подпись чека от УТМ","type":"string"},"id":{"type":"string"}},"required":["sign","id"]},"ru.servplus.common.documents.rawreceipt.RawReceiptResult":{"description":"completed - нормально завершенный чек, canceled - отмененный чек","properties":{}},"models.importer.User":{"description":"Пользователь кассы (кассир)","properties":{"password":{"description":"Пароль кассира (в открытом виде)","type":"string","maxLength":48},"cards":{"description":"Перечень карт кассира","type":"array","items":{"$ref":"#/definitions/models.importer.UserCard"}},"roleId":{"format":"int64","description":"Код роли (кассир, ст.кассир и т.д.)","type":"integer"},"name":{"description":"Имя (ФИО) кассира","type":"string","maxLength":100},"inn":{"description":"ИНН кассира","type":"string","maxLength":20},"id":{"format":"int64","description":"Код кассира","type":"integer"},"delete":{"type":"boolean"}},"required":["id","name","roleId","cards","delete"]},"ru.servplus.common.documents.misc.PosTypeExtended":{"properties":{}},"ru.servplus.pos.common.models.receipt.sale.Client":{"description":"Клиент системы лояльности. Заполнение зависит от системы лояльноси","properties":{"refusePaperCheck":{"type":"boolean"},"registerType":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.RegisterType"},"patronymic":{"description":"Отчество клиента","type":"string"},"phone":{"type":"string"},"surname":{"description":"Фамилия клиента","type":"string"},"name":{"description":"Имя клиента","type":"string"},"loyalitySysUID":{"description":"код (efts) системы лояльности, в которой зарегистрирован клиент","type":"string"},"id":{"type":"integer","format":"int32"},"category":{"description":"категория клиента (если вернула система лояльности)","type":"string"},"phoneConfirmed":{"type":"boolean"},"cardNumber":{"description":"номер карты клиента","type":"string"},"email":{"type":"string"},"account":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.Account"}},"required":["surname","name","patronymic","cardNumber","category","loyalitySysUID"]},"models.exporter.ReceiptAdditionalParams":{"description":"параметры чека","properties":{"marketingResults":{"description":"Для каждой системы маркетинга отдельная запись","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.MarketingResult"}},"discountCards":{"description":"все диск.карты (не карты клиентов!), которые были введены в чеке через шаблон ввода. Часть из них (которые привели в предоставлению скидки), перечислены в модели MarketingResult","type":"array","items":{"type":"string"}},"couponsCodes":{"description":"все купоны, введенные в чек через шаблон ввода. Примененные/выданные купоны в модели MarketingResult","type":"array","items":{"type":"string"}},"returnReason":{"$ref":"#/definitions/models.exporter.ExportableReturnReason"},"egaisReceiptData":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.EGAISReceiptData"},"client":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.Client"},"customerContactInfo":{"description":"контактные данные покупателя для отправки чека через ОФД (телефон или почта)","type":"string"},"posType":{"description":"тип кассы","type":"string"},"supervisor":{"description":"для отмененных чеков кассир, отменивший чек","$ref":"#/definitions/ru.servplus.pos.common.models.User"},"properties":{"description":"дополнительные свойства, привязанные к чеку","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.Property"}},"originalReceiptNumbers":{"description":"для чеков возврата по чеку номер исходного чека продажи","$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.ReceiptNumber"},"originalReceiptId":{"description":"для чеков возврата по чеку id исходного чека продажи","$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.ReceiptId"}},"required":["marketingResults"]},"ru.servplus.pos.common.models.receipt.common.BarcodePropertyValue":{"properties":{"name":{"type":"string"},"id":{"type":"string"}},"required":["id","name"]},"ru.servplus.pos.common.models.receipt.sale.Account":{"properties":{"id":{"type":"integer","format":"int32"},"number":{"type":"string"},"balance":{"type":"number","format":"double"},"balanceInCurrency":{"type":"string"},"appliedAward":{"type":"number","format":"double"},"appliedAwardInCurrency":{"type":"string"},"active":{"type":"number","format":"double"},"activeInCurrency":{"type":"string"},"balanceInactive":{"type":"number","format":"double"},"balanceInactiveInCurrency":{"type":"string"},"appliedInactiveAward":{"type":"number","format":"double"},"appliedInactiveAwardInCurrency":{"type":"string"},"inactive":{"type":"number","format":"double"},"inactiveInCurrency":{"type":"string"}},"required":["id","number"]},"models.importer.AlternativeItemPrice":{"properties":{"itemId":{"type":"string","maxLength":40},"minprice":{"format":"double","type":"number"},"price":{"format":"double","type":"number"},"description":{"type":"string","maxLength":100},"delete":{"type":"boolean"}},"required":["itemId","price","minprice","description","delete"]},"ru.servplus.pos.common.models.Quantity":{"description":"значение количества","properties":{"decimals":{"format":"int32","description":"вспомогательное поле - количество символов в дробной части","type":"integer"},"value":{"format":"double","description":"значение количества","type":"number"}},"required":["value","decimals"]},"models.exporter.ShiftFNInfo":{"description":"Информация о состоянии ФН на момент закрытия смены","properties":{"shiftId":{"format":"int64","description":"Уникальный (в рамках кассы) идентификатор смены","type":"integer"},"ofdQueueLength":{"format":"int32","description":"Количество документов в очереди в ОФД","type":"integer"},"longWaitOFD":{"description":"Превышено время работы без отправки чеков в ОФД","type":"boolean"},"firstQueueDocNumber":{"format":"int32","description":"Номер первого неотправленного в ОФД документа","type":"integer"},"storeId":{"description":"ИД магазина","type":"string"},"firstQueueDocDateTime":{"format":"date-time","description":"Дата-время первого неотправленного в ОФД документа","type":"string","example":"2018-06-22T08:00:19"},"fiscalDocNumber":{"format":"int32","description":"Номер последнего записанного в ФН документа","type":"integer"},"posId":{"format":"int64","description":"ИД кассы","type":"integer"},"needChangeFN":{"description":"Признак необходимости замены ФН (по времени). Осталось менее 3 дней","type":"boolean"},"fnNumber":{"description":"Заводской номер ФН","type":"string"},"shiftState":{"format":"int32","description":"состояние смены в ККТ 0 - смена открыта, 1 - смена закрыта","type":"integer"},"endingResourceFN":{"description":"Приближается необходимость замены ФН (по времени). Осталось 30 дней","type":"boolean"},"lifePhase":{"format":"int32","description":"= 2 открыт фискальный режим","type":"integer"},"lifeTime":{"format":"date-time","description":"Срок действия ФН","type":"string","example":"2018-06-22T08:00:19"},"overflowFN":{"description":"Переполнение ФН по памяти (более 90% заполнено)","type":"boolean"},"status":{"format":"int32","type":"integer"}},"required":["posId","storeId","shiftId"]},"models.importer.ItemPriceList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.ItemPrice"}}},"required":["elements"]},"models.importer.ItemPrice":{"description":"Цена на товар (на уникальный код)","properties":{"itemId":{"description":"Уникальный код товара","type":"string","maxLength":40},"isPromoPrice":{"description":"Признак, что данная цена акционная (промо)","type":"boolean"},"minprice":{"format":"double","description":"Минимальна цена","type":"number"},"price":{"format":"double","description":"Цена","type":"number"},"dateTo":{"format":"date-time","description":"Дата окончания действия цены","type":"string","example":"2018-06-22T08:00:19"},"dateFrom":{"format":"date-time","description":"Дата начала действия цены","type":"string","example":"2018-06-22T08:00:19"},"delete":{"type":"boolean"}},"required":["itemId","price","minprice","isPromoPrice","delete"]},"ru.servplus.pos.common.models.Money":{"properties":{"value_j":{"type":"java.bigdecimal"},"currencyCode":{"type":"string"},"decimals":{"type":"integer","format":"int32"},"roundingMode":{"type":"string","enum":["ROUND_HALF_EVEN","ROUND_UP","ROUND_CEILING","ROUND_HALF_UP","ROUND_UNNECESSARY","ROUND_HALF_DOWN","ROUND_DOWN","ROUND_FLOOR"]}},"required":["value_j","currencyCode","decimals","roundingMode"]},"models.importer.ItemProperties":{"description":"список дополнительных свойств товара","properties":{"itemId":{"description":"код товара","type":"string"},"deleted":{"type":"boolean"},"properties":{"description":"свойства","type":"array","items":{"$ref":"#/definitions/models.importer.ItemProperty"}}},"required":["itemId","properties","deleted"]},"models.exporter.Receipt.ReceiptDates":{"properties":{"dateOpen":{"type":"string"},"dateClose":{"type":"string"},"dateSubtotal":{"type":"string"}},"required":["dateOpen","dateClose"]},"ru.servplus.pos.common.models.receipt.sale.KIZType":{"description":"tobacco-маркированное табачное изделие","properties":{}},"ru.servplus.pos.common.models.receipt.common.ReceiptTax":{"description":"налоги по чеку, рассчитанные кассой","properties":{"amount":{"description":"рассчитанное значение налога","$ref":"#/definitions/Money"},"taxId":{"format":"int64","description":"ИД налоговой ставки","type":"integer"},"taxGroupId":{"format":"int64","description":"ИД налоговой группы","type":"integer"},"name":{"description":"название налога","type":"string"},"percent":{"format":"int32","description":"ставка налога","type":"integer"},"fpCode":{"description":"зарезервировано под дальнейшее развитие","type":"string"}},"required":["taxId","taxGroupId","name","percent","amount"]},"ru.servplus.pos.common.models.receipt.common.OperationType":{"description":"0 - взаимодействие с системой лояльности выполнялась в чеке Приход (продажа), 1 - в чеке возврата прихода, 2 - взаимодействие было отменено","properties":{}},"models.importer.Tax":{"description":"Описание налога","properties":{"name":{"description":"Название налога (Например, НДС)","type":"string","maxLength":40},"id":{"format":"int64","description":"Код налога (произвольный идентификатор - например, 1)","type":"integer"},"priority":{"format":"int32","maximum":128,"description":"Приоритет расчета налога (т.к. сейчас существует только НДС, то константа = 10)","type":"integer"}},"required":["id","name","priority"]},"models.importer.LegalEntityItemPaymentAgentList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.LegalEntityItemContractor"}}},"required":["elements"]},"models.importer.BarcodePriceList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.BarcodePrice"}}},"required":["elements"]},"models.importer.LegalEntityStore":{"description":"привязка юр. лица к магазину","properties":{"inn":{"description":"ИНН юр. лица","type":"string","maxLength":40},"storeId":{"description":"ид магазина","type":"string","maxLength":100}},"required":["storeId","inn"]},"models.exporter.Payment":{"description":"Оплата","properties":{"deviceType":{"description":"Тип банковской авторизации для оплат картой","type":"string"},"amount":{"description":"Сумма данным средством оплаты","$ref":"#/definitions/Money"},"qrRequisites":{"description":"Реквизиты QR-оплаты","type":"string"},"authorizationCode":{"description":"Код авторизации для банк.транзакции","type":"string"},"cardType":{"description":"Тип карты (visa, МИР и т.д., если сообщил пин-пад)","type":"string"},"inn":{"description":"ИНН продавца","type":"string"},"channel":{"format":"int32","description":"Канал оплаты: 4 - оплата по токену, 5 - оплата по банковской карте, 6 - оплата бонусами GoCard, 7 - оплата по QR, 8 - возврат по QR, - 9 рассрочка по QR","type":"integer"},"amountWithChange":{"description":"Сумма данная покупателем (для наличных)","$ref":"#/definitions/Money"},"terminalId":{"description":"Идентификатор терминала оплаты, через который была произведена оплата","type":"string"},"uuid":{"description":"уник.номер транзакции (если сообщил пин-пад)","type":"string"},"rrn":{"description":"Номер банк.транзакции (если сообщил пин-пад)","type":"string"},"banknotes":{"description":"Список банкнот","type":"array","items":{"$ref":"#/definitions/models.exporter.Banknote"}},"cardValidTo":{"description":"Дата действия банк.карты (если сообщил пин-пад)","type":"string"},"balance":{"$ref":"#/definitions/Money"},"paymentId":{"format":"int64","description":"ИД средства оплаты","type":"integer"},"bonusAmount":{"format":"double","description":"Количество бонусов, оплаченных в чеке","type":"number"},"xlsId":{"format":"int64","description":"Идентификатор оплаты для бонусов или смешанной оплаты","type":"integer"},"name":{"description":"Название средства оплаты","type":"string"},"pType":{"type":"string","$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.PaymentType","enum":["Other","Card","PayCard","Cash","Unknown","Certificate","Prepayment"]},"cardEntryMode":{"description":"Способ чтения номера карты","type":"string","enum":["D","M","C","F","R","E","I","Q","B","L","P"],"example":"D"},"currencyId":{"format":"int64","description":"ИД валюты","type":"integer"},"cardNumber":{"description":"Номер карты, как его сообщил пин-пад (с маскир.разрядами)","type":"string"}},"required":["paymentId","currencyId","name","pType","deviceType","amount","amountWithChange"]},"models.importer.LegalEntityItemContractor":{"description":"продавец товара. для режима многофискальности","properties":{"itemId":{"description":"код товара","type":"string","maxLength":40},"deleted":{"type":"boolean"},"stores":{"description":"привязка к магазинам","type":"array","items":{"$ref":"#/definitions/models.importer.LegalEntityStore"}},"isGlobal":{"description":"действует во всех магазинах. Если false, то только из списка","type":"boolean"}},"required":["itemId","stores","isGlobal","deleted"]},"ru.servplus.pos.common.models.receipt.sale.ItemSeller":{"description":"продавец, привязанный к позиции","properties":{"cardNum":{"description":"код карты (если регистрировался по карте)","type":"string"},"name":{"description":"ФИО продавца","type":"string"},"id":{"description":"код продавца","type":"string"}},"required":["id","name"]},"models.importer.ItemAttribute":{"description":"аттрибут товара. Используется для ограничений продажи и маркировки. Возможные значения alcohol, tobacco, egais, markedTobacco, markedGoods, advance, noSellerRequired, service, energyDrink, naturalGas","properties":{"id":{"type":"string","maxLength":40}},"required":["id"]},"ru.servplus.pos.common.models.receipt.common.BarcodeProperty":{"properties":{"showToCashier":{"type":"boolean"},"values":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.BarcodePropertyValue"}},"name":{"type":"string"},"printOnReceipt":{"type":"boolean"},"id":{"type":"string"}},"required":["id","name","values","showToCashier","printOnReceipt"]},"ru.servplus.pos.common.models.receipt.common.AwardCoupon":{"description":"Перечень купонов, выданных в чеке в рамках системы лояльности","properties":{"expiryDate":{"format":"date-time","description":"дата окончания действия купона","type":"string","example":"2018-06-22T08:00:19"},"number":{"description":"Номер выданного купона (если он был у купона)","type":"string"},"amount":{"description":"Номинал купона","$ref":"#/definitions/Money"},"effectDate":{"format":"date-time","description":"дата начала действия купона","type":"string","example":"2018-06-22T08:00:19"},"comment":{"type":"string"}},"required":["number","comment"]},"ru.servplus.pos.common.models.receipt.common.ReceiptId":{"properties":{"posId":{"format":"int64","type":"integer"},"shiftId":{"format":"int64","type":"integer"},"externalStoreId":{"type":"string"},"id":{"format":"int64","type":"integer"},"storeId":{"format":"int64","description":"ИД магазина","type":"string"}},"required":["storeId","posId","id"]},"models.importer.barcode.BarcodeProperties":{"description":"список дополнительных свойств штрих-кода товара","properties":{"deleted":{"type":"boolean"},"barcodeId":{"description":"код товара","type":"string"},"properties":{"description":"свойства","type":"array","items":{"$ref":"#/definitions/models.importer.barcode.BarcodeProperty"}}},"required":["barcodeId","properties","deleted"]},"models.importer.SellerList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.Seller"}}},"required":["elements"]},"models.importer.ItemList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.Item"}}},"required":["elements"]},"models.importer.Item":{"description":"Описание товара","properties":{"taxgroupId":{"format":"int64","description":"Код налоговой группы","type":"integer"},"descr":{"description":"Зарезервировано под дальнейшее развитие","type":"string"},"itemGroup":{"description":"Код узла иерархии, к которому привязан товар (символ 0, если товар не привязан к узлам)","type":"string","maxLength":40},"measure":{"description":"Название единицы измерения (печатается в чеке)","type":"string","maxLength":100},"name":{"description":"Название товара (печатается в чеке)","type":"string","maxLength":255},"subExcise":{"type":"boolean"},"attributes":{"description":"Перечень атрибутов товара","type":"array","items":{"$ref":"#/definitions/models.importer.ItemAttribute"}},"id":{"description":"Уникальный код товара","type":"string","maxLength":40},"barcodes":{"description":"Список штрихкодов товара","type":"array","items":{"$ref":"#/definitions/models.importer.Barcode"}},"delete":{"type":"boolean"},"measprec":{"format":"int32","description":"Точность ед.измерения. Количество знаков после запятой. (0 - штучный товар, 3 - весовой товар)","type":"integer"}},"required":["id","name","descr","measure","measprec","itemGroup","barcodes","attributes","delete"]},"models.importer.GroupItem":{"description":"Товарная иерархия","properties":{"owner":{"description":"Код родительского узла (если отсутствует, то символ 0)","type":"string","maxLength":40},"name":{"description":"Название узла иерархии","type":"string","maxLength":80},"attributes":{"type":"array","items":{"$ref":"#/definitions/models.importer.GroupAttribute"}},"id":{"description":"Код узла иерархии","type":"string","maxLength":40},"delete":{"type":"boolean"}},"required":["id","owner","name","delete"]},"ru.servplus.pos.common.models.receipt.common.PaymentType":{"description":"cash-наличные, card-банк.карта, certificate-подар.сертификат/карта, PayCard-платежная карта (не банковская), other-другие средства оплаты","properties":{}},"models.exporter.ExportableReturnReason":{"properties":{"code":{"type":"string"},"name":{"type":"string"},"id":{"format":"int64","type":"integer"}},"required":["id","code","name"]},"models.importer.Picklist":{"description":"Произвольный перечень товаров","properties":{"stores":{"description":"Действует только в указанных магазинах если он не isGlobal","type":"array","items":{"$ref":"#/definitions/models.importer.PicklistStore"}},"name":{"description":"Название перечня товаров","type":"string","maxLength":100},"isGlobal":{"description":"true - Перечень действует во всех магазинах, false - только в магазинах, перечисленных в списке ниже","type":"boolean"},"id":{"exclusiveMaximum":true,"format":"int64","description":"Уникальный идентификатор перечня товаров","maximum":100000000000,"type":"integer"},"items":{"description":"Товары, входящие в Перечень","type":"array","items":{"type":"string"}},"delete":{"type":"boolean"}},"required":["id","name","isGlobal","stores","items","delete"]},"ru.servplus.pos.common.models.receipt.sale.AddItemSource":{"description":"как позиция была добавлена в чек hand-введена вручную, scanner-введена сканером, hotkey-введена по гор.клавише, picklist-выбрана из пиклиста","properties":{}},"models.exporter.Shift":{"description":"Информация о смене","properties":{"posId":{"format":"int64","description":"ИД кассы","type":"integer"},"number":{"format":"int64","description":"Номер смены по ККТ","type":"integer"},"dateOpen":{"format":"date-time","description":"Дата-время открытия смены","type":"string","example":"2018-06-22T08:00:19"},"userIdOpen":{"format":"int64","description":"ИД кассира, открывшего смену","type":"integer"},"userIdClose":{"format":"int64","description":"ИД кассира, закрывшего смену","type":"integer"},"dateClose":{"format":"date-time","description":"Дата-время закрытия смены","type":"string","example":"2018-06-22T08:00:19"},"id":{"format":"int64","description":"Уникальный (в рамках кассы) идентификатор смены","type":"integer"},"storeId":{"description":"ИД магазина","type":"string"},"userNameOpen":{"description":"ФИО кассира, открывшего смену","type":"string"},"userNameClose":{"description":"ФИО кассира, закрывшего смену","type":"string"}},"required":["posId","storeId","id","number","userIdOpen","userNameOpen","dateOpen"]},"models.importer.LegalEntityItemVendor":{"description":"поставщик товара. для режима комиссионной торговли","properties":{"itemId":{"description":"код товара","type":"string","maxLength":40},"deleted":{"type":"boolean"},"stores":{"description":"привязка к магазинам","type":"array","items":{"$ref":"#/definitions/models.importer.LegalEntityStore"}},"isGlobal":{"description":"действует во всех магазинах. Если false, то только из списка","type":"boolean"}},"required":["itemId","stores","isGlobal","deleted"]},"ru.servplus.pos.common.models.receipt.sale.KIZ":{"properties":{"helperCodeString":{"type":"string"},"code":{"type":"string"},"signHelperCode":{"type":"boolean"},"kktKIZ":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.KKTKIZ"},"weight":{"type":"number","format":"double"},"cryptoTail":{"type":"string"}},"required":["code"]},"ru.servplus.pos.common.models.receipt.common.AlternativePrice":{"description":"цена, выбранная из доп.прайс-листа (цены на табак)","properties":{"price":{"description":"Цена из альтернативного прайс-листа","$ref":"#/definitions/Money"},"minPrice":{"description":"мин.цена из альтернативного прайс-листа","$ref":"#/definitions/Money"},"description":{"type":"string"}},"required":["price","minPrice","description"]},"ru.servplus.pos.common.models.receipt.sale.RegisterType":{"properties":{}},"ru.servplus.pos.common.models.receipt.common.LegalEntity":{"description":"юр. лицо","properties":{"agentType":{"description":"тип агента","$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.AgentType"},"phoneNumber":{"type":"string"},"address":{"type":"string"},"paymentAgentPhoneNumber":{"type":"string"},"inn":{"description":"ИНН","type":"string"},"name":{"description":"название","type":"string"},"payVat":{"description":"Система налогообложения. Возможные варианты: \"usn_no_nds\" - УСН не плательщик НДС, \"osn\" - ОСН, \"usn5\" - УСН 5% НДС, \"usn7\" - УСН 7% НДС","type":"string","enum":["usn_no_nds","osn","usn5","usn7"]}},"required":["inn","name","payVat","agentType"]},"models.importer.UserList":{"description":"Список пользователей кассы (кассиров)","properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.User"}}},"required":["elements"]},"ru.servplus.pos.common.models.receipt.common.Property":{"description":"дополнительные свойства в виде \"код-название\". Используется для привязки доп. параметров к чекам, позициям чека и т.д.","properties":{"showToCashier":{"description":"зарезервировано под дальнейшее развитие","type":"boolean"},"name":{"description":"название свойства","type":"string"},"printOnReceipt":{"description":"зарезервировано под дальнейшее развитие","type":"boolean"},"id":{"description":"ID свойства","type":"string"},"value":{"description":"значение свойства","$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.PropertyValue"}},"required":["id","name","showToCashier","printOnReceipt"]},"ru.servplus.pos.common.models.receipt.sale.CheckResult":{"properties":{"code":{"type":"integer","format":"int32"},"status":{"type":"integer","format":"int32"}},"required":["code","status"]},"models.importer.TaxList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.Tax"}}},"required":["elements"]},"ru.servplus.common.documents.moneyoperation.MoneyOperationType":{"description":"deposition - внесение в ден.ящик, withdrawal - изъятие из ден.ящика","properties":{}},"models.exporter.Receipt.ReceiptAdditionalParams":{"properties":{"client":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.Client"},"discountCards":{"type":"array","items":{"type":"string"}},"couponsCodes":{"type":"array","items":{"type":"string"}},"egaisReceiptData":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.EGAISReceiptData"},"marketingResults":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.MarketingResult"}},"posType":{"$ref":"#/definitions/ru.servplus.common.documents.misc.PosTypeExtended"},"customerContactInfo":{"type":"string"},"supervisor":{"$ref":"#/definitions/ru.servplus.pos.common.models.User"},"properties":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.Property"}},"originalReceiptNumbers":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.ReceiptNumber"},"originalReceiptId":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.ReceiptId"},"returnReason":{"$ref":"#/definitions/models.exporter.ExportableReturnReason"}},"required":["marketingResults","posType"]},"models.importer.Seller":{"description":"Продавец (личные продажи)","properties":{"cards":{"description":"Перечень карт продавца","type":"array","items":{"$ref":"#/definitions/models.importer.SellerCard"}},"name":{"description":"Имя (ФИО) продавца","type":"string","maxLength":50},"dismissed":{"format":"date-time","description":"Дата увольнения","type":"string","example":"2018-06-22T08:00:19"},"hired":{"format":"date-time","description":"Дата начала работы","type":"string","example":"2018-06-22T08:00:19"},"id":{"description":"Код (идентификатор) продавца","type":"string","maxLength":50},"delete":{"type":"boolean"}},"required":["id","name","cards","delete"]},"models.importer.UserCard":{"description":"Карта кассира","properties":{"number":{"description":"Код, записанный на карте","type":"string","maxLength":40},"dateTill":{"format":"date-time","description":"Дата окончания действия карты","type":"string","example":"2018-06-22T08:00:19"},"active":{"description":"Признак активности карты","type":"boolean"},"dateFrom":{"format":"date-time","description":"Дата начала действия карты","type":"string","example":"2018-06-22T08:00:19"}},"required":["number","active"]},"models.exporter.Banknote":{"description":"Данные банкноты","properties":{"number":{"description":"Номер банкноты","type":"string"},"nominal":{"format":"int32","description":"Номинал банкноты","type":"integer"}},"required":["nominal","number"]},"models.importer.AlternativeItemPriceList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.AlternativeItemPrice"}}},"required":["elements"]},"ru.servplus.pos.common.models.receipt.common.ItemPropertyValue":{"properties":{"name":{"type":"string"},"id":{"type":"string"}},"required":["id","name"]},"models.importer.TaxGroupList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.TaxGroup"}}},"required":["elements"]},"models.exporter.Receipt":{"description":"чек","properties":{"posNumber":{"format":"int64","description":"номер кассы","type":"integer"},"shiftId":{"format":"int64","description":"ИД смены (сквозной номер смены в базе кассы)","type":"integer"},"posName":{"description":"название кассы","type":"string"},"receiptType":{"type":"string","$ref":"#/definitions/ru.servplus.common.documents.rawreceipt.RawReceiptType","enum":["Sale","RefundOnReceipt","RefundWOReceipt"]},"saleReceiptNum":{"type":"integer","format":"int64"},"shiftNumber":{"format":"int64","description":"номер смены в ККТ","type":"integer"},"additional":{"$ref":"#/definitions/models.exporter.Receipt.ReceiptAdditionalParams"},"removedItems":{"description":"массив удаленных позиций","type":"array","items":{"$ref":"#/definitions/models.exporter.ReceiptItem"}},"payments":{"description":"оплаты по чеку","type":"array","items":{"$ref":"#/definitions/models.exporter.Payment"}},"cashOutSum":{"type":"number","format":"double"},"dates":{"$ref":"#/definitions/models.exporter.Receipt.ReceiptDates"},"storeId":{"description":"ИД магазина","type":"string"},"result":{"type":"string","$ref":"#/definitions/ru.servplus.common.documents.rawreceipt.RawReceiptResult","enum":["Completed","Canceled"]},"posId":{"format":"int64","description":"ИД кассы","type":"integer"},"number":{"format":"int64","description":"номер чека","type":"integer"},"fnNumber":{"description":"Номер ФН","type":"string"},"fiscalDocumentNumber":{"format":"int64","description":"Фискальный номер документа","type":"integer"},"cashierId":{"format":"int64","description":"ИД кассира","type":"integer"},"globalDocNumber":{"format":"int64","description":"сквозной номер документа в базе кассы","type":"integer"},"id":{"format":"int64","description":"внутренний ИД чека","type":"integer"},"calculated":{"$ref":"#/definitions/models.exporter.Receipt.ReceiptCalculatedParams"},"items":{"type":"array","items":{"$ref":"#/definitions/models.exporter.ReceiptItem"}},"cashierName":{"description":"ФИО кассира","type":"string"}},"required":["id","posId","storeId","shiftId","shiftNumber","number","receiptType","result","cashierId","cashierName","posName","posNumber","dates","additional","calculated","items","removedItems","payments","globalDocNumber"]},"Money":{"description":"Денежные значения","properties":{"amount":{"description":"Сумма данная покупателем (для наличных)","type":"number","format":"double"},"code":{"description":"Код валюты","type":"string","maxLength":10}},"required":["amount","code"]},"models.exporter.ShiftWithReceiptsList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.exporter.ShiftWithReceipts"}}},"required":["elements"]},"models.exporter.MoneyOperation":{"description":"Операции с денежным ящиком","properties":{"reasonName":{"type":"string"},"shiftId":{"format":"int64","description":"ИД смены","type":"integer"},"amount":{"format":"double","description":"сумма операции","type":"number"},"shiftNumber":{"format":"int64","description":"номер смены (по ККТ)","type":"integer"},"opType":{"type":"string","$ref":"#/definitions/ru.servplus.common.documents.moneyoperation.MoneyOperationType","enum":["Deposition","Withdrawal","UnknownMoneyOperationType"]},"storeId":{"description":"ИД магазина","type":"string"},"userName":{"description":"ФИО кассира","type":"string"},"userId":{"format":"int64","description":"ИД кассира, выполявшего операцию","type":"integer"},"localNumber":{"format":"int64","description":"номер документа в смене","type":"integer"},"posId":{"format":"int64","description":"ИД кассы","type":"integer"},"reasonId":{"format":"int64","type":"integer"},"amountBefore":{"format":"double","description":"сумма в денежном ящике до выполнения этой операции","type":"number"},"id":{"format":"int64","description":"ИД операции","type":"integer"},"opDate":{"format":"date-time","description":"дата-время операции","type":"string","example":"2018-06-22T08:00:19"},"reasonCode":{"type":"string"},"globalNumber":{"format":"int64","description":"сквозной номер документа по кассе","type":"integer"},"currencyId":{"format":"int32","description":"ИД валюты","type":"integer"}},"required":["id","posId","storeId","globalNumber","localNumber","userId","userName","shiftId","shiftNumber","opDate","opType","amount","amountBefore","currencyId"]},"models.importer.PicklistList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.importer.Picklist"}}},"required":["elements"]},"models.exporter.ShiftPayment":{"description":"Суммы продаж и возвратов за смену в разрезе средств оплаты по данным кассы и ККТ","properties":{"posId":{"format":"int64","description":"ИД кассы","type":"integer"},"shiftId":{"format":"int64","description":"Уникальный (в рамках кассы) идентификатор смены","type":"integer"},"expensePOS":{"type":"number","format":"double"},"saleKKM":{"format":"double","description":"Сумма продаж за смену по данным ККТ данным средством оплаты","type":"number"},"paymentId":{"format":"int64","description":"Идентификатор средства оплаты","type":"integer"},"returnPOS":{"format":"double","description":"Сумма возвратов за смену по данным кассы данным средством оплаты","type":"number"},"isMoney":{"description":"true - наличные, для остальных - false","type":"boolean"},"expenseKKM":{"type":"number","format":"double"},"storeId":{"description":"ИД магазина","type":"string"},"paymentName":{"description":"Название средства оплаты","type":"string"},"salePOS":{"format":"double","description":"Сумма продаж за смену по данным кассы данным средством оплаты","type":"number"},"returnKKM":{"format":"double","description":"Сумма возвратов за смену по данным ККТ данным средством оплаты","type":"number"}},"required":["posId","storeId","shiftId","paymentId","paymentName","isMoney","salePOS","returnPOS"]},"models.importer.ItemPropertyValue":{"description":"значение дополнительного свойства товаров","properties":{"name":{"description":"название значения","type":"string"},"id":{"description":"идентификатор значения","type":"string"}},"required":["id","name"]},"models.exporter.ShiftWOReceiptsList":{"properties":{"elements":{"type":"array","items":{"$ref":"#/definitions/models.exporter.ShiftWOReceipts"}}},"required":["elements"]},"ru.servplus.pos.common.models.receipt.common.ProductInfo":{"description":"Описание товара","properties":{"contractor":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.LegalEntity"},"itemGroup":{"description":"код ближайшего узла иерархии, в который входит товар","type":"string"},"scu":{"description":"код товара","type":"string"},"barcodeProperties":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.BarcodeProperty"}},"description":{"description":"зарезервировано под дальнейшее развитие","type":"string"},"alternativePrices":{"description":"перечень альтернативных цен, которые были назначены товару в момент его добавления в чек","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.AlternativePrice"}},"paymentAgent":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.LegalEntity"},"additionalItemPrices":{"description":"Дополнительные прайс-листы","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.AdditionalItemPrice"}},"measure":{"description":"название единицы измерения","type":"string"},"coupons":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.Coupon"}},"vendor":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.LegalEntity"},"name":{"description":"название товара","type":"string"},"attributes":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.ProductAttribute"}},"barcodeQuantity":{"description":"количество товара, указанное в штрихкоде","$ref":"#/definitions/ru.servplus.pos.common.models.Quantity"},"measurePrec":{"format":"int32","description":"0-штучный товар, 3-весовой","type":"integer"},"taxGroup":{"format":"int64","description":"ИД налоговой группы назначенной товару","type":"integer"},"barcode":{"description":"штрихкод товара, если он был введен по штрихкоду (пусто, если товар был введен в чек другим способом)","type":"string"},"properties":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.ItemProperty"}}},"required":["scu","name","description","measurePrec","measure","itemGroup","attributes","alternativePrices"]},"models.importer.barcode.BarcodePropertyValue":{"description":"значение дополнительного свойства штрих-кода товара","properties":{"name":{"description":"название значения","type":"string"},"id":{"description":"идентификатор значения","type":"string"}},"required":["id","name"]},"models.exporter.Receipt.ReceiptCalculatedParams":{"description":"Сумма чека, налоги и скидки","properties":{"amount":{"description":"Сумма чека ДО применения скидок","$ref":"#/definitions/Money"},"discounts":{"description":"Скидки, примененные в этом чеке","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.DiscountInfo"}},"totalDiscountAmount":{"description":"Общая сумма рассчитанных в чеке скидок (таким образом, для вычисления суммы чека с учетом скидок, необходимо из amount вычесть totalDiscountAmount)","$ref":"#/definitions/Money"},"receiptCurrencyCode":{"description":"Название валюты (Рубль)","type":"string"},"taxes":{"description":"Налоги, рассчитанные кассой (могут отличаться от налогов в ККТ)","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.ReceiptTax"}},"itemsCount":{"format":"int32","description":"Количество позиций в чеке","type":"integer"}},"required":["receiptCurrencyCode","amount","itemsCount","discounts","taxes"]},"models.importer.BarcodePrice":{"description":"Цены для штрихкодов (цена для единицы товара, а не для всего количества, указанного в штрихкоде)","properties":{"isPromoPrice":{"description":"Признак, что данная цена акционная (промо)","type":"boolean"},"minprice":{"format":"double","description":"Минимальная цена","type":"number"},"price":{"format":"double","description":"Цена за единицу (за 1 шт. или за 1 кг)","type":"number"},"dateTo":{"format":"date-time","description":"Дата окончания действия цены","type":"string","example":"2018-06-22T08:00:19"},"storeId":{"description":"Код магазина (во внешней системе). Поле не используется","type":"string","maxLength":20},"dateFrom":{"format":"date-time","description":"Дата начала действия цены","type":"string","example":"2018-06-22T08:00:19"},"delete":{"type":"boolean"},"barcodeId":{"description":"Штрихкод","type":"string","maxLength":40}},"required":["storeId","barcodeId","price","minprice","isPromoPrice","delete"]},"models.importer.LegalEntityItemPaymentAgent":{"description":"Привязка платежного агента к товару-услуге","properties":{"itemId":{"description":"код товара","type":"string","maxLength":40},"deleted":{"type":"boolean"},"stores":{"description":"привязка к магазинам","type":"array","items":{"$ref":"#/definitions/models.importer.LegalEntityStore"}},"isGlobal":{"description":"действует во всех магазинах. Если false, то только из списка","type":"boolean"}},"required":["itemId","stores","isGlobal","deleted"]},"ru.servplus.pos.common.models.receipt.common.PropertyValue":{"description":"Значение дополнительного свойства","properties":{"name":{"description":"название значения","type":"string"},"id":{"description":"ID значения","type":"string"}},"required":["id","name"]},"models.exporter.ShiftKKMInfo":{"description":"Информация о параметрах ККТ и количестве чеков за смену по данным ККТ","properties":{"receiptsExpense":{"type":"integer","format":"int32"},"shiftId":{"format":"int64","description":"Уникальный (в рамках кассы) идентификатор смены","type":"integer"},"serialNumber":{"description":"Заводской номер ФН","type":"string"},"shiftNumber":{"format":"int64","description":"Номер смены по ККТ (ФН)","type":"integer"},"withdrawal":{"format":"int32","description":"Количество изъятий из ден.ящика по данным ККТ","type":"integer"},"storeId":{"description":"ИД магазина","type":"string"},"posId":{"format":"int64","type":"integer"},"modelName":{"description":"Название модели ККТ","type":"string"},"receiptsReturn":{"format":"int32","description":"Количество чеков возвратов по данным ККТ","type":"integer"},"ownerNumber":{"description":"ИНН владельца ККТ","type":"string"},"receiptsCancel":{"format":"int32","description":"Количество чеков отмены по данным ККТ","type":"integer"},"registrationNumber":{"description":"Регистрационный номер ККТ","type":"string"},"cumulativeSale":{"format":"double","description":"Накопительный итог суммы продаж (по данным ККТ)","type":"number"},"insertion":{"format":"int32","description":"Количество внесений в ден.ящик по данным ККТ","type":"integer"},"firmwareVersion":{"description":"Версия прошивки","type":"string"},"receiptsSale":{"format":"int32","description":"Количество чеков продаж по данным ККТ","type":"integer"}},"required":["posId","storeId","shiftId","serialNumber","registrationNumber","ownerNumber","modelName"]},"models.importer.AdditionalItemPrice":{"properties":{"itemId":{"description":"ID товара","type":"string","maxLength":40},"deleted":{"description":"Признак удаления","type":"boolean"},"externalCode":{"type":"string"},"price":{"format":"double","description":"Цена товара по прайс-листу","type":"number"},"dateTo":{"format":"date-time","description":"Дата окончания действия цены","type":"string","example":"2038-01-01T00:00:00"},"id":{"description":"ID дополнительного прайс-листа","type":"string","maxLength":40},"dateFrom":{"format":"date-time","description":"Дата начала действия цены","type":"string","example":"1970-01-01T00:00:00"}},"required":["id","itemId","price","dateFrom","dateTo","deleted"]},"ru.servplus.pos.common.models.receipt.common.AdditionalItemPrice":{"description":"Цена товара по прайс-листу","properties":{"price":{"format":"double","description":"Цена товара по прайс-листу","type":"number","$ref":"#/definitions/ru.servplus.pos.common.models.Money"}},"required":["price"]},"models.exporter.ReceiptItem":{"description":"описание позиции чека","properties":{"seller":{"description":"продавец","$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.ItemSeller"},"quantityByCashier":{"$ref":"#/definitions/ru.servplus.pos.common.models.Quantity"},"taxes":{"description":"вычисленные налоги","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.ReceiptTax"}},"discountAmount":{"description":"сумма скидок","$ref":"#/definitions/Money"},"totalWithDiscounts":{"description":"стоимость позиции с учетом скидок","$ref":"#/definitions/Money"},"egaisMark":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.EGAISMark"},"productInfo":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.ProductInfo"},"totalAmount":{"description":"итоговая стоимость позиции без учета скидок","$ref":"#/definitions/Money"},"totalQuantity":{"description":"количество товаров в позиции","$ref":"#/definitions/ru.servplus.pos.common.models.Quantity"},"discounts":{"description":"скидки, примененные в чеке","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.DiscountInfo"}},"coupons":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.Coupon"}},"price":{"description":"цена по прайс-листу (ДО применения скидок)","$ref":"#/definitions/Money"},"enableEditPos":{"description":"возможность изменять у позиции значение в поле \"количество\"","type":"boolean"},"couponsCodes":{"description":"купоны, примененные к данной позиции","type":"array","items":{"type":"string"}},"minPrice":{"description":"мин.цена товара","$ref":"#/definitions/Money"},"itemSource":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.AddItemSource"},"kiz":{"description":"маркировка, если есть","$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.KIZ"},"supervisor":{"description":"кассир, отменивший позицию. Заполняется только для отмененных позиций","$ref":"#/definitions/ru.servplus.pos.common.models.User"},"properties":{"description":"доп.свойства, привязанные к позиции","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.Property"}},"originalPosition":{"format":"int64","description":"для чеков возврата по чеку номер позиции в чеке продажи","type":"integer"}},"required":["price","discounts","taxes","discountAmount"]},"ru.servplus.pos.common.models.receipt.sale.Coupon":{"properties":{"code":{"type":"string"},"loyalitySysUID":{"type":"integer","format":"int32"}},"required":["code"]},"ru.servplus.pos.common.models.receipt.common.ProductAttribute":{"description":"аттрибут описания товара. Используется для ограничений продажи и маркировки. Возможные значения alcohol, tobacco, egais, markedTobacco, markedGoods, advance, noSellerRequired, service","properties":{"id":{"type":"string"}},"required":["id"]},"ru.servplus.pos.common.models.receipt.common.MarketingResult":{"description":"объединение всех активностей одной системы лояльности","properties":{"awardCoupons":{"description":"Массив купонов, выданных системой лояльности","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.AwardCoupon"}},"discountAmount":{"description":"Общая сумма скидок, рассчитанных в системе лояльности (не считая списанных бонусов)","$ref":"#/definitions/Money"},"transactionTime":{"format":"date-time","description":"дата-время транзакции в системе лояльности","type":"string","example":"2018-06-22T08:00:19"},"transactionID":{"description":"Идентификатор акции, примененной в чеке (определяется системой лояльности)","type":"string"},"efts":{"format":"int32","description":"Идентификатор типа системы лояльности, предоставившей скидку (100-сервер маркетинга УКМ5, 101-ручные скидки УКМ5, 5-скидка на мелочь УКМ5, 6-скидка коррекция для весовых товаров УКМ5, Siebel - будет определяться настройками в кассовой системе)","type":"integer"},"operationMode":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.OperationMode"},"cardNum":{"description":"Номер карты клиента, зарегистрированной в чеке","type":"string"},"usedBonuses":{"description":"Сумма списанных бонусов","$ref":"#/definitions/Money"},"origTransactionID":{"description":"В чеках на возврат - ИД транзакции созданной в системе лояльности по чеку продажи","type":"string"},"usedCoupons":{"description":"Массив купонов, примененных в системе лояльности","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.UsedCoupon"}},"operationType":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.OperationType"},"awardBonuses":{"description":"Сумма начисленных бонусов","$ref":"#/definitions/Money"},"gifts":{"description":"Массив подарков, выданных в системе лояльности","type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.Gift"}}},"required":["efts","transactionTime","operationType","operationMode","discountAmount","awardBonuses","usedBonuses","awardCoupons","usedCoupons","gifts"]},"models.importer.PicklistStore":{"description":"Магазин, к которому привязан Перечень товаров","properties":{"id":{"description":"ид магазина","type":"string"}},"required":["id"]},"ru.servplus.pos.common.models.receipt.common.UsedCoupon":{"description":"Перечень купонов, примененных в чеке в рамках системы лояльности","properties":{"number":{"description":"Номер примененного купона (если номер был у купона)","type":"string"}},"required":["number"]}},"swagger":"2.0","info":{"description":"API сервера УКМ5 для обмена данными с внешними системами","title":"Import-Export-API","version":"1.0"},"consumes":["application/json"],"tags":[{"name":"routes"}]}