Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

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-службы клиента должны обеспечивать безопасность.
  • Загрузка данных всегда производится партиями. Размер партии ограничен выделенным ресурсами. Рекомендуемый размер партии – 1000 записей.
  • Рекомендуется загружать данные в один поток. Следующий запрос можно посылать только после получения ответа на предыдущий.
  • При импорте проверяется соответствие данных схеме, а также наличие дубликатов.
  • Загрузка объектов (товары, цены, пик-листы и т.д.) всегда происходит в инкрементальном режиме. Т.е. данные о новых объектах прибавляются к уже имеющимся. При этом, признаки тех объектов, которые уже присутствуют в базе сервера, полностью перезаписываются на новые (за исключением атрибутов). Под признаками объекта понимаются как его атрибуты, так и прочие сущности, такие как штрих-коды, принадлежность к товарной группе, описание, налоговая группа и др.
  • Для удаления данных используется поле 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

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

Товары со ставкой НДС в 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 регистрируется с налоговой группой, указанной в Advanced_tax_id;

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

Следует помнить о том, что для правильной регистрации товаров в ККТ необходимо устанавливать соответствие между налоговыми группами в кассовой программе и в конкретных моделях ККТ. Установка соответствия происходит в разделе 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-документации на текущий момент не означает, что они функционально реализованы:


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

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

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

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


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

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

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

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


/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/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":"это платильщик НДС. Если да, то обычне налоги. Если нет, то специальные","type":"boolean"}},"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"},"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.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.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":{"awardCoupons":{"type":"array","items":{"$ref":"#/definitions/models.exporter.misc.AwardCoupon"}},"discountAmount":{"$ref":"#/definitions/Money"},"transactionTime":{"type":"string"},"transactionID":{"type":"string"},"efts":{"format":"int32","type":"integer"},"operationMode":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.OperationMode"},"cardNum":{"type":"string"},"usedBonuses":{"$ref":"#/definitions/Money"},"origTransactionID":{"type":"string"},"usedCoupons":{"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":{"$ref":"#/definitions/Money"},"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.pos.common.models.receipt.sale.Client":{"description":"Клиент системы лояльности. Заполнение зависит от системы лояльноси","properties":{"refusePaperCheck":{"type":"boolean"},"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"},"registerType":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.RegisterType"},"category":{"description":"категория клиента (если вернула система лояльности)","type":"string"},"cardNumber":{"description":"номер карты клиента","type":"string"},"email":{"type":"string"}},"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"},"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":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"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"},"amountWithChange":{"description":"Сумма данная покупателем (для наличных)","$ref":"#/definitions/Money"},"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"},"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"]},"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":{"id":{"type":"string"},"name":{"type":"string"},"values":{"type":"array","items":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.common.BarcodePropertyValue"}},"showToCashier":{"type":"boolean"},"printOnReceipt":{"type":"boolean"}},"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.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":40},"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":{"code":{"type":"string"},"kktKIZ":{"$ref":"#/definitions/ru.servplus.pos.common.models.receipt.sale.KKTKIZ"},"weight":{"type":"number","format":"double"}},"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":"плательщик НДС","type":"boolean"}},"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/models.exporter.misc.MarketingResult"}},"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"]},"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.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"},"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"}]}