API для подключения торговой точки к онлайн-сервису МойСклад.
Основная информация ¶
При разработке клиентского приложения необходимо учитывать следующие моменты:
-
Структура ответов и типы полей поддерживаются нами неизменными
-
Может быть добавлено новое поле без нарушения структуры ответа
-
Может быть добавлен новый ресурс
Для POS API установлены следующие ограничения:
-
Не более 100 запросов за 5 секундный период
-
Не более 5 параллельных запросов от одного пользователя
-
Не более 15 параллельных запросов от аккаунта
-
Не более 500 параллельных запросов с одного ip-адреса
-
Не более 10 Мб данных в одном запросе, отправляемом на сервер
Получение информации
В рамках POS API вы можете:
Запрашивать следующие сущности:
-
Настройки точки продаж
-
Настройки компании
-
Скидки
-
Товары и услуги
-
Папки
-
Покупатели
-
Заказы покупателей
При запросе сущности в ответ от сервера приходит JSON представление сущности со всеми необходимыми для работы с ней в рознице полями.
Создание объектов
Также, в рамках POS API можно создавать следующие сущности:
-
Товары
-
Контрагенты
-
Продажи
-
Возвраты
-
Внесения денег
-
Выплаты денег
-
Предоплаты
-
Возвраты предоплат
При успешном создании сервер вернет пустое тело ответа с HTTP кодом 201.
Операции со сменами
Также доступны 2 операции со сменами:
-
Открытие
-
Закрытие
При успешной операции со сменой сервер вернёт пустое тело ответа с HTTP кодом 204.
Обновление сущностей
Розничный API сервиса МойСклад не поддерживает операции обновления сущностей.
Удаление сущностей
Розничный API сервиса МойСклад не поддерживает операции удаления сущностей.
СТРУКТУРА ОШИБОК
Ошибка в данном API представляет собой массив errors, содержащий объекты error, каждый из которых описывает отдельную ошибку.
СТРУКТУРА ОБЪЕКТА error
-
error — Описание ошибки
-
code — Код ошибки (Если поле отсутствует, смотрите HTTP status code)
-
moreInfo — Ссылка на описание ошибки в документации
-
parameter — Параметр, на котором произошла ошибка
-
line — Строка JSON, на которой произошла ошибка
-
column — Координата элемента в строке
line, на котором произошла ошибка
Возвращаемые HTTP статусы ошибок и их значения:
| HTTP status code | Значение |
|---|---|
| 301 | Запрашиваемый ресурс находится по другому URL. |
| 400 | Ошибка в структуре JSON передаваемого запроса |
| 401 | Имя и/или пароль пользователя указаны неверно или заблокированы пользователь или аккаунт |
| 403 | У вас нет прав на просмотр данного объекта |
| 404 | Запрошенный ресурс не существует |
| 405 | http-метод указан неверно для запрошенного ресурса |
| 409 | Указанный объект используется и не может быть удалён |
| 410 | Версия API больше не поддерживается |
| 412 | Не указан обязательный параметр строки запроса или поле структуры JSON |
| 413 | Размер запроса или количество элементов запроса превышает лимит |
| 429 | Превышен лимит количества запросов |
| 500 | При обработке запроса возникла непредвиденная ошибка |
| 502 | Сервис временно недоступен |
| 503 | Сервис временно отключен |
| 504 | Превышен таймаут обращения к сервису, повторите попытку позднее |
Также, вместе с телом ответа ошибки, вам могут прийти следующие заголовки (Headers):
-
X-Lognex-Auth — расширенный код ошибки аутентификации
-
X-Lognex-Auth-Message — сообщение об ошибке.
-
X-Lognex-API-Version-Deprecated — дата отключения запрошенной версии API.
-
Location — URL по которому доступен запрашиваемый ресурс (в случае ответа с кодом 301)
Вы можете узнать лимит оставшихся запросов с помощью следующих заголовков
-
X-RateLimit-Limit — количество запросов, которые равномерно можно сделать в течение интервала до появления 429 ошибки
-
X-Lognex-Retry-TimeInterval — интервал в миллисекундах, в течение которого можно сделать эти запросы
-
X-RateLimit-Remaining — Число запросов, которые можно отправить до получения 429 ошибки
-
X-Lognex-Reset — время до сброса ограничения в миллисекундах. Равно нулю, если ограничение не установлено
-
X-Lognex-Retry-After — время до сброса ограничения в миллисекундах.
Все коды ошибок и их описания
1000
-
Сообщение: Элемент URI не является идентификатором
-
Описание: Вероятнее всего вы пытаетесь обратиться к несуществующему ресурсу. Проверьте
указанный вами URI, проверьте правильно ли вы указали ключевое слово сущности и полностью ли вы скопировали ID.
1002
-
Сообщение: Неопознанный путь: {путь}
-
Описание: Не удалось определить ресурс, по которому был сделан запрос. Проверьте URI, по которому совершается запрос.
1004
-
Сообщение: Ошибка при формировании результата: {текст ошибки}
-
Описание: При разборе переданного объекта произошла ошибка. Проверьте корректность переданных данных.
1005
-
Сообщение: Неизвестный тип: {тип}
-
Описание: Тип сущности, указанный в URI, не может быть найден. Проверьте корректность ключевого слова.
1007
-
Сообщение: Неизвестное поле: {имя поля}
-
Описание: При обновлении сущности указанное поле не было найдено. Проверьте правильность написания имени поля, а также убедитесь что данное поле присутствует среди атрибутов сущностей этого типа.
1008
-
Сообщение: Ошибка при загрузке объекта с типом ‘{тип}’ и идентификатором ‘{id}’
-
Описание: Не удалось загрузить сущность с данным id. Проверьте корректность id. Убедитесь что сущность с данным id присутствует среди списка сущностей данного типа (возможно сущность с данным id была удалена).
1009
-
Сообщение: Редактирование объектов типа ‘{тип}’ не поддерживается
-
Описание: Сущность которую вы пытаетесь обновить — readonly. Изменение её атрибутов не предусмотрено.
1010
-
Сообщение: Удаление объектов типа ‘{тип}’ не поддерживается
-
Описание: Нельзя удалить сущность данного типа. Проверьте есть ли среди операций данного типа сущностей операция удаления.
1011
-
Сообщение: Создание объектов типа ‘{тип}’ не поддерживается
-
Описание: Нельзя создать сущность данного типа. Проверьте есть ли среди операций данного типа сущностей операция создания.
1012
-
Сообщение: Не указан идентификатор объекта
-
Описание: Ресурс, к которому вы обратились, требует идентификатор объекта.
1014
-
Сообщение: Неверное значение ‘{значение}’ параметра фильтрации ‘{имя параметра}’
-
Описание: Вы указали значение неподдерживаемого типа для данного параметра (например передали int вместо boolean). Возможно ошибка в неправильном формате даты и времени.
1015
-
Сообщение: Указана неверная версия в url: {url}
-
Описание: Проверьте необходимую версию API в url по которому вы делаете запрос.
online.moysklad.ru/api/1.x/...Версии API различаются между собой по количеству
доступных ресурсов, а также по способу обработки данных и именно поэтому являются важным элементом идентификации того или иного ресурса.
1016
-
Сообщение: Доступ запрещен: у вас нет прав на просмотр данного объекта
-
Описание: Администратор учётной записи ограничил ваши права на просмотр сущностей данного типа. Свяжитесь с ним для выяснения подробностей.
1017
-
Сообщение: Доступ запрещен: у вас нет прав на редактирование данного объекта
-
Описание: Администратор учётной записи ограничил ваши права на редактирование сущностей данного типа. Свяжитесь с ним для выяснения подробностей.
1019
-
Сообщение: Чтение поля ‘{имя поля}’ не поддерживается
-
Описание: Невозможно чтение поля данного типа.
1020
-
Сообщение: Родительский объект с типом ‘{тип}’ и идентификатором ‘{id}’ не существует
-
Описание: Неверный id родительской сущности.
1021
-
Сообщение: Объект с типом ‘{тип}’ и идентификатором ‘{id}’ не найден
-
Описание: Не удалось загрузить сущность данного типа с данным id. Проверьте корректность id. Убедитесь что сущность с данным id присутствует среди списка сущностей данного типа (возможно сущность с данным id была удалена)
1022
-
Сообщение: Ошибка при создании объекта
-
Описание: Ошибка в процессе создания сущности данного типа.
1023
-
Сообщение: Ошибка сохранения объекта: дочерний объект с типом ‘{тип}’ и идентификатором ‘{id}’ уже используется и не может быть удален
-
Описание: Невозможно удалить объект во вложенной коллекции т.к. он уже где-то используется. Например, может возникнуть при удалении позиции из документа, по которому есть возврат,
в котором присутствует данная позиция.
1024
-
Сообщение: Ошибка сохранения объекта: изменять стандартные объекты запрещено
-
Описание: Вы пытаетесь изменить сущность, которая создаётся по умолчанию в сервисе МойСклад сразу после регистрации учётной записи. Это делать запрещено. (Например изменение стандартных стран и единиц измерения)
1027
-
Сообщение: Запрос не содержит объектов
-
Описание: Body запросов на создание/обновление должно представляться в виде объекта либо массива JSON.
1034
-
Сообщение: Ошибка фильтрации: {текст ошибки}
-
Описание: Ошибка в процессе обработки фильтров. Проверьте переданные фильтры на валидность. Подробнее о параметрах фильтрации вы можете прочесть в соответствующем разделе документации или в документации по сущности, к которой вы пытаетесь применять фильтры.
1035
-
Сообщение: Ошибка фильтрации: неверный формат даты параметра фильтрации
-
Описание: Проверьте значение даты и времени. Оно должно соответствовать формату
yyyy-MM-dd HH:mm:ss
1036
-
Сообщение: Ошибка при формировании метаданных
-
Описание Внутренняя ошибка сервиса. Попробуйте повторить запрос.
1038
-
Сообщение: Ошибка в адресе запроса
-
Описание Проверьте, указываете ли вы валидный адрес запроса.
1039
-
Сообщение: Операция {HTTP метод} не поддерживается для данного ресурса
-
Описание Проверьте метод, с которым вы обращаетесь к ресурсу. Убедитесь, что в документации ресурса этот метод описан и его можно применить.
1040
-
Сообщение: Неверно заданы параметры запроса
-
Описание Один или несколько параметров запроса заданы некорректно. Проверьте формат параметров согласно документации.
1044
-
Сообщение: Превышен максимальный размер запроса
-
Описание: Максимальный размер запроса 10 МБ.
1048
-
Сообщение: Превышено ограничение на количество попыток проверки имени и пароля
-
Описание Вы попытались авторизоваться с помощью пары логин-пароль слишком много раз.
1049
-
Сообщение: Превышено ограничение на количество запросов в единицу времени
-
Описание От вас поступает слишком много запросов в единицу времени.
1050
-
Сообщение: Запрос метаданных не поддерживается в posap
-
Описание В posap не поддерживаются запросы на получение метаданных.
1051
-
Сообщение: Тип не совпадает с типом <meta_type> из meta
-
Описание Тип, который вы указали в объекте meta не соответствует типу ресурса, к которому вы делаете запрос.
1052
-
Сообщение: Неверный формат UUID
-
Описание: Проверьте сгенерированные вами UUID на корректность.
1053
-
Сообщение: Чтение объектов типа ‘{тип}’ не поддерживается
-
Описание: Нельзя прочтитать сущность данного типа.
1054
-
Сообщение: Указанный тип {тип сущности} не найден
-
Описание Ресурс для переданного типа не существует.
1055
-
Сообщение: Неизвестное значение {значение} параметра direction
-
Описание Вы передали некорректное значение direction. Можно передать только одно из следующих значений:
forward, backward.
1056
-
Сообщение: Ошибка аутентификации: {текст ошибки аутентификации}
-
Описание Проверьте указанные для аутентификации данные. Возможно для данного ресурса требуется другой вид аутентификации.
1057
-
Сообщение: Отсутствует syncid для сущности
-
Описание В posap в ссылках (href) в meta необходимо всегда указывать /syncId/{id} сущности, который должен генерироваться на клиенте.
1060
-
Сообщение: Некорректный тип данных в meta сущности, поле type
-
Описание Тип данных указанный в поле type метаданных сущности не совпадает с ожидаемым типом.
1062
-
Сообщение: Неверное значение заголовка ‘Accept’. Поддерживается только значение ‘application/json;charset=utf-8’
-
Описание Заголовок Accept должен отсутствовать либо иметь значение указанное в тексте ошибки.
1065
-
Сообщение: Ошибка сохранения объекта: объект уже изменен/удален в параллельном запросе
-
Описание Ошибка возникает при попытке изменить объект из нескольких параллельных запросов к API.
1070
-
Сообщение: Ошибка: ваш тарифный план не позволяет вам работать с данным ресурсом
-
Описание На вашем тарифном плане работа с указанным ресурсом недоступна.
1071
-
Сообщение: Превышено ограничение на количество попыток регистрации
-
Описание Вы попытались зарегистрироваться слишком много раз
1072
-
Сообщение: Превышено ограничение на количество регистраций с указанного адреса
-
Описание Вы попытались зарегистрироваться слишком много раз
1073
-
Сообщение: Превышено ограничение на одновременное количество запросов
-
Описание От вас поступает слишком много параллельных запросов в единицу времени.
1074
-
Сообщение: Сервис временно недоступен, ведутся технические работы
-
Описание На сервере проводятся технические работы.
1999
-
Сообщение: Неизвестная ошибка
-
Описание Произошла непредвиденная ошибка. Пожалуйста, обратитесь в поддержку сервиса МойСклад подробно изложив условия при которых эта ошибка произошла.
Ошибки формата
2000
-
Сообщение: Ошибка формата: отсутствует начало объекта
-
Описание: В данном месте ожидалось начало объекта. Проверьте тело запроса.
2001
-
Сообщение: Ошибка формата: входящий запрос не соответствует формату JSON
-
Описание: Данные должны быть отправлены в формате JSON. Если это так, а ошибка всё-таки возникает — попробуйте добавить Header
Content-Typeсо значениемapplication/json.
2002
-
Сообщение: Ошибка формата: неименованное внутреннее поле типа массив
-
Описание: Проверьте указали ли вы наименование поля типа массив. Возможно присутствуют лишние открывающиеся/закрывающиеся скобки в теле запроса.
2003
-
Сообщение: Ошибка формата: неименованное внутреннее поле типа объект
-
Описание: Проверьте указали ли вы наименование поля типа “объект”. Возможно присутствуют лишние открывающиеся/закрывающиеся скобки в теле запроса.
2004
-
Сообщение: Ошибка формата: вложенные массивы недопустимы
-
Описание: В рамках JSON API не обрабатываются массивы массивов. Проверьте тело запроса на корректность.
2005
-
Сообщение: Ошибка формата: входящий JSON должен начинаться либо с объекта, либо с массива
-
Описание: Отсутствует открывающаяся фигурная/квадратная скобка в начале тела запроса.
2006
-
Сообщение: Ошибка формата: слишком большая вложенность объектов
-
Описание: Максимальная глубина вложенности в JSON API — 10. Скорректируйте тело запроса и убедитесь, что это ограничение не нарушается.
2007
-
Сообщение: Ошибка формата: слишком большое число вложенных объектов
-
Описание: В JSON API в массиве может содержаться не более 1000 объектов.
2008
-
Сообщение: Ошибка формата: запрос на шаблон не должен содержать массив
-
Описание: С помощью запроса по ресурсу
{entity_name}/newможно создать только 1 шаблон. Передача массива значений не поддерживается.
2009
-
Сообщение: Ошибка формата: запрос на создание/обновление одной сущности не должен содержать массив
-
Описание: При обновлении отдельной сущности подразумевается, что в теле запроса будет передано её новое представление (одно). В теле запроса должен быть один корневой объект.
2010
-
Сообщение: Ошибка формата: отсутствует href для meta поля ‘{доп. сообщение}’
-
Описание: В переданном объекте метаданных отсутствует поле href. Проверьте тело запроса.
2012
-
Сообщение: Ошибка формата: неизвестный type для meta поля ‘{доп. сообщение}’
-
Описание: В переданном объекте метаданных указан неизвестный тип. Проверьте тело запроса. Возможно вы указываете неверное ключевое слово для сущности. Проверьте документацию по данной сущности и убедитесь в правильности передаваемого type.
2013
-
Сообщение: Ошибка формата: неправильное значение href для meta поля ‘{доп. сообщение}’
-
Описание: Переданный href указывает на несуществующий объект. Убедитесь в корректности ссылки. Ошибка может быть в версии API, типе ресурса (entity/pos/report), ключевом слове сущности/(отчёта), id сущности.
2014
-
Сообщение: Ошибка формата: отсутствует meta для поля ‘{имя поля}’
-
Описание: Для полей типа метаданных (ссылок на другие связанные объекты) необходимо значение в виде объекта, содержащего meta.
2015
-
Сообщение: Ошибка формата: отсутствует id для поля ‘{имя поля}’
-
Описание: При передаче вложенных сущностей в виде полей необходимо указывать id этих сущностей.
2016
-
Сообщение: Ошибка формата: значение поля ‘{имя поля}’ не соответствует типу {тип поля}
-
Описание: Для указанного поле передано значение неверного типа. Исправьте тело запроса.
2017
-
Сообщение: Ошибка формата: неизвестная ошибка
-
Описание: Не удалось однозначно классифицировать ошибку. Убедитесь что формат передаваемых вами данных соответствует требуемому. Посмотрите примеры запросов в документации по используемой вами сущности.
2018
-
Сообщение: Ошибка формата: отсутствует поле для meta
-
Описание: Вы не указали обязательное поле объекта meta.
2019
-
Сообщение: Ошибка формата: Поле не совпадает с указанным в href для meta
-
Описание: В объекте meta нет соответствия между указанным полем и информацией в ссылке (href). Проверьте, совпадают ли id, idType и type в объекте meta и в ссылке (href) meta.
2020
-
Сообщение: Ошибка формата: href для meta должен ссылаться на сущность, /entity/
-
Описание: В ссылке (href) объекта meta можно ссылаться только на ресурсы из posap /entity/.
2025
-
Сообщение: Ошибка формата: Ошибка формата: значение <заголовок|параметр|поле> ‘<наименование>’ не соответствует формату даты ‘<формат даты>’
-
Описание: Переданное значение даты не соответствует формату даты
Общие ошибки валидации
3000
-
Сообщение: Ошибка сохранения объекта: поле ‘{имя поля}’ не может быть пустым или отсутствовать
-
Описание: Необходимое поле не может содержать пустого значения или отсутствовать. Все необходимые поля можно посмотреть в документации по сущности, с которой вы работаете, под заголовком “Атрибуты сущности”. Такие поля помечены как
Необходимое.
3001
-
Сообщение: Ошибка сохранения объекта: поле ‘{имя поля}’ не может быть изменено
-
Описание: Вы пытаетесь изменить поле являющееся полем только для чтения. Все read-only поля можно посмотреть в документации по сущности, с которой вы работаете, под заголовком “Атрибуты сущности”. Такие поля помечены как
Только для чтения.
3002
-
Сообщение: Ошибка сохранения объекта: поле ‘{имя поля}’ не может иметь отрицательное значение
-
Описание: Данное поле принимает только числовые значения больше либо равные нулю.
3003
-
Сообщение: Ошибка сохранения объекта: поле ‘{имя поля}’ должно быть больше нуля
-
Описание: Данное поле принимает только числовые значения больше нуля.
3004
-
Сообщение: Ошибка сохранения объекта: поле ‘{имя поля}’ не соответствует полю связанного объекта
-
Описание: Поле возврата не соответствует полю документа-основания. Невозможно изменить значения полей
agent, currency, vatIncludedв возвратах на несоответствующие значениям этих же полей в документе-основании.
3005
-
Сообщение: Ошибка сохранения объекта: неверное значение ‘{значение}’ поля ‘{имя поля}’. Допустимые значения: {список значений}
-
Описание: Вы пытаетесь присвоить несуществующее значение полю типа “перечисление”(enum). Проверить все возможные значения этого поля вы можете в документации по данной сущности в разделе “Атрибуты сущности”.
3006
-
Сообщение: Ошибка сохранения объекта: нарушено ограничение уникальности параметра ‘{имя параметра}’
-
Описание: У указанного поля/параметра должно быть уникальное значение в системе. Например, если включена проверка на уникальность номеров операций, name у разных документов не может быть одинаковым.
3007
-
Сообщение: Ошибка валидации сохраняемого объекта: ‘{объект}’
-
Описание: Ошибка при обмене. Проверьте, соблюдает ли все условия передаваемый вами объект.
3008
-
Сообщение: Ошибка сохранения объекта: значение поля ‘{имя поля}’ превышает максимально допустимое значение
-
Описание: Значение числового поля превышает максимально допустимое значение: 9 999 999 999.
3011
-
Сообщение: Ошибка валидации штрихкода: невозможно добавить к сущности штрихкод длиной более 255 символов
-
Описание: Исправьте длину штрихкода и попробуйте повторить запрос.
3030
-
Сообщение: Ошибка валидации заголовка ‘{название заголовка}’: {описание ошибки}
-
Описание: Было передано некорректное значение в заголовке.
Точки продаж
4000
-
Сообщение: Указанная точка продаж не активна
-
Описание: Для выполнения операции необходимо активировать точку продаж.
Розничные смены (POS)
12003
-
Сообщение: Ошибка закрытия розничной смены: розничная смена находится в корзине
-
Описание: Смена с указанным id находится в корзине. Проверьте правильность указанного вами id смены.
12006
-
Сообщение: Ошибка открытия розничной смены: параметр ‘retailShift’ отсутствует или имеет неверный формат
-
Описание: Убедитесь в наличии параметра retailShift.
12007
-
Сообщение: Ошибка закрытия розничной смены: параметр ‘retailShift’ отсутствует или имеет неверный формат
-
Описание: В теле запроса должно присутствовать поле retailShift (в camel-case) типа объект, содержащее в себе meta с ссылкой, содержащей syncId открываемой смены.
12008
-
Сообщение: Ошибка открытия розничной смены: параметр ‘name’ отсутствует
-
Описание: В теле запроса должно присутствовать поле name (номер смены) типа строка.
12009
-
Сообщение: Ошибка открытия розничной смены: параметр ‘openmoment’ отсутствует
-
Описание: В теле запроса должно присутствовать поле openmoment (дата-время открытия) типа строка в формате дата-время.
12010
-
Сообщение: Ошибка закрытия розничной смены: параметр ‘closemoment’ отсутствует
-
Описание: В теле запроса должно присутствовать поле closemoment (дата-время закрытия) типа строка в формате дата-время.
12012
-
Сообщение: Розничная смена не существует
-
Описание: Смена которую вы пытаетесь закрыть не существует. Убедитесь что указываете верный syncId смены.
12013
-
Сообщение: Ошибка аутентификации. Пользователь {user} не является кассиром на точке продаж «{retailstore}»
-
Описание: Для указанной точки продаж пользователь не является кассиром. Указать кассира можно в настройках точки продаж.
12014
-
Сообщение: Непредвиденная ошибка сохранения токена
-
Описание: Попробуйте осуществить запрос на получение токена ещё раз.
12015
-
Сообщение: Ошибка получения токена: не найдена точка продаж
-
Описание: Не найдено точки продаж с указанным id.
12016
-
Сообщение: Пользователь-кассир деактивирован. Обратитесь к администратору аккаунта.
-
Описание: Вы пытаетесь аутентифицироваться как неактивный пользователь. Следует обратиться к администратору аккаунта.
12017
-
Сообщение: Неправильный или просроченный ключ доступа
-
Описание: Срок действия ключа доступа истёк или же сам переданный ключ не корректен. Уточните вводимые данные.
12018
-
Сообщение: Допустимо использование сессии только для авторизованной точки продаж
-
Описание: Точка продаж должна быть привязана к токену. О том как это сделать вы можете прочитать тут.
12021
-
Сообщение: Ошибка закрытия розничной смены: нельзя закрыть смену другой точки продаж
-
Описание: Смена, которую вы пытаетесь закрыть, принадлежит другой точке продаж. Убедитесь в правильности token, который вы используете для аутентификации, а также в правильности syncId смены.
12022
-
Сообщение: Указанный пользователь не является кассиром ни на одной точке продаж
-
Описание: Только кассир на активной точке продаж может привязать точку продаж и получить токен. Указать кассира можно в настройках точки продаж.
12023
-
Сообщение: Нельзя создать документ в рамках розничной смены, находящейся в корзине
-
Описание: Смена с указанным id находится в корзине. Проверьте правильность указанного вами id смены.
12024
-
Сообщение: Ошибка закрытия розничной смены: непредвиденная ошибка создания (входящего платежа|ПКО)
-
Описание Ошибка в процессе создания входящего платежа или ПКО во время закрытия розничной смены.
12025
-
Сообщение: Ошибка аутентификации: Неправильный пароль или имя пользователя
-
Описание Ошибка в процессе аутентификации.
Товары
16000
-
Сообщение: Ошибка сохранения товара: свойства алкогольной продукции не могут быть отрицательными
-
Описание: Алкогольные поля “код алкогольной продукции”, “крепость” и “объём” должны принимать значение строго большее 0.
16001
-
Сообщение: Ошибка сохранения товара: весовой товар не может использовать учет по серийным номерам
-
Описание: Товар не может одновременно быть весовым и использовать учёт по серийным номерам. Это — взаимоисключающие признаки.
16002
-
Сообщение: Ошибка сохранения товара: нельзя отключить серийный учёт
-
Описание: Если серийный учет однажды включен, то его уже нельзя отключить. В ином случае вы можете создать новый товар.
16003
-
Сообщение: Ошибка сохранения товара: у изображения отсутствует контент
-
Описание: При передаче изображение в составе товара в запросе на создание товара необходимо указывать поле content
16004
-
Сообщение: Ошибка сохранения товара: невозможно преобразовать поле content в изображение
-
Описание: Содержимым поля content должно быть изображение закодированное в формате base64 с расширением jpg или png.
16005
-
Сообщение: Ошибка сохранения товара: Недостаточно места в хранилище.
-
Описание: Место в хранилище, выделенное для вашей учётной записи закончилось.
16006
-
Сообщение: Ошибка сохранения товара: размер изображения превышает максимально допустимый(3 мб)
-
Описание: Попробуйте уменьшить размер изображения.
16008
-
Сообщение: Ошибка сохранения товара: для использования упаковок нужно указать единицу измерения товара
-
Описание: Для использования упаковок должна быть задана единица измерения товара
16010
-
Сообщение: Ошибка сохранения товара: если указано, что товар облагается налогом, то необходимо заполнить поле vat. Иначе vatEnabled для товара должен иметь значение false
-
Описание: При передаче поля vatEnabled = true для товара нужно указывать также значение НДС.
16011
-
Сообщение: Ошибка сохранения товара: разливной товар не может учитываться по серийным номерам.
-
Описание: Товар не может быть одновременно на разлив и с учетом по серийным номерам.
16012
-
Сообщение: Ошибка сохранения товара: товар не может быть разливным и весовым одновременно.
-
Описание: Товар не может быть одновременно весовым и на разлив.
16013
-
Сообщение: Ошибка сохранения товара: весовой товар не может иметь признак средства индивидуальной защиты.
-
Описание: Товар не может быть одновременно на разлив и иметь признак средства индивидуальной защиты.
16014
-
Сообщение: Ошибка сохранения товара: разливной товар не может иметь признак средства индивидуальной защиты.
-
Описание: Разливной товар не может иметь признак средства индивидуальной защиты.
16015
-
Сообщение: Ошибка сохранения товара: неверно указан тип маркировки «{тип маркировки}» для разливного товара.
-
Описание: Разливной товар может сочетаться только с типами маркировки MILK, PERFUMERY, NOT_TRACKED.
16103
-
Сообщение: Ошибка сохранения: маркированный товар не может учитываться по серийным номерам.
-
Описание: Маркированный товар не может учитываться по серийным номерам.
16104
-
Сообщение: Ошибка сохранения товара: маркированный товар не может быть алкогольным.
-
Описание: Маркированный товар не может быть алкогольным.
16105
-
Сообщение: Ошибка сохранения товара: Ошибка сохранения: маркированный товар не может быть весовым.
-
Описание: Весовой товар может сочетаться только с типами маркировки MILK, NOT_TRACKED.
16113
-
Сообщение: * Ошибка сохранения товара: маркированный товар не может быть средством индивидуальной защиты.*
-
Описание: Маркированный товар не может быть средством индивидуальной защиты.
Документы
17002
-
Сообщение: Ошибка сохранения позиции документа: серийный номер не может быть пустым
-
Описание: Серийный номер не может быть пустой строкой.
17003
-
Сообщение: Ошибка сохранения позиции документа: количество зарезрвированных товаров не может превышать общее количество
-
Описание: Количество зарезервированного товара позиции документа не может превышать общее количество товара по документу.
17004
-
Сообщение: Ошибка сохранения позиции документа: количество товаров в ожидании не может превышать общее количество
-
Описание: Количество ожидаемого товара позиции документа не может превышать общее количество товара по документу.
17005
-
Сообщение: Ошибка сохранения связанного документа: отсутствует ссылка на документ-основание
-
Описание: При сохранении связанного документа необходима ссылка на документ-основание (например при сохранении возврата необходима ссылка на продажу).
17007
-
Сообщение: Ошибка сохранения позиции документа: НДС не может быть больше 100
-
Описание: Процент НДС может принимать значения от 0 до 100.
17008
-
Сообщение: Ошибка сохранения позиции документа: скидка не может быть больше 100
-
Описание: Процент скидки может принимать значения от 0 до 100.
17017
-
Сообщение: Ошибка сохранения документа: количество переданных серийных номеров не соответствует количеству в позиции
-
Описание: Поле позиции quantity должно соответствовать размеру коллекции sn.
17021
-
Сообщение: Ошибка сохранения позиции документа: если указано, что позиция облагается налогом, то необходимо заполнить поле vat. Иначе vatEnabled для позиции должен иметь значение false
-
Описание: При передаче поля vatEnabled = true в позиции нужно указывать также значение НДС.
Продажи
18000
-
Сообщение: Ошибка сохранения продажи: сумма ‘cashSum’, ‘noCashSum’, ‘qrSum’, ‘prepaymentCashSum’, ‘prepaymentNoCashSum’ и ‘prepaymentQrSum’ не соответствует сумме по документу
-
Описание: Сумма полей cashSum, noCashSum, qrSum, prepaymentCashSum, prepaymentNoCashSum, prepaymentQrSum должна быть равна значению поля sum или отличаться менее чем на 10 единиц. В случае создания документа и указании вышеупомянутых полей в теле запроса, ответственность за подсчёт sum ложится на пользователя. sum считается как общая сумма по всем позициям документа. Допускается расхождение на 10 (учет идёт в копейках).
18003
-
Сообщение: Ошибка сохранения продажи: нельзя указывать баллы к начислению или списанию без указания бонусной программы
-
Описание: При заполнении любого из полей bonusValueToEarn, bonusValueToSpend, поле bonusProgram становится обязательным для заполнения.
18005
-
Сообщение: В случае заполненного поля ‘qrSum’ поля ‘cashSum’, ‘noCashSum’, ‘prepaymentCashSum’ и ‘prepaymentNoCashSum’ должны быть пустыми
-
Описание: Смешанная оплата по QR-коду и карте или по QR-коду и наличными запрещена
18006
-
Сообщение: В случае заполненного поля ‘prepaymentQrSum’ поля ‘cashSum’, ‘noCashSum’, ‘prepaymentCashSum’ и ‘prepaymentNoCashSum’ должны быть пустыми
-
Описание: В случае предоплаты по QR-коду оплата возможна только по QR-коду
Возвраты
19003
-
Сообщение: Ошибка сохранения розничного возврата: возврат возможен только по QR-коду
-
Описание: Возникает в случае, если продажа была осуществлена по QR-коду, а возврат осуществляется за наличные или по карте. При создании такого возврата поля ‘cashSum’ и ‘noCashSum’ должны отсутствовать
19004
-
Сообщение: Ошибка сохранения розничного возврата: возврат по QR-коду поддержан только для операций, оплаченных по QR-коду
-
Описание: Возникает в случае, если продажа была осуществлена за наличные или по карте, а возврат осуществляется по QR-коду. При создании такого возврата поле ‘qrSum’ должно отсутствовать
Серийные номера
45000
-
Сообщение: Ошибка формата: количество переданных серийных номеров не соответствует количеству в позиции
-
Описание: Поле позиции quantity должно соответствовать размеру коллекции sn.
45001
-
Сообщение: Ошибка формата: указаны серийные номера для позиции {id}, по которой не ведётся серийный учет
-
Описание: Для указанной позиции нельзя вести учет по товарам и передавать коллекцию sn для расчета.
46000
-
Сообщение: Ошибка вызова внешней системы лояльности
-
Описание: При вызове внешней системы лояльности возникла ошибка.
46001
-
Сообщение: Отсутствует syncid для сущности ‘counterparty’
-
Описание: В данном методе предполагается, что у сущности counterparty должно быть непустое свойство syncid
46002
-
Сообщение: Невозможно рассчитать чек
-
Описание: Во время работы метода возникла ошибка, которая не позволяет выполнить пересчет. Может возникать, как последствие ошибки при вызове внешней системы (системы лояльности)
Тарифные ограничения
47000
-
Сообщение: Тарифное ограничение: {описание ограничения}
-
Описание: Сработало тарифное ограничение для текущего тарифа.
Предоплаты
48000
-
Сообщение: Сумма предоплаты должна быть положительным числом.
-
Описание: Сумма предоплаты складывается из полей cashSum и noCashSum. Проверьте, чтобы сумма этих полей была > 0.
48001
-
Сообщение: В предоплате должна быть хотя бы одна позиция.
-
Описание: Невозможно создать предоплату без позиций.
48002
-
Сообщение: Сумма предоплаты не может превышать сумму по позициям
-
Описание: Сумма предоплаты не может быть больше суммарной стоимости всех позиций.
48003
-
Сообщение: Невозможно создать предоплату от розничного покупателя. Должен быть выбран “реальный” контрагент.
-
Описание: Предоплата не может быть создана на контрагента “Розничный покупатель”.
48004
-
Сообщение: Невозможно создать предоплату по заказу с неположительной суммой
-
Описание: Сумма заказа, по которой создаётся предоплата, должна быть >= 0.
48005
-
Сообщение: Невозможно создать предоплату по заказу у которого нет хотя бы одной позиции
-
Описание: В заказе, по которому создаётся предоплата, должна быть хотя бы одна позиция.
48006
-
Сообщение: Невозможно создать предоплату по полностью оплаченному заказу
-
Описание: Сумма платежей и предоплат по переданному заказу >= сумме самого заказа. Предоплата по такому заказу не имеет смысла.
Возвраты предоплат
49000
-
Сообщение: Сумма возврата предоплаты должна быть положительным числом.
-
Описание: Сумма возврата предоплаты складывается из полей cashSum и noCashSum. Проверьте, чтобы сумма этих полей была > 0.
49001
-
Сообщение: В возврате предоплаты должна быть хотя бы одна позиция.
-
Описание: Невозможно создать возврат предоплаты без позиций.
49002
-
Сообщение: Сумма возврата предоплаты не может превышать сумму по позициям
-
Описание: Сумма возврата предоплаты не может быть больше суммарной стоимости всех позиций.
49003
-
Сообщение: Невозможно сохранить возврат предоплаты: сумма возвратов превышает сумму предоплаты.
-
Описание: Невозможно сохранить возврат предоплаты, т.к. в противном случае сумма возвратов превысит сумму предоплаты.
Структура метаданных в posap:
Метаданные коллекций:
-
href — ссылка
-
mediaType — MIME тип
-
size — размер выборки
-
limit — макс. количество объектов в выборке
-
offsetId — id элемента, после которого начинается текущая страница сущностей
-
direction — направление листания. Одно из значений
[forward, backward] -
previousHref — Ссылка на предыдущую страницу (отображается только когда указан offsetId не по умолчанию)
-
nextHref — Ссылка на следующую страницу (отображается только когда указан offsetId не по умолчанию)
Метаданные объектов
-
href — ссылка на сущность
-
mediaType — MIME тип
-
type — тип сущности
-
id — id сущности
-
idType — тип id. Одно из значений
[native, sync]
В POS API можно получать поля типа дата-время (момент времени) в формате: ГГГГ-ММ-ДД ЧЧ:ММ:СС.ммм. Для этого нужно добавить специальный заголовок к запросу:
X-Lognex-Format-Millisecond со значением true.
В POS API можно получать ответы от сервера в виде pretty-print JSON (JSON с отступами вместо JSON в одну строку). Для этого нужно добавить специальный заголовок к запросу:
Lognex-Pretty-Print-JSON со значением true.
Через JSON API или POS API при запросах можно отключить уведомления вебхуков в контексте данного запроса.
Для этого нужно указать заголовок X-Lognex-WebHook-Disable с произвольным значением.
На учётной записи пользователя есть контрагент, использующийся как контрагент для розничных продаж. По умолчанию он назван “Розничный покупатель”. Если через POS API создать продажу, не указывая при этом поле agent, контрагентом такой продажи автоматически станет “Розничный покупатель”.
Сценарий работы ¶
Сценарий работы с POS API состоит из нескольких шагов:
-
Получение токена для точки продаж
-
Загрузка необходимых для работы данных (настройки точки продаж, справочник товаров и услуг, справочник контрагентов)
-
Открытие розничной смены
-
Совершение операций (кассовые внесения и выплаты, продажи, возвраты по продажам)
-
Закрытие розничной смены
Для получения токена для точки продаж необходимо воспользоваться двумя административными ресурсами:
-
Ресурсом для получения списка точек продаж
-
Ресурсом для получения токена для выбранной точки продаж
Важное отличие административных ресурсов в том, что авторизация на них происходит с помощью пары логин-пароль от
учётной записи сервиса МойСклад (Basic Auth). На всех остальных ресурсах необходима авторизация по полученному токену для точки продаж.
После получения токена для авторизации можно начинать работу от лица POS терминала, открывать и закрывать смены, запрашивать данные и проводить операции.
При работе с POS API убедитесь:
-
Что активна текущая точка продаж, для которой открываются смены, создаются операции, и, в рамках которой посылаются запросы.
-
Что пользователь, от имени которого посылаются запросы, авторизован соответствующим для данного ресурса способом (способ авторизации указан для каждого ресурса POS API в секции “Авторизация”),
и, в случае авторизации по token для точки продаж, он является активным пользователем и кассиром на данной точке продаж.
Ниже, в качестве примера, описан один из возможных сценариев работы с POS API, состоящий из следующих шагов:
-
Получение списка точек продаж
-
Получение токена для точки продаж
-
Загрузка настроек точки продаж
-
Открытие смены
-
Загрузка списка товаров и услуг
-
Создание продажи
-
Закрытие смены
Получить точки продаж ¶
Для начала работы нам нужно выбрать точку, с которой мы будем осуществлять розничные операции.
Для этого запросим список точек продаж.
GET https://online.moysklad.ru/api/posap/1.0/admin/retailstore
Responses200
Успешный запрос. Результат — JSON представление списка точек продаж.
Headers
Content-Type: application/json
Authorization: Basic YWRtaW5AcmVxd3k6MTIzMTIz
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/admin/retailstore",
"mediaType": "application/json",
"size": 1,
"limit": 1000,
"offsetId": "00000000-0000-0000-0000-000000000000",
"direction": "forward"
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailstore/5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"mediaType": "application/json",
"type": "retailstore",
"id": "5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"idType": "native"
},
"id": "5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"version": 2,
"updated": "2016-09-21 19:27:45",
"name": "Точка продаж",
"externalCode": "W0M-XxXYjPZJjA1cT3RTL2",
"controlShippingStock": false,
"controlCashierChoice": false,
"discountEnable": true,
"discountMaxPercent": 100,
"priceType": "Цена продажи",
"authTokenAttached": true,
"cashiers": {
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/employee/a4f36276-7b5a-11e6-8a84-bae500000004",
"mediaType": "application/json",
"type": "employee",
"id": "a4f36276-7b5a-11e6-8a84-bae500000004",
"idType": "native"
},
"uid": "cashier@myorg",
"firstName": "Иван",
"middleName": "Иванович",
"lastName": "Иванов",
"email": "ivanov@myorg.ru"
}
]
},
"organization": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/organization/5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"mediaType": "application/json",
"type": "organization",
"id": "5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"idType": "native"
},
"id": "5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"version": 5,
"updated": "2016-09-21 14:30:43",
"name": "myorg",
"description": "Моя организация",
"code": "1234",
"externalCode": "PW55m0xUiG1pAlGJv73Sd2",
"companyType": "legal",
"legalTitle": "ООО Иванов",
"legalAddress": "г Москва, ул Гашека, д 12 к 1",
"actualAddress": "г Москва, ул Вавилова д 19 3/4",
"inn": "7714045520",
"kpp": "775001001",
"ogrn": "1027700042413",
"okpo": "121351253251",
"email": "myorg@orgmy.su",
"phone": "346243637247",
"fax": "32472377432524",
"isEgaisEnable": true,
"fsrarId": "the id for fr",
"payerVat": true,
"utmUrl": "url.coms"
},
"store": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/store/5d1fa036-7b1d-11e6-8a84-bae500000053",
"mediaType": "application/json",
"type": "counterparty",
"id": "5d1fa036-7b1d-11e6-8a84-bae500000053",
"idType": "native"
},
"pathName": "",
"address": "г Москва ул Милашенкова д 2"
},
"acquire": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/1c5dcf6f-7b32-11e6-8a84-bae500000000",
"mediaType": "application/json",
"type": "counterparty",
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"idType": "native"
}
},
"egaisEnabled": false,
"frNumber": "",
"returnFromClosedShiftEnabled": false,
"alwaysPrintCheck": false,
"ofdEnabled": false,
"allowCustomPrice": false,
"isExternalCustomers": false,
"sendMarksForCheck": false
}
]
}
Получить точки продаж
GET/admin/retailstore
Запрос списка точек продаж. Basic авторизация с помощью пары логин:пароль закодированных в BASE64.
В ответ получим список точек продаж.
Назначить токен для точки продаж ¶
После того как мы выбрали точку продаж нужно получить для неё токен авторизации.
Используем id нашей точки продаж (5d4d2ca2-7b1d-11e6-8a84-bae500000060). И получаем необходимый нам токен.
POST https://online.moysklad.ru/api/posap/1.0/admin/attach/5d4d2ca2-7b1d-11e6-8a84-bae500000060
Responses201
Успешный запрос. Результат — токен для последующей аутентификации на данной точке продаж.
Headers
Content-Type: application/json
Authorization: Basic YWRtaW5AcmVxd3k6MTIzMTIz
BodyСкрытьПоказать
{
"token": "6ab89be1ae6ff147753335ee8da948e42612233b",
"uid": "kassir@321"
}
Назначить токен для точки продаж
POST/admin/attach/{id}
URI Параметры
СкрытьПоказать
- id
string(required) Example: 5d4d2ca2-7b1d-11e6-8a84-bae500000060id точки продаж, которой назначается token
Настройки точки продаж ¶
Теперь авторизуемся по полученному токену и запросим настройки точки продаж.
GET https://online.moysklad.ru/api/posap/1.0/settings/retailstore/
Responses200
Успешный запрос. Результат — JSON представление настроек точки продаж.
Headers
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147753335ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: example@admin
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailstore/5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"mediaType": "application/json",
"type": "retailstore",
"id": "5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"idType": "native"
},
"id": "5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"version": 2,
"updated": "2016-09-21 19:27:45",
"name": "Точка продаж",
"externalCode": "W0M-XxXYjPZJjA1cT3RTL2",
"controlShippingStock": true,
"onlyInStock": false,
"controlCashierChoice": false,
"discountEnable": true,
"discountMaxPercent": 100,
"priceType": "Цена продажи",
"authTokenAttached": true,
"cashiers": {
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/employee/a4f36276-7b5a-11e6-8a84-bae500000004",
"mediaType": "application/json",
"type": "employee",
"id": "a4f36276-7b5a-11e6-8a84-bae500000004",
"idType": "native"
},
"uid": "cashier@myorg",
"firstName": "Иван",
"middleName": "Иванович",
"lastName": "Иванов",
"image": {
"href": "http://online.moysklad.ru/api/posap/1.0/download/35629a98-d029-11e7-0532-9eed00000001",
"miniature": "http://online.moysklad.ru/api/posap/1.0/download/35629a98-d029-11e7-0532-9eed00000001?miniature=true",
"tiny": "http://online.moysklad.ru/app/download/3626405c-d029-11e7-0532-9eed00000002/t.png"
},
"inn": "222490425273",
"position": "position",
"email": "ivanov@myorg.ru"
}
]
},
"organization": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/organization/5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"mediaType": "application/json",
"type": "organization",
"id": "5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"idType": "native"
},
"id": "5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"version": 5,
"updated": "2016-09-21 14:30:43",
"name": "myorg",
"description": "Страховое публичное акционерное общество «РЕСО-Гарантия»",
"code": "1234",
"externalCode": "PW55m0xUiG1pAlGJv73Sd2",
"companyType": "legal",
"legalTitle": "СТРАХОВОЕ ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО "РЕСО-ГАРАНТИЯ"",
"legalAddress": "г Москва, ул Гашека, д 12 к 1",
"actualAddress": "г Москва, ул Вавилова д 19",
"inn": "7710045520",
"kpp": "775001001",
"ogrn": "1027700042413",
"okpo": "121351253251",
"email": "myorg@orgmy.su",
"phone": "346243637247",
"fax": "32472377432524",
"isEgaisEnable": true,
"fsrarId": "the id for fr",
"payerVat": true,
"utmUrl": "url.coms"
},
"store": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/store/5d1fa036-7b1d-11e6-8a84-bae500000053",
"mediaType": "application/json",
"type": "counterparty",
"id": "5d1fa036-7b1d-11e6-8a84-bae500000053",
"idType": "native"
},
"name": "Основной склад",
"pathName": "",
"address": "г Москва ул Милашенкова д 2"
},
"acquire": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/1c5dcf6f-7b32-11e6-8a84-bae500000000",
"mediaType": "application/json",
"type": "counterparty",
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"idType": "native"
}
},
"lastOperationNames": [
{
"entity": "retaildemand",
"name": "03211312",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retaildrawercashin",
"name": "00001",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retaildrawercashout",
"name": "00001",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retailsalesreturn",
"name": "0002199921",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retailshift",
"name": "042777001",
"moment": "2016-10-07 15:50:14"
}
],
"egaisEnabled": false,
"frNumber": "",
"returnFromClosedShiftEnabled": false,
"alwaysPrintCheck": false,
"issueOrders": false,
"sellReserves": false,
"ofdEnabled": false,
"allowCustomPrice": false,
"cash": 10050,
"createPaymentInOnRetailShiftClosing": true,
"createCashInOnRetailShiftClosing": false,
"allowCreateProducts": true,
"enableReturnsWithNoReason": true,
"isOnlineDiscount": false,
"isExternalCustomers": false,
"isPhonePriority": true,
"reservePrepaidGoods": false,
"receiptTemplate": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/receipttemplate/4636cc33-d372-11e8-ac16-000900000001",
"mediaType": "application/json",
"type": "receipttemplate",
"id": "4636cc33-d372-11e8-ac16-000900000001",
"idType": "native"
},
"header": "АКЦИЯ: 6 ЗА 5. ПОДРОБНЕЕ ЧИТАЙТЕ В НИЖНЕЙ ЧАСТИ ЧЕКА",
"footer": "КУПИТЕ 5 КОФЕ И ПОЛУЧИТЕ 6-й В ПОДАРОК, ПРЕДЪЯВИВ ЭТОТ ЧЕК"
},
"environment": {
"device": "RetailStorePc",
"os": "Linux",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.1"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"state": {
"sync": {
"message": "Ошибка синхронизации, необходимо войти повторно",
"lastAttempMoment": "2016-09-06 21:41:00"
},
"lastCheckMoment": "2018-06-13 16:18:00",
"fiscalMemory": {
"error": {
"code": "1003",
"message": "Критическая ошибка"
},
"notSendDocCount": 25,
"notSendFirstDocMoment": "2016-09-06 21:41:00"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"qrPayEnabled": true,
"qrAcquire": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/1c5dcf6f-7b32-11e6-8a84-bae500000000",
"mediaType": "application/json",
"type": "counterparty",
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"idType": "native"
}
},
"enableNotMRCTobaccoSale": false,
"tobaccoMrcControlType": "SAME_PRICE",
"markingSellingMode": "CORRECT_MARKS_ONLY",
"sendMarksForCheck": false
}
Настройки точки продаж
GET/settings/retailstore/
Открытие смены ¶
Перейдём непосредственно к работе. Для того, чтобы начать создавать продажи нужно открыть смену.
PUT https://online.moysklad.ru/api/posap/1.0/rpc/openshift/
RequestsПример
Пример запроса на открытие смены.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147753335ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: example@admin
BodyСкрытьПоказать
{
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/388bd178-800c-11e6-8a84-bae5022000a2"
}
},
"name": "0001",
"openmoment": "2016-09-06 21:41:46"
}
Responses204
This response has no content.
Открытие смены
PUT/rpc/openshift/
Для открытия смены нам потребуется syncId. Нужно сгенерировать его самому (на клиенте) и отправить на сервер в запросе на открытие смены.
Загрузка товаров ¶
Для создания продаж потребуется справочник товаров и услуг. Самое время его загрузить.
GET https://online.moysklad.ru/api/posap/1.0/entity/assortment
Responses200
Успешный запрос. Результат — JSON представление ассортимента товаров.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147753335ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: example@admin
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/assortment",
"mediaType": "application/json",
"size": 7,
"limit": 1000,
"offsetId": "00000000-0000-0000-0000-000000000000",
"direction": "forward"
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/446901e7-7c12-11e6-8a84-bae500000068",
"mediaType": "application/json",
"type": "product",
"id": "446901e7-7c12-11e6-8a84-bae500000068",
"idType": "native"
},
"id": "446901e7-7c12-11e6-8a84-bae500000068",
"name": "Товар1",
"code": "00002",
"barcodes": [
"2000000000022"
],
"salePrices": [
{
"value": 0,
"priceType": "Цена продажи"
}
],
"uom": "шт",
"egaisIsAlcoholic": true,
"egaisHasExciseMark": false,
"egaisVolume": 0,
"egaisAlcoholPercent": 0,
"soldByWeight": false,
"onTap": false,
"stock": -1,
"reserve": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/81fdf852-7c21-11e6-8a84-bae500000068",
"mediaType": "application/json",
"type": "product",
"id": "81fdf852-7c21-11e6-8a84-bae500000068",
"idType": "native"
},
"id": "81fdf852-7c21-11e6-8a84-bae500000068",
"name": "Пиво",
"code": "00003",
"barcodes": [
"2000000000039"
],
"salePrices": [
{
"value": 1000,
"priceType": "Цена продажи"
},
{
"value": 2000,
"priceType": "Цена праздничная"
}
],
"productFolder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"mediaType": "application/json",
"type": "productfolder",
"id": "dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"idType": "native"
},
"id": "dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"name": "Овощи",
"namepath": "Овощи",
"path": "/dbe2cf7f-7b5c-11e6-8a84-bae50000000e/"
},
"article": "Ovosh1",
"uom": "шт",
"egaisIsAlcoholic": true,
"egaisHasExciseMark": false,
"egaisProductCode": 1,
"egaisVolume": 2,
"egaisAlcoholPercent": 0.3,
"soldByWeight": false,
"onTap": false,
"stock": -208,
"reserve": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/86e8625c-7b1d-11e6-8a84-bae500000106",
"mediaType": "application/json",
"type": "product",
"id": "86e8625c-7b1d-11e6-8a84-bae500000106",
"idType": "native"
},
"id": "86e8625c-7b1d-11e6-8a84-bae500000106",
"name": "Товар",
"code": "00001",
"barcodes": [
"2000000000015"
],
"salePrices": [
{
"value": 0,
"priceType": "Цена продажи"
}
],
"uom": "шт",
"egaisIsAlcoholic": true,
"egaisHasExciseMark": false,
"egaisVolume": 0,
"egaisAlcoholPercent": 0,
"soldByWeight": false,
"onTap": false,
"stock": -23,
"reserve": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/service/a22fb175-7fcf-11e6-8a84-bae500000005",
"mediaType": "application/json",
"type": "service",
"id": "a22fb175-7fcf-11e6-8a84-bae500000005",
"idType": "native"
},
"id": "a22fb175-7fcf-11e6-8a84-bae500000005",
"name": "Услуга",
"code": "00004",
"barcodes": [
"2000000000046"
],
"salePrices": [
{
"value": 0,
"priceType": "Цена продажи"
}
],
"uom": "шт"
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/b2334e83-7fcf-11e6-8a84-bae50000000c",
"mediaType": "application/json",
"type": "product",
"id": "b2334e83-7fcf-11e6-8a84-bae50000000c",
"idType": "native"
},
"id": "b2334e83-7fcf-11e6-8a84-bae50000000c",
"name": "Товар2",
"code": "00005",
"barcodes": [
"2000000000053"
],
"salePrices": [
{
"value": 0,
"priceType": "Цена продажи"
}
],
"uom": "шт",
"egaisIsAlcoholic": false,
"egaisHasExciseMark": false,
"egaisVolume": 0,
"egaisAlcoholPercent": 0,
"soldByWeight": false,
"onTap": false,
"stock": 0,
"reserve": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/variant/b23bf8f1-7fcf-11e6-8a84-bae500000010",
"mediaType": "application/json",
"type": "variant",
"id": "b23bf8f1-7fcf-11e6-8a84-bae500000010",
"idType": "native"
},
"id": "b23bf8f1-7fcf-11e6-8a84-bae500000010",
"name": "(Mod)",
"code": "00002",
"barcodes": [
"2000000000060"
],
"salePrices": [
{
"value": 0,
"priceType": "Цена продажи"
}
],
"characteristics": {
"Style": "Hip"
},
"product": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/b2334e83-7fcf-11e6-8a84-bae50000000c",
"mediaType": "application/json",
"type": "product",
"id": "b2334e83-7fcf-11e6-8a84-bae50000000c",
"idType": "native"
},
"id": "b2334e83-7fcf-11e6-8a84-bae50000000c",
"name": "Товар2",
"code": "00005",
"uom": "шт",
"egaisIsAlcoholic": false,
"egaisHasExciseMark": false,
"egaisVolume": 0,
"egaisAlcoholPercent": 0,
"soldByWeight": false,
"onTap": false,
"stock": 0,
"reserve": 0
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/variant/b23ed636-7fcf-11e6-8a84-bae500000014",
"mediaType": "application/json",
"type": "variant",
"id": "b23ed636-7fcf-11e6-8a84-bae500000014",
"idType": "native"
},
"id": "b23ed636-7fcf-11e6-8a84-bae500000014",
"name": "(Hop)",
"code": "00003",
"barcodes": [
"2000000000077"
],
"salePrices": [
{
"value": 0,
"priceType": "Цена продажи"
}
],
"characteristics": {
"Style": "Hop"
},
"product": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/b2334e83-7fcf-11e6-8a84-bae50000000c",
"mediaType": "application/json",
"type": "product",
"id": "b2334e83-7fcf-11e6-8a84-bae50000000c",
"idType": "native"
},
"id": "b2334e83-7fcf-11e6-8a84-bae50000000c",
"name": "Товар2",
"code": "00005",
"uom": "шт",
"egaisIsAlcoholic": false,
"egaisHasExciseMark": false,
"egaisVolume": 0,
"egaisAlcoholPercent": 0,
"soldByWeight": false,
"onTap": false,
"stock": 0,
"reserve": 0
}
},
{
"meta": {
"href": "http://localhost/api/posap/1.0/entity/product/216e7496-6112-11e9-ac13-000c000000bc",
"mediaType": "application/json",
"type": "product",
"id": "216e7496-6112-11e9-ac13-000c000000bc",
"idType": "native"
},
"id": "216e7496-6112-11e9-ac13-000c000000bc",
"name": "Товар",
"code": "00001",
"barcodes": [
"2000000000015"
],
"salePrices": [
{
"value": 0,
"priceType": "Цена продажи"
}
],
"favorite": false,
"uom": "шт",
"egaisIsAlcoholic": false,
"egaisHasExciseMark": false,
"egaisVolume": 0,
"egaisAlcoholPercent": 0,
"soldByWeight": false,
"onTap": false,
"tobacco": false,
"trackingType": "NOT_TRACKED",
"stock": 0,
"reserve": 0,
"isSerialTrackable": false
},
{
"meta": {
"href": "http://localhost/api/posap/1.0/entity/product/ace86997-6113-11e9-ac13-000c000000c9",
"mediaType": "application/json",
"type": "product",
"id": "ace86997-6113-11e9-ac13-000c000000c9",
"idType": "native"
},
"id": "ace86997-6113-11e9-ac13-000c000000c9",
"name": "shoes",
"code": "00002",
"barcodes": [
"2000000000022"
],
"salePrices": [
{
"value": 0,
"priceType": "Цена продажи"
}
],
"favorite": false,
"uom": "шт",
"egaisIsAlcoholic": false,
"egaisHasExciseMark": false,
"egaisVolume": 0,
"egaisAlcoholPercent": 0,
"soldByWeight": false,
"onTap": false,
"tobacco": false,
"trackingType": "SHOES",
"stock": 0,
"reserve": 0,
"isSerialTrackable": false,
"partialDisposal": false
},
{
"meta": {
"href": "http://localhost/api/posap/1.0/entity/product/c1d3dacb-6113-11e9-ac13-000c000000d2",
"mediaType": "application/json",
"type": "product",
"id": "c1d3dacb-6113-11e9-ac13-000c000000d2",
"idType": "native"
},
"id": "c1d3dacb-6113-11e9-ac13-000c000000d2",
"name": "tobacco",
"code": "00003",
"barcodes": [
"2000000000039"
],
"salePrices": [
{
"value": 0,
"priceType": "Цена продажи"
}
],
"favorite": false,
"uom": "шт",
"egaisIsAlcoholic": false,
"egaisHasExciseMark": false,
"egaisVolume": 0,
"egaisAlcoholPercent": 0,
"soldByWeight": false,
"onTap": false,
"tobacco": true,
"trackingType": "TOBACCO",
"stock": 0,
"reserve": 0,
"isSerialTrackable": false,
"partialDisposal": false
}
]
}
Загрузка товаров
GET/entity/assortment
Создание продажи ¶
Теперь, имея открытую смену и справочник товаров, создадим пробную розничную продажу.
POST https://online.moysklad.ru/api/posap/1.0/entity/retaildemand
Requestsсоздание продажи
Пример создания новой розничной продажи.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147753335ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: example@admin
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildemand/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
},
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/388bd178-800c-11e6-8a84-bae5022000a2"
}
},
"name": "000219991",
"moment": "2016-09-06 21:41:46",
"description": "размен",
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/688bd078-800c-11e6-8a84-bae5000000a2"
}
},
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/81fdf852-7c21-11e6-8a84-bae500000068",
"mediaType": "application/json"
}
},
"quantity": 2,
"price": 500,
"discount": 10,
"discountSum": 100,
"vat": 10,
"vatSum": 100,
"sum": 1000,
"pdf": [
"abc",
"def"
],
"marks": [
{
"cis": "12345678900987ABCDEFGabcdefgh"
},
{
"cis": "00000046185372KY4mjNZAB=U/FkO"
}
]
}
],
"cashSum": 800,
"noCashSum": 100,
"vatEnabled": true,
"vatIncluded": true,
"bottleUrl": "https://check.egais.ru?id=a9e56cb9-21d6-4404-9f24-668020fadf6a&dt=0910141104&cn=Magazin2014",
"bottleSign": "418E6A105B60250CEB20F9F9A556FA4A9575B0C07EC536DE89CA868C884E296E56BA7EC7762C9BEC285CB4D8CD90EEE9F9FC16F92CCF324829E70862F0DFEC1B418E6A105B60250CEB20F9F9A556FA4A9575B0C07EC536DE89CA868C884E296E56BA7EC7762C9BEC285CB4D8CD90EEE9F9FC16F92CCF324829E70862F0DFEC1B",
"chequeEmail": "test@test.org",
"chequePhone": "123456",
"electronicCheque": true,
"paperCheque": true
}
Responses201
This response has no content.
Создание продажи
POST/entity/retaildemand
Закрытие смены ¶
По окончании работы закроем открытую нами ранее розничную смену.
PUT https://online.moysklad.ru/api/posap/1.0/rpc/closeshift/
RequestsПример
Пример запроса на закрытие смены.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147753335ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: example@admin
BodyСкрытьПоказать
{
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/388bd178-800c-11e6-8a84-bae5022000a2"
}
},
"closemoment": "2016-09-06 22:40:00"
}
Responses204
This response has no content.
Закрытие смены
PUT/rpc/closeshift/
В запрос передаём meta от ранее открытой смены, а также момент закрытия.
Точка продаж ¶
Для данного ресурса предусмотрена обычная BASIC авторизация по паре логин-пароль.
Точка продаж ¶
GET https://online.moysklad.ru/api/posap/1.0/admin/retailstore
Responses200
Успешный запрос. Результат — JSON представление точки продаж.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/admin/retailstore",
"mediaType": "application/json",
"size": 1,
"limit": 1000,
"offsetId": "00000000-0000-0000-0000-000000000000",
"direction": "forward"
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailstore/5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"mediaType": "application/json",
"type": "retailstore",
"id": "5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"idType": "native"
},
"id": "5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"version": 2,
"updated": "2016-09-21 19:27:45",
"name": "Точка продаж",
"externalCode": "W0M-XxXYjPZJjA1cT3RTL2",
"controlShippingStock": true,
"onlyInStock": false,
"controlCashierChoice": false,
"discountEnable": true,
"discountMaxPercent": 100,
"priceType": "Цена продажи",
"authTokenAttached": true,
"cashiers": {
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/employee/a4f36276-7b5a-11e6-8a84-bae500000004",
"mediaType": "application/json",
"type": "employee",
"id": "a4f36276-7b5a-11e6-8a84-bae500000004",
"idType": "native"
},
"uid": "cashier@myorg",
"firstName": "Иван",
"middleName": "Иванович",
"lastName": "Иванов",
"image": {
"href": "http://online.moysklad.ru/api/posap/1.0/download/35629a98-d029-11e7-0532-9eed00000001",
"miniature": "http://online.moysklad.ru/api/posap/1.0/download/35629a98-d029-11e7-0532-9eed00000001?miniature=true",
"tiny": "http://online.moysklad.ru/app/download/3626405c-d029-11e7-0532-9eed00000002/t.png"
},
"inn": "222490425273",
"position": "position",
"email": "ivanov@myorg.ru"
}
]
},
"organization": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/organization/5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"mediaType": "application/json",
"type": "organization",
"id": "5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"idType": "native"
},
"id": "5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"version": 5,
"updated": "2016-09-21 14:30:43",
"name": "myorg",
"description": "Страховое публичное акционерное общество «РЕСО-Гарантия»",
"code": "1234",
"externalCode": "PW55m0xUiG1pAlGJv73Sd2",
"companyType": "legal",
"legalTitle": "СТРАХОВОЕ ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО "РЕСО-ГАРАНТИЯ"",
"legalAddress": "г Москва, ул Гашека, д 12 к 1",
"actualAddress": "г Москва, ул Вавилова д 19",
"inn": "7710045520",
"kpp": "775001001",
"ogrn": "1027700042413",
"okpo": "121351253251",
"email": "myorg@orgmy.su",
"phone": "346243637247",
"fax": "32472377432524",
"isEgaisEnable": true,
"fsrarId": "the id for fr",
"payerVat": true,
"utmUrl": "url.coms"
},
"store": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/store/5d1fa036-7b1d-11e6-8a84-bae500000053",
"mediaType": "application/json",
"type": "counterparty",
"id": "5d1fa036-7b1d-11e6-8a84-bae500000053",
"idType": "native"
},
"name": "Основной склад",
"pathName": "",
"address": "г Москва ул Милашенкова д 2"
},
"acquire": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/1c5dcf6f-7b32-11e6-8a84-bae500000000",
"mediaType": "application/json",
"type": "counterparty",
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"idType": "native"
}
},
"lastOperationNames": [
{
"entity": "retaildemand",
"name": "03211312",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retaildrawercashin",
"name": "00001",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retaildrawercashout",
"name": "00001",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retailsalesreturn",
"name": "0002199921",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retailshift",
"name": "042777001",
"moment": "2016-10-07 15:50:14"
}
],
"egaisEnabled": false,
"frNumber": "",
"returnFromClosedShiftEnabled": false,
"alwaysPrintCheck": false,
"issueOrders": false,
"sellReserves": false,
"ofdEnabled": false,
"allowCustomPrice": false,
"cash": 10050,
"createPaymentInOnRetailShiftClosing": true,
"createCashInOnRetailShiftClosing": false,
"allowCreateProducts": true,
"enableReturnsWithNoReason": true,
"isOnlineDiscount": false,
"isExternalCustomers": false,
"isPhonePriority": true,
"reservePrepaidGoods": false,
"receiptTemplate": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/receipttemplate/4636cc33-d372-11e8-ac16-000900000001",
"mediaType": "application/json",
"type": "receipttemplate",
"id": "4636cc33-d372-11e8-ac16-000900000001",
"idType": "native"
},
"header": "АКЦИЯ: 6 ЗА 5. ПОДРОБНЕЕ ЧИТАЙТЕ В НИЖНЕЙ ЧАСТИ ЧЕКА",
"footer": "КУПИТЕ 5 КОФЕ И ПОЛУЧИТЕ 6-й В ПОДАРОК, ПРЕДЪЯВИВ ЭТОТ ЧЕК"
},
"environment": {
"device": "RetailStorePc",
"os": "Linux",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.1"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"state": {
"sync": {
"message": "Ошибка синхронизации, необходимо войти повторно",
"lastAttempMoment": "2016-09-06 21:41:00"
},
"lastCheckMoment": "2018-06-13 16:18:00",
"fiscalMemory": {
"error": {
"code": "1003",
"message": "Критическая ошибка"
},
"notSendDocCount": 25,
"notSendFirstDocMoment": "2016-09-06 21:41:00"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"qrPayEnabled": true,
"qrAcquire": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/1c5dcf6f-7b32-11e6-8a84-bae500000000",
"mediaType": "application/json",
"type": "counterparty",
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"idType": "native"
}
},
"enableNotMRCTobaccoSale": false,
"tobaccoMrcControlType": "SAME_PRICE",
"markingSellingMode": "CORRECT_MARKS_ONLY",
"sendMarksForCheck": false
}
]
}
Получить точки продаж
GET/admin/retailstore
Запрос на получение точек продаж, на которых пользователь является кассиром.
-
meta — Метаданные точки продаж
Необходимое -
id — ID в формате UUID
Необходимое -
version — Версия сущности
Необходимое -
updated — Момент последнего обновления сущности
Необходимое -
name — Наименование точки продаж
Необходимое -
description — Описание точки продаж
-
externalCode — Внешний код точки продаж
Необходимое -
address — Адрес
-
controlShippingStock — Контроль остатков
Необходимое -
onlyInStock — Выгружать только товары в наличии. Доступно только при активном контроле остатков.
-
controlCashierChoice — Выбор продавца
Необходимое -
discountEnable — Разрешить ручные скидки
Необходимое -
discountMaxPercent — Максимально разрешенная скидка
Необходимое -
priceType — Тип цен, с которыми будут продаваться товары в рознице
Необходимое -
authTokenAttached — Флаг, указывающий, что для точки продаж уже был установлен токен обмена
(повторная установка токена может привести к тому, что данные с предыдущего устройства перестанут выгружаться)Необходимое -
cashiers — Кассиры которые могут работать на точке продаж
Необходимое. Выводится максимум 100 кассиров.- meta — метаданные
- uid — идентификатор учетной записи кассира
- firstName — Имя
- middleName — Отчество
- lastName — Фамилия
- pinCode — ПИН-код
- image — Фотография кассира
- href — Ссылка на изображение
- miniature — Ссылка на миниатюру изображения
- tiny — Ссылка на уменьшенную версию изображения
- inn — ИНН
- position — Должность
- email — Адрес электронной почты
-
organization — организация которой принадлежит точка продаж
Необходимое- meta — метаданные
Необходимое - name — Краткое наименование
Необходимое - companyType — Тип организации
Необходимое - legalTitle— Полное наименование
- legalAddress— Юридический адрес
- actualAddress — Фактический адрес
- inn — ИНН
- kpp — КПП
- ogrn — ОГРН
- okpo — ОКПО
- ogrnip — ОГРНИП
- certificateNumber — Номер свидетельства
- certificateDate — Дата свидетельства
- email — Адрес электронной почты
- phone — Номер телефона
- fax — факс
- isEgaisEnable — ЕГАИС включен
- payerVat— Плательщик НДС
- fsrarId — Идентификатор в ФСРАР
- utmUrl — Адрес и порт УТМ
- meta — метаданные
-
store — склад с которого торгует точка продаж
- meta — Метаданные
- name — Наименование склада
- parent — родительский склад
- pathName — Группа, к которой относится склад
Необходимое - address — Адрес
Необходимое
-
acquire — Банк эквайер операций по карте
- meta — Метаданные
-
lastOperationNames — коллекция номеров последних созданных документов на данной точке продаж.
Необходимое
Каждый элемент коллекции — тип и имя- entity — тип документа
Необходимое - name — Номер документа
Необходимое - moment — Дата документа
Необходимое
- entity — тип документа
-
egaisEnabled — Точка продаж должна передавать данные в ЕГАИС
Необходимое -
frNumber — Номер модели ФР
Необходимое -
returnFromClosedShiftEnabled — Разрешить возвраты в закрытых сменах
Необходимое -
alwaysPrintCheck — Обязательная печать чеков
Необходимое -
issueOrders — Выдача заказов
Необходимое -
sellReserves — Учет резервов
Необходимое -
ofdEnabled — Отправлять электронный чек через ОФД
Необходимое -
allowCustomPrice — Разрешить продажу по свободной цене
Необходимое -
cash — Остаток денег в кассе
Необходимое -
createPaymentInOnRetailShiftClosing — Создавать входящий платеж при закрытии смен. Если флаг включен, в закрываемой смене
указан банк-эквайер и безналичная выручка за смену (с учетом комиссии) больше 0, то при закрытии смены будет создан входящий платежНеобходимое -
createCashInOnRetailShiftClosing — Создавать ПКО при закрытии смены. Если флаг включен, в операции закрытия смены
есть ссылка на выплату и сумма выплаты больше 0, то при закрытии смены будет создан связанный ПКОНеобходимое -
allowCreateProducts — Разрешить создавать товары
-
allowCreateReturnWithoutDemand — Разрешить создание возвратов без основания
-
isPhonePriority — Приоритет отправки электронного чека на телефон. Если флаг выключен, приоритет отправки изменяется на email. Поле недоступно, если приоритет имеет значение Не отправлять или выключен флаг для отправки электронного чека через ОФД .
-
isOnlineDiscount — Возможность использовать скидку и рассчитывать чек на стороне сервера
-
receiptTemplate — Шаблон чека
- meta — Метаданные шаблона чека
- header — Верхний блок шаблона чека
- footer — Нижний блок шаблона чека
-
reservePrepaidGoods — Резервировать товары за которые внесена предоплата
-
environment — информация об окружении
- device — информация об устройстве
- os — информация об операционной системе
- software — информация о ПО
- name — наименование ПО.
Необходимое - vendor — Производитель.
- version — версия ПО.
- name — наименование ПО.
- chequePrinter — данные о ККТ
- vendor — Производитель
- name — Наименование.
Необходимое - serial — серийный номер
- fiscalDataVersion — формат фискальных данных
- driver — информация об используемом драйвере
- name — наименования драйвера
- version — Версия драйвера
- fiscalMemory — информация о фискальном накопителе
- fiscalDataVersion — версия фискальной памяти
- firmwareVersion — Версия прошивки ККТ
- paymentTerminal — информация о платежном терминале
- acquiringType — информация о типе эквайера (например: inpas/payme)
-
state — информация о статусе точки продаж
- sync — состояние синхронизации
- message — состояние синхронизации.
- lastAttempMoment — Дата последней сихронизации (не обязательно успешной).
Необходимое
- lastCheckMoment — дата и время последней синхронизации
- fiscalMemory — информация о фискальной памяти
- error — информация об ошибке ФН
- сode — код ошибки ФН
- message — описание ошибки
- notSendDocCount — Количество неотправленных документов в ОФД
- notSendFirstDocMoment — Дата первого документа в очереди на отправку
- error — информация об ошибке ФН
- paymentTerminal — информация о платежном терминале
Deprecated- acquiringType — информация о типе эквайера (например: inpas/payme)
- sync — состояние синхронизации
-
enableNotMRCTobaccoSale — Разрешить продавать табачную продукцию не по МРЦ.
Deprecated -
tobaccoMrcControlType — Контроль МРЦ для табачной продукции
-
markingSellingMode — Продажа маркированных товаров
-
qrPayEnabled — возможность оплаты по QR-коду на точке продаж
-
qrAcquire — банк эквайер операций по QR-коду
- meta — Метаданные
-
isExternalCustomers — Возможность искать покупателей во внешней системе лояльности
-
sendMarksForCheck — настройки для указания необходимости передавать коды маркировки для проверки с ККТ в мастер-кассу
Привязка точки, получение токена ¶
Для данного ресурса предусмотрена обычная BASIC авторизация по паре логин-пароль с небольшим отличием от стандартного поведения — сервер вместе с кодом 401 не возвращает заголовок WWW-Authenticate после неудачной аутентификации.
Получение Token ¶
Данный ресурс предназначен для получения token для аутентификации на конкретной точке продаж.
Id точки продаж передаётся в параметрах запроса. Данный запрос могут выполнить только кассиры на данной точке продаж
и администраторы. Получить информацию о точках продаж можно воспользовавшись этим ресурсом.
-
Если пользователь не является кассиром или администратором — в результате запроса произойдёт ошибка с кодом 403.
-
Если точка продаж с указанным id не найдена — возникнет ошибка с кодом 404.
После успешного запроса происходит создание токена обмена для данной точки продаж, который будет заменять связку логин-пароль при обращении к ресурсам розницы.
Все предыдущие токены для точки при этом аннулируются.
POST https://online.moysklad.ru/api/posap/1.0/admin/attach/7944ef04-f831-11e5-7a69-971500188b19
Responses201
Успешный запрос. Результат — токен для последующей аутентификации на данной точке продаж.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"token": "6ab89be1ae6ff147755625ee8da948e42612233b",
"uid": "kassir@321"
}
Назначить токен для точки продаж
POST/admin/attach/{id}
URI Параметры
СкрытьПоказать
- id
string(required) Example: 7944ef04-f831-11e5-7a69-971500188b19id точки продаж, которой назначается token
Настройки точки продаж ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Настройки точки продаж ¶
GET https://online.moysklad.ru/api/posap/1.0/settings/retailstore/
Responses200
Успешный запрос. Результат — JSON представление точки продаж.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailstore/5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"mediaType": "application/json",
"type": "retailstore",
"id": "5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"idType": "native"
},
"id": "5d4d2ca2-7b1d-11e6-8a84-bae500000060",
"version": 2,
"updated": "2016-09-21 19:27:45",
"name": "Точка продаж",
"externalCode": "W0M-XxXYjPZJjA1cT3RTL2",
"controlShippingStock": true,
"onlyInStock": false,
"controlCashierChoice": false,
"discountEnable": true,
"discountMaxPercent": 100,
"priceType": "Цена продажи",
"authTokenAttached": true,
"cashiers": {
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/employee/a4f36276-7b5a-11e6-8a84-bae500000004",
"mediaType": "application/json",
"type": "employee",
"id": "a4f36276-7b5a-11e6-8a84-bae500000004",
"idType": "native"
},
"uid": "cashier@myorg",
"firstName": "Иван",
"middleName": "Иванович",
"lastName": "Иванов",
"image": {
"href": "http://online.moysklad.ru/api/posap/1.0/download/35629a98-d029-11e7-0532-9eed00000001",
"miniature": "http://online.moysklad.ru/api/posap/1.0/download/35629a98-d029-11e7-0532-9eed00000001?miniature=true",
"tiny": "http://online.moysklad.ru/app/download/3626405c-d029-11e7-0532-9eed00000002/t.png"
},
"inn": "222490425273",
"position": "position",
"email": "ivanov@myorg.ru"
}
]
},
"organization": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/organization/5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"mediaType": "application/json",
"type": "organization",
"id": "5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"idType": "native"
},
"id": "5d0f5e3e-7b1d-11e6-8a84-bae500000051",
"version": 5,
"updated": "2016-09-21 14:30:43",
"name": "myorg",
"description": "Страховое публичное акционерное общество «РЕСО-Гарантия»",
"code": "1234",
"externalCode": "PW55m0xUiG1pAlGJv73Sd2",
"companyType": "legal",
"legalTitle": "СТРАХОВОЕ ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО "РЕСО-ГАРАНТИЯ"",
"legalAddress": "г Москва, ул Гашека, д 12 к 1",
"actualAddress": "г Москва, ул Вавилова д 19",
"inn": "7710045520",
"kpp": "775001001",
"ogrn": "1027700042413",
"okpo": "121351253251",
"email": "myorg@orgmy.su",
"phone": "346243637247",
"fax": "32472377432524",
"isEgaisEnable": true,
"fsrarId": "the id for fr",
"payerVat": true,
"utmUrl": "url.coms"
},
"store": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/store/5d1fa036-7b1d-11e6-8a84-bae500000053",
"mediaType": "application/json",
"type": "counterparty",
"id": "5d1fa036-7b1d-11e6-8a84-bae500000053",
"idType": "native"
},
"name": "Основной склад",
"pathName": "",
"address": "г Москва ул Милашенкова д 2"
},
"acquire": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/1c5dcf6f-7b32-11e6-8a84-bae500000000",
"mediaType": "application/json",
"type": "counterparty",
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"idType": "native"
}
},
"lastOperationNames": [
{
"entity": "retaildemand",
"name": "03211312",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retaildrawercashin",
"name": "00001",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retaildrawercashout",
"name": "00001",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retailsalesreturn",
"name": "0002199921",
"moment": "2016-10-07 15:50:14"
},
{
"entity": "retailshift",
"name": "042777001",
"moment": "2016-10-07 15:50:14"
}
],
"egaisEnabled": false,
"frNumber": "",
"returnFromClosedShiftEnabled": false,
"alwaysPrintCheck": false,
"issueOrders": false,
"sellReserves": false,
"ofdEnabled": false,
"allowCustomPrice": false,
"cash": 10050,
"createPaymentInOnRetailShiftClosing": true,
"createCashInOnRetailShiftClosing": false,
"allowCreateProducts": true,
"enableReturnsWithNoReason": true,
"isOnlineDiscount": false,
"isExternalCustomers": false,
"isPhonePriority": true,
"reservePrepaidGoods": false,
"receiptTemplate": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/receipttemplate/4636cc33-d372-11e8-ac16-000900000001",
"mediaType": "application/json",
"type": "receipttemplate",
"id": "4636cc33-d372-11e8-ac16-000900000001",
"idType": "native"
},
"header": "АКЦИЯ: 6 ЗА 5. ПОДРОБНЕЕ ЧИТАЙТЕ В НИЖНЕЙ ЧАСТИ ЧЕКА",
"footer": "КУПИТЕ 5 КОФЕ И ПОЛУЧИТЕ 6-й В ПОДАРОК, ПРЕДЪЯВИВ ЭТОТ ЧЕК"
},
"environment": {
"device": "RetailStorePc",
"os": "Linux",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.1"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"state": {
"sync": {
"message": "Ошибка синхронизации, необходимо войти повторно",
"lastAttempMoment": "2016-09-06 21:41:00"
},
"lastCheckMoment": "2018-06-13 16:18:00",
"fiscalMemory": {
"error": {
"code": "1003",
"message": "Критическая ошибка"
},
"notSendDocCount": 25,
"notSendFirstDocMoment": "2016-09-06 21:41:00"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"qrPayEnabled": true,
"qrAcquire": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/1c5dcf6f-7b32-11e6-8a84-bae500000000",
"mediaType": "application/json",
"type": "counterparty",
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"idType": "native"
}
},
"enableNotMRCTobaccoSale": false,
"tobaccoMrcControlType": "SAME_PRICE",
"markingSellingMode": "CORRECT_MARKS_ONLY",
"sendMarksForCheck": false
}
Получить настройки точки продаж
GET/settings/retailstore/
Запрос на получение отдельной точки продаж (настроек точки продаж).
-
meta — Метаданные о смене
Необходимое -
id — ID в формате UUID
Необходимое -
version — Версия сущности
Необходимое -
updated — Момент последнего обновления сущности
Необходимое -
name — Наименование точки продаж
Необходимое -
description — Описание точки продаж
Необходимое -
externalCode — Внешний код точки продаж
Необходимое -
address — Адрес
-
controlShippingStock — Контроль остатков
Необходимое -
onlyInStock — Выгружать только товары в наличии. Доступно только при активном контроле остатков.
-
controlCashierChoice — Выбор продавца
Необходимое -
discountEnable — Разрешить ручные скидки
Необходимое -
discountMaxPercent — Максимально разрешенная скидка
Необходимое -
priceType — Тип цен, с которыми будут продаваться товары в рознице
Необходимое -
authTokenAttached — Флаг, указывающий, что для точки продаж уже был установлен токен обмена
(повторная установка токена может привести к тому, что данные с предыдущего устройства перестанут выгружаться)Необходимое -
cashiers — Кассиры которые могут работать на точке продаж
Необходимое- meta — метаданные
- uid — идентификатор учетной записи кассира
- firstName — Имя
- middleName — Отчество
- lastName — Фамилия
- pinCode — ПИН-код
- image — Фотография кассира
- href — Ссылка на изображение
- miniature — Ссылка на миниатюру изображения
- tiny — Ссылка на уменьшенную версию изображения
- inn — ИНН
- position — Должность
- email — Адрес электронной почты
-
organization — организация которой принадлежит точка продаж
Необходимое- meta — метаданные
Необходимое - name — Краткое наименование
Необходимое - companyType — Тип организации
Необходимое - legalTitle— Полное наименование
- legalAddress— Юридический адрес
- actualAddress — Фактический адрес
- inn — ИНН
- kpp — КПП
- ogrn — ОГРН
- okpo — ОКПО
- ogrnip — ОГРНИП
- certificateNumber — Номер свидетельства
- certificateDate — Дата свидетельства
- email — Адрес электронной почты
- phone — Номер телефона
- fax — факс
- isEgaisEnable — ЕГАИС включен
- payerVat— Плательщик НДС
- fsrarId — Идентификатор в ФСРАР
- utmUrl — Адрес и порт УТМ
- meta — метаданные
-
store — склад с которого торгует точка продаж
- meta — Метаданные
- name — Наименование склада
- parent — родительский склад
- pathName — Группа, к которой относится склад
Необходимое - address — Адрес
Необходимое
-
acquire — Банк эквайер операций по карте
- meta — Метаданные
-
lastOperationNames — коллекция номеров последних созданных документов на данной точке продаж.
Необходимое
Каждый элемент коллекции — тип и имя- entity — тип документа
Необходимое - name — Номер документа
Необходимое - moment — Дата документа
Необходимое
- entity — тип документа
-
egaisEnabled — Точка продаж должна передавать данные в ЕГАИС
Необходимое -
frNumber — Номер модели ФР
Необходимое -
returnFromClosedShiftEnabled — Разрешить возвраты в закрытых сменах
Необходимое -
alwaysPrintCheck — Обязательная печать чеков
Необходимое -
issueOrders — Выдача заказов
Необходимое -
sellReserves — Учет резервов
Необходимое -
ofdEnabled — Отправлять электронный чек через ОФД
Необходимое -
allowCustomPrice — Разрешить продажу по свободной цене
Необходимое -
cash — Остаток денег в кассе
Необходимое -
createPaymentInOnRetailShiftClosing — Создавать входящий платеж при закрытии смен. Если флаг включен, в закрываемой смене
указан банк-эквайер и безналичная выручка за смену (с учетом комиссии) больше 0, то при закрытии смены будет создан входящий платежНеобходимое -
createCashInOnRetailShiftClosing — Создавать ПКО при закрытии смены. Если флаг включен, в операции закрытия смены
есть ссылка на выплату и сумма выплаты больше 0, то при закрытии смены будет создан связанный ПКОНеобходимое -
allowCreateProducts — Разрешить создавать товары
-
allowCreateReturnWithoutDemand — Разрешить создание возвратов без основания
-
isPhonePriority — Приоритет отправки электронного чека на телефон. Если флаг выключен, приоритет отправки изменяется на email. Поле недоступно, если приоритет имеет значение Не отправлять или выключен флаг для отправки электронного чека через ОФД .
-
isOnlineDiscount — Возможность использовать скидку и рассчитывать чек на стороне сервера
-
receiptTemplate — Шаблон чека
- meta — Метаданные шаблона чека
- header — Верхний блок шаблона чека
- footer — Нижний блок шаблона чека
-
environment — информация об окружении
- device — информация об устройстве
- os — информация об операционной системе
- software — информация о ПО
- name — наименование ПО.
Необходимое - vendor — Производитель.
- version — версия ПО.
- name — наименование ПО.
- chequePrinter — данные о ККТ
- vendor — Производитель
- name — Наименование.
Необходимое - serial — серийный номер
- fiscalDataVersion — формат фискальных данных
- driver — информация об используемом драйвере
- name — наименования драйвера
- version — Версия драйвера
- fiscalMemory — информация о фискальном накопителе
- fiscalDataVersion — версия фискальной памяти
- firmwareVersion — Версия прошивки ККТ
- paymentTerminal — информация о платежном терминале
- acquiringType — информация о типе эквайера (например: inpas/payme)
-
state — информация о статусе точки продаж
- sync — состояние синхронизации
- message — состояние синхронизации.
- lastAttempMoment — Дата последней сихронизации (не обязательно успешной).
Необходимое
- lastCheckMoment — дата и время последней синхронизации
- fiscalMemory — информация о фискальной памяти
- error — информация об ошибке ФН
- сode — код ошибки ФН
- message — описание ошибки
- notSendDocCount — Количество неотправленных документов в ОФД
- notSendFirstDocMoment — Дата первого документа в очереди на отправку
- error — информация об ошибке ФН
- paymentTerminal — информация о платежном терминале
Deprecated- acquiringType — информация о типе эквайера (например: inpas/payme)
- sync — состояние синхронизации
-
defaultTaxSystem — Код системы налогообложения по умолчанию.
-
orderTaxSystem — Код системы налогообложения для заказов.
-
qrPayEnabled — возможность оплаты по QR-коду на точке продаж
-
qrAcquire — банк эквайер операций по QR-коду
- meta — Метаданные
| Система налогообложения | Значение поля defaultTaxSystem/orderTaxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
-
enableNotMRCTobaccoSale — Разрешить продавать табачную продукцию не по МРЦ.
Deprecated -
tobaccoMrcControlType — Контроль МРЦ для табачной продукции.
Необходимое
| Контроль МРЦ для табачной продукции | Значение поля tobaccoMrcControlType |
|---|---|
| Не контролировать МРЦ | USER_PRICE |
| Продавать по МРЦ указанной на пачке | MRC_PRICE |
| Запрещать продажу, если цена продажи не совпадает с МРЦ | SAME_PRICE |
- fiscalType — Тип формирования чеков.
| Формирование чеков | Значение поля fiscalType |
|---|---|
| Стандартное | STANDARD |
| Обработка облачных операций | MASTER |
| Облачное | CLOUD |
- markingSellingMode — Режим продажи маркированной продукции, если используется формат фискальных документов версии 1.2.
Необходимое
| Продажа маркированных товаров | Значение поля markingSellingMode |
|---|---|
| Только с правильными кодами маркировки | CORRECT_MARKS_ONLY |
| С правильными кодами и те, которые не удалось проверить | WITHOUT_ERRORS |
| Все – независимо от результатов проверки кодов маркировки | ALL |
-
isExternalCustomers — Возможность искать покупателей во внешней системе лояльности
-
sendMarksForCheck — настройки для указания необходимости передавать коды маркировки для проверки с ККТ в мастер-кассу
Настройки компании ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Настройки компании ¶
GET https://online.moysklad.ru/api/posap/1.0/settings/companysettings
Responses200
Успешный запрос. Результат — JSON представление Настроек компании.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"currency": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/currency/5d204097-7b1d-11e6-8a84-bae500000058",
"mediaType": "application/json",
"type": "currency",
"id": "5d204097-7b1d-11e6-8a84-bae500000058",
"idType": "native"
},
"name": "руб",
"rate": 1,
"code": "643"
},
"discountStrategy": "bySum",
"isWeightBarcodes": false,
"weightBarcodePrefix": "00",
"operationNumbering": "GLOBAL"
}
Получить Настройки компании
GET/settings/companysettings
Запрос на получение Настроек компании.
-
currency — стандартная валюта
Необходимое- meta — метаданные валюты
Необходимое - name — наименование валюты
Необходимое - rate — курс валюты
Необходимое - code — код валюты
Необходимое
- meta — метаданные валюты
-
discountStrategy — Cовместное применение скидок. Может принимать значения
[bySum, byPriority]означающие “Сумма скидок” и “Приоритетная” соответственно.Необходимое- “Сумма скидок”
[bySum]означает, что должна действовать сумма скидок - “Приоритетная”
[byPriority]должна действовать одна, наиболее выгодная для покупателя скидка
- “Сумма скидок”
-
isWeightBarcodes — Флаг, используются весовые штрихкоды
Необходимое -
weightBarcodePrefix — Строка, маска весовых штрихкодов
Необходимое -
operationNumbering — Нумерация документов. Может принимать значения
[GLOBAL, YEARLY]означающие “Сквозная за всю историю” и “Внутри календарного года” соответственно.Необходимое
Скидки ¶
Перед работой со скидками настоятельно рекомендуем вам прочитать вот эту статью на портале поддержки МоегоСклада.
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Скидки ¶
GET https://online.moysklad.ru/api/posap/1.0/entity/discount
Responses200
Успешный запрос. Результат — список всех скидок всех типов на учетной записи.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/discount",
"mediaType": "application/json",
"size": 6,
"limit": 1000,
"offsetId": "00000000-0000-0000-0000-000000000000",
"direction": "forward"
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/specialpricediscount/33edffd5-7ff9-11e6-8a84-bae500000057",
"mediaType": "application/json",
"type": "specialpricediscount",
"id": "33edffd5-7ff9-11e6-8a84-bae500000057",
"idType": "native"
},
"id": "33edffd5-7ff9-11e6-8a84-bae500000057",
"name": "Скидка1",
"allProducts": false,
"productFolders": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"mediaType": "application/json",
"type": "productfolder",
"id": "dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"idType": "native"
},
"id": "dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"name": "Папка 1",
"namepath": "",
"path": "/"
}
],
"specialPrice": {
"priceType": "Цена продажи"
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/specialpricediscount/38a43ee7-7ffd-11e6-8a84-bae50000005f",
"mediaType": "application/json",
"type": "specialpricediscount",
"id": "38a43ee7-7ffd-11e6-8a84-bae50000005f",
"idType": "native"
},
"id": "38a43ee7-7ffd-11e6-8a84-bae50000005f",
"name": "Скидка2",
"allProducts": false,
"productFolders": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/276a6f50-7ffd-11e6-8a84-bae50000005c",
"mediaType": "application/json",
"type": "productfolder",
"id": "276a6f50-7ffd-11e6-8a84-bae50000005c",
"idType": "native"
},
"productFolder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"mediaType": "application/json",
"type": "productfolder",
"id": "dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"idType": "native"
}
},
"id": "276a6f50-7ffd-11e6-8a84-bae50000005c",
"name": "Папка 2",
"namepath": "Папка 1",
"path": "/dbe2cf7f-7b5c-11e6-8a84-bae50000000e/"
}
],
"specialPrice": {
"priceType": "Цена продажи"
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/941e8ce7-7b1d-11e6-8a84-bae500000111",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "941e8ce7-7b1d-11e6-8a84-bae500000111",
"idType": "native"
},
"id": "941e8ce7-7b1d-11e6-8a84-bae500000111",
"name": "Скидка 3",
"allProducts": false,
"levels": [
{
"amount": 10000,
"discount": 1
},
{
"amount": 20000,
"discount": 2
},
{
"amount": 30000,
"discount": 3
}
]
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/98af408c-7fdc-11e6-8a84-bae50000003c",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "98af408c-7fdc-11e6-8a84-bae50000003c",
"idType": "native"
},
"id": "98af408c-7fdc-11e6-8a84-bae50000003c",
"name": "накопительная Скидка",
"allProducts": false,
"levels": [
{
"amount": 200000,
"discount": 1
},
{
"amount": 1200000,
"discount": 2
}
]
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/fbd3a1b7-7fdd-11e6-8a84-bae500000047",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "fbd3a1b7-7fdd-11e6-8a84-bae500000047",
"idType": "native"
},
"id": "fbd3a1b7-7fdd-11e6-8a84-bae500000047",
"name": "Скидка 4",
"allProducts": false,
"levels": [
{
"amount": 20000,
"discount": 0
}
]
}
]
}
Получить все скидки
GET/entity/discount
Запрос на получение всех скидок учётной записи.
-
meta — Метаданные
Необходимое -
id — ID в формате UUID
Необходимое -
name — Наименование скидки
Необходимое -
agentTags — Тэги контрагентов, к которым применяется скидка, если применяется не ко всем контрагентам
-
allProducts — Все товары и услуги. Если этот флаг выставлен true, то коллекции assortment и productFolders будут отсутствовать в составе объекта.
Необходимое -
assortment — Товары и услуги, которые были выбраны для применения скидки, если та применяется не ко всем товарам
- meta — метаданные товара или услуги
-
productFolders — Товары и папки, к которым применяется скидка, если применяется не ко всем товарам
- meta — метаданные папки
- productFolder — ссылка на родительскую папку
- id — id папки
- name — наименование папки
- namepath — путь к данной папке, состоящий из имён родительских папок
- path — путь к данной папке, состоящий из id родительских папок
-
discount — Процент скидки если выбран фиксированный процент
-
specialPrice — Спец. цена (если выбран тип цен)
- priceType — Наименование типа цены
-
productFolders — Товары и папки, к которым применяется скидка, если применяется не ко всем товарам
- meta — метаданные папки
- productFolder — ссылка на родительскую папку
- id — id папки
- name — наименование папки
- namepath — путь к данной папке, состоящий из имён родительских папок
- path — путь к данной папке, состоящий из id родительских папок
-
levels — проценты скидок при определённой сумме продаж
Необходимое- amount — Сумма накоплений в рублях
- discount — Процент скидки, соответствующий данной сумме
Товары и услуги ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Товары и услуги ¶
GET https://online.moysklad.ru/api/posap/1.0/entity/assortment
Responses200
Успешный запрос. Результат — JSON представление ассортимента товаров.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/assortment",
"mediaType": "application/json",
"size": 5,
"limit": 4,
"offsetId": "00000000-0000-0000-0000-000000000000",
"direction": "forward",
"nextHref": "http://online.moysklad.ru/api/posap/1.0/entity/assortment?limit=4&offsetId=ac6bab2d-07c8-11e7-8a84-bc5200000016&direction=forward"
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/7db30ee8-07c5-11e7-90a5-ba9c0000008b",
"mediaType": "application/json",
"type": "product",
"id": "7db30ee8-07c5-11e7-90a5-ba9c0000008b",
"idType": "native"
},
"id": "7db30ee8-07c5-11e7-90a5-ba9c0000008b",
"name": "товар алкогольный",
"code": "00004",
"barcodes": [
"2000000000015"
],
"salePrices": [
{
"value": 6000,
"priceType": "Цена продажи"
},
{
"value": 0,
"priceType": "нулевая цена"
}
],
"productFolder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/200a6488-07c7-11e7-90a5-ba9c0000009a",
"mediaType": "application/json",
"type": "productfolder",
"id": "200a6488-07c7-11e7-90a5-ba9c0000009a",
"idType": "native"
},
"id": "200a6488-07c7-11e7-90a5-ba9c0000009a",
"name": "папка",
"namepath": "папка",
"path": "/200a6488-07c7-11e7-90a5-ba9c0000009a/"
},
"article": "артикул",
"uom": "шт",
"vat": 10,
"useParentVat": false,
"vatEnabled": true,
"vatDecimal": 10,
"image": {
"href": "https://online.moysklad.ru/api/posap/1.0/download/64aab630-07c7-11e7-90a5-ba9c0000002c",
"miniature": "https://online.moysklad.ru/api/posap/1.0/download/64aab630-07c7-11e7-90a5-ba9c0000002c?miniature=true",
"tiny": "https://online.moysklad.ru/static/75651645-07c5-11e7-90a5-ba9c00000006/TinyImage/64aaa5a2-07c7-11e7-90a5-ba9c0000002b.png"
},
"egaisIsAlcoholic": true,
"egaisHasExciseMark": false,
"egaisProductCode": 444,
"egaisVolume": 0.5,
"egaisAlcoholPercent": 4,
"soldByWeight": false,
"onTap": false,
"stock": 0,
"reserve": 0,
"isSerialtrackable": false,
"tobacco": false,
"paymentItemType": "EXCISABLE_GOOD",
"isDiscountProhibited": false,
"packs": [
{
"id": "5ae9e6b5-7b95-11e9-ac12-000b000000ac",
"name": "ящ",
"quantity": 10,
"barcode": "2000000000016"
}
]
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/service/bb89b2b1-07c7-11e7-90a5-ba9c000000a4",
"mediaType": "application/json",
"type": "service",
"id": "bb89b2b1-07c7-11e7-90a5-ba9c000000a4",
"idType": "native"
},
"id": "bb89b2b1-07c7-11e7-90a5-ba9c000000a4",
"name": "Услуга",
"code": "00006",
"barcodes": [
"2000000000060"
],
"salePrices": [
{
"value": 1500,
"priceType": "Цена продажи"
},
{
"value": 0,
"priceType": "нулевая цена"
}
],
"productFolder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/200a6488-07c7-11e7-90a5-ba9c0000009a",
"mediaType": "application/json",
"type": "productfolder",
"id": "200a6488-07c7-11e7-90a5-ba9c0000009a",
"idType": "native"
},
"id": "200a6488-07c7-11e7-90a5-ba9c0000009a",
"name": "папка",
"namepath": "папка",
"path": "/200a6488-07c7-11e7-90a5-ba9c0000009a/"
},
"uom": "шт",
"vat": 10,
"useParentVat": false,
"vatEnabled": true,
"vatDecimal": 10,
"taxSystem": "GENERAL_TAX_SYSTEM",
"paymentItemType": "SERVICE",
"isDiscountProhibited": true
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/cd39d288-07c6-11e7-90a5-ba9c00000019",
"mediaType": "application/json",
"type": "product",
"id": "cd39d288-07c6-11e7-90a5-ba9c00000019",
"idType": "native"
},
"id": "cd39d288-07c6-11e7-90a5-ba9c00000019",
"name": "Товар",
"code": "00005",
"barcodes": [
"2000000000022",
"2000000000053"
],
"salePrices": [
{
"value": 1300,
"priceType": "Цена продажи"
},
{
"value": 0,
"priceType": "нулевая цена"
}
],
"productFolder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/200a6488-07c7-11e7-90a5-ba9c0000009a",
"mediaType": "application/json",
"type": "productfolder",
"id": "200a6488-07c7-11e7-90a5-ba9c0000009a",
"idType": "native"
},
"id": "200a6488-07c7-11e7-90a5-ba9c0000009a",
"name": "папка",
"namepath": "папка",
"path": "/200a6488-07c7-11e7-90a5-ba9c0000009a/"
},
"article": "артикул",
"uom": "шт",
"vat": 10,
"useParentVat": false,
"vatEnabled": true,
"vatDecimal": 10,
"taxSystem": "SIMPLIFIED_TAX_SYSTEM_INCOME",
"image": {
"href": "https://online.moysklad.ru/api/posap/1.0/download/59af318d-07c7-11e7-90a5-ba9c00000028",
"miniature": "https://online.moysklad.ru/api/posap/1.0/download/59af318d-07c7-11e7-90a5-ba9c00000028?miniature=true",
"tiny": "https://online.moysklad.ru/static/75651645-07c5-11e7-90a5-ba9c00000006/TinyImage/59af0104-07c7-11e7-90a5-ba9c00000027.png"
},
"egaisIsAlcoholic": false,
"egaisHasExciseMark": false,
"egaisVolume": 0,
"egaisAlcoholPercent": 0,
"soldByWeight": true,
"onTap": false,
"stock": 0,
"reserve": 0,
"isSerialtrackable": false,
"tobacco": false,
"paymentItemType": "GOOD",
"isDiscountProhibited": true
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/variant/cd3ed8ed-07c6-11e7-90a5-ba9c00000020",
"mediaType": "application/json",
"type": "variant",
"id": "cd3ed8ed-07c6-11e7-90a5-ba9c00000020",
"idType": "native"
},
"id": "cd3ed8ed-07c6-11e7-90a5-ba9c00000020",
"name": "Товар (версия1)",
"code": "00002",
"barcodes": [
"2000000000039"
],
"productFolder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/200a6488-07c7-11e7-90a5-ba9c0000009a",
"mediaType": "application/json",
"type": "productfolder",
"id": "200a6488-07c7-11e7-90a5-ba9c0000009a",
"idType": "native"
},
"id": "200a6488-07c7-11e7-90a5-ba9c0000009a",
"name": "папка",
"namepath": "папка",
"path": "/200a6488-07c7-11e7-90a5-ba9c0000009a/"
},
"characteristics": {
"модификация": "версия1"
},
"stock": 0,
"reserve": 0,
"salePrices": [
{
"value": 1300,
"priceType": "Цена продажи"
},
{
"value": 0,
"priceType": "нулевая цена"
}
],
"product": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/cd39d288-07c6-11e7-90a5-ba9c00000019",
"mediaType": "application/json",
"type": "product",
"id": "cd39d288-07c6-11e7-90a5-ba9c00000019",
"idType": "native"
},
"id": "cd39d288-07c6-11e7-90a5-ba9c00000019",
"name": "Товар",
"code": "00005",
"salePrices": [
{
"value": 1300,
"priceType": "Цена продажи"
},
{
"value": 0,
"priceType": "нулевая цена"
}
],
"article": "артикул",
"uom": "шт",
"vat": 10,
"useParentVat": false,
"vatEnabled": true,
"vatDecimal": 10,
"image": {
"href": "https://online.moysklad.ru/api/posap/1.0/download/59af318d-07c7-11e7-90a5-ba9c00000028",
"miniature": "https://online.moysklad.ru/api/posap/1.0/download/59af318d-07c7-11e7-90a5-ba9c00000028?miniature=true",
"tiny": "https://online.moysklad.ru/static/75651645-07c5-11e7-90a5-ba9c00000006/TinyImage/59af0104-07c7-11e7-90a5-ba9c00000027.png"
},
"egaisIsAlcoholic": false,
"egaisHasExciseMark": false,
"egaisVolume": 0,
"egaisAlcoholPercent": 0,
"soldByWeight": true,
"onTap": false,
"stock": 0,
"reserve": 0,
"paymentItemType": "ANOTHER_PAYMENT_ITEM",
"isDiscountProhibited": true
},
"isSerialtrackable": false
},
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/bundle/e90685f8-07c8-11e7-8a84-bc520000002d",
"mediaType": "application/json",
"type": "bundle",
"id": "e90685f8-07c8-11e7-8a84-bc520000002d",
"idType": "native"
},
"id": "e90685f8-07c8-11e7-8a84-bc520000002d",
"name": "Комплект",
"code": "00006",
"barcodes": [
"2000000000107"
],
"salePrices": [
{
"value": 1500,
"priceType": "Цена продажи"
},
{
"value": 1900,
"priceType": "нулевая цена"
}
],
"productFolder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/200a6488-07c7-11e7-90a5-ba9c0000009a",
"mediaType": "application/json",
"type": "productfolder",
"id": "200a6488-07c7-11e7-90a5-ba9c0000009a",
"idType": "native"
},
"id": "200a6488-07c7-11e7-90a5-ba9c0000009a",
"name": "папка",
"namepath": "папка",
"path": "/200a6488-07c7-11e7-90a5-ba9c0000009a/"
},
"article": "артикул",
"uom": "шт",
"vat": 18,
"useParentVat": false,
"vatEnabled": true,
"vatDecimal": 18,
"taxSystem": "PRESUMPTIVE_TAX_SYSTEM",
"paymentItemType": "COMPOUND_PAYMENT_ITEM",
"isDiscountProhibited": false,
"image": {
"href": "http://online.moysklad.ru/api/posap/1.0/download/d3c41c47-07c8-11e7-8a84-bc520000001f",
"miniature": "http://online.moysklad.ru/api/posap/1.0/download/d3c41c47-07c8-11e7-8a84-bc520000001f?miniature=true",
"tiny": "http://online.moysklad.ru/app/download/d3c3e54c-07c8-11e7-8a84-bc520000001e.png"
},
"components": [
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/product/cd39d288-07c6-11e7-90a5-ba9c00000019",
"mediaType": "application/json",
"type": "product",
"id": "cd39d288-07c6-11e7-90a5-ba9c00000019",
"idType": "native"
},
"quantity": 5
},
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/variant/cd3ed8ed-07c6-11e7-90a5-ba9c00000020",
"mediaType": "application/json",
"type": "variant",
"id": "ac6bab2d-07c8-11e7-8a84-bc5200000016",
"idType": "native"
},
"quantity": 10
},
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/service/bb89b2b1-07c7-11e7-90a5-ba9c000000a4",
"mediaType": "application/json",
"type": "service",
"id": "bb89b2b1-07c7-11e7-90a5-ba9c000000a4",
"idType": "native"
},
"quantity": 15
}
]
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/cd39d288-07c6-11e7-90a5-ba9c00000020",
"mediaType": "application/json",
"type": "product",
"id": "cd39d288-07c6-11e7-90a5-ba9c00000020",
"idType": "native"
},
"id": "cd39d288-07c6-11e7-90a5-ba9c00000020",
"name": "Маска",
"code": "00077",
"salePrices": [
{
"value": 3500,
"priceType": "Цена продажи"
}
],
"article": "артикул",
"uom": "шт",
"vat": 20,
"useParentVat": false,
"vatEnabled": true,
"vatDecimal": 20,
"egaisIsAlcoholic": false,
"egaisHasExciseMark": false,
"egaisVolume": 0,
"egaisAlcoholPercent": 0,
"soldByWeight": false,
"onTap": false,
"stock": 0,
"reserve": 0,
"paymentItemType": "GOOD",
"isDiscountProhibited": false,
"ppeType": "2400001323807"
}
]
}
Получить Товары и услуги
GET/entity/assortment
Запрос на получение товаров/модификаций и остатков по ним. Результат — список соответствующих сущностей
с информацией по их остаткам на складе. Если в настройках точки продаж установлено свойство Выгружать только товары в наличии,
то запрос вернет только товары и модификации с положительным остатком. Комплекты выгружаются все, вне зависимости от их остатка и значения свойства Выгружать только товары в наличии.
-
meta — Метаданные сущности
Необходимое -
id — id сущности ассортимента
Необходимое -
syncId — syncId товара/услуги/комплекта, уникальный внешний идентификатор
-
name — Наименование сущности
Необходимое -
code — Код сущности
-
barcodes — Массив штрихкодов сущности
-
salePrices — Массив цен продажи (объектов с полем value) сущности
Необходимое -
productFolder — Папка, в которой находится сущность. Для модификаций папка родительского товара.
- meta — метаданные папки
Необходимое - productFolder — ссылка на родительскую папку
- id — id папки
Необходимое - name — наименование папки
Необходимое - namepath — путь к товару, модификации, услуги или комплекту (но не к самой папке), состоящий из имён родительских папок
Необходимое - path — путь к товару, модификации, услуги или комплекту (но не к самой папке), состоящий из id родительских папок
Необходимое
- meta — метаданные папки
-
vat — НДС, рассчитанный с учетом родительских групп, если такие имеются
-
vatEnabled — включен ли НДС для товара. С помощью этого флага для товара можно выставлять НДС = 0 или НДС = “без НДС”. (vat = 0, vatEnabled = false) -> vat = “без НДС”, (vat = 0, vatEnabled = true) -> vat = 0%
-
useParentVat — использовать НДС родительской группы
-
vatDecimal — НДС дробный, рассчитанный с учетом родительских групп, если такие имеются
-
article — Артикул товара
-
soldByWeight — Весовой товар
-
onTap — Разливной товар
-
uom — Единица измерения товара (строка)
-
image — Изображение товара (объект)
- href — Ссылка на изображение
- miniature — Ссылка на миниатюру изображения
- tiny — Ссылка на уменьшенную версию изображения
-
egaisIsAlcoholic — признак «Алкогольная продукция»
Необходимое -
egaisHasExciseMark — признак «Содержит акцизную марку»
Необходимое -
egaisProductCode — код вида алкогольной продукции
Необходимое -
egaisAlcoholPercent — крепость алкогольной продукции
Необходимое -
egaisVolume — объем тары алкогольной продукции
Необходимое -
stock — Остаток
Необходимое -
reserve — Резерв
Необходимое -
isSerialtrackable — учёт по серийным номерам
Необходимое -
tobacco — Табачная продукция. Не может быть указан вместе с egaisIsAlcoholic, soldByWeight, isSerialtrackable и onTap
-
trackingType — Тип маркируемой продукции
- NOT_TRACKED — Без маркировки
- TOBACCO — Тип маркировки “Табак”
- SHOES — Тип маркировки “Обувь”
- LP_CLOTHES — Тип маркировки “Одежда”
- LP_LINENS — Тип маркировки “Постельное белье”
- PERFUMERY — Тип маркировки “Духи и туалетная вода”
- ELECTRONICS — Тип маркировки “Фотокамеры и лампы-вспышки”
- TIRES — Тип маркировки “Шины и покрышки”
- MILK — Тип маркировки “Молочная продукция”
- WATER — Тип маркировки “Упакованная вода”
- OTP — Тип маркировки “Альтернативная табачная продукция”
- NCP — Тип маркировки “Никотиносодержащая продукция”
-
tnved — Код ТН ВЭД
-
taxSystem — Код системы налогообложения.
-
partialDisposal — Флаг частичного выбытия.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
-
paymentItemType — Признак предмета расчета
- GOOD — Товар
- EXCISABLE_GOOD — Подакцизный товар
- COMPOUND_PAYMENT_ITEM — Составной предмет расчета
- ANOTHER_PAYMENT_ITEM — Иной предмет расчета
-
isDiscountProhibited — Запретить скидки при продаже в розницу
-
packs — Массив упаковок
- id — id сущности упаковки
Необходимое - name — Название упаковки
Необходимое - quantity — Количество товаров в упаковке
Необходимое - barcode — Штрихкод упаковки
- id — id сущности упаковки
-
ppeType — Код вида номенклатурной классификации медицинских средств индивидуальной защиты (EAN-13)
| Наименование вида номенклатурной классификации медицинских изделий | Код вида номенклатурной классификации медицинских изделий (EAN-13) |
|---|---|
| маска лицевая для защиты дыхательных путей, многоразового использования | 2400001323807 |
| маска лицевая для защиты дыхательных путей, одноразового использования | 2400003675805 |
| респиратор общего применения | 2400001807703 |
| респиратор хирургический | 2400001818303 |
| респиратор хирургический антибактериальный | 2400002186203 |
| средство назальное для защиты от загрязненного воздуха, местного действия | 2400001368105 |
| перчатки смотровые (процедурные) из латекса гевеи, неопудренные, нестерильные | 2400001225408 |
| перчатки смотровые (процедурные) из латекса гевеи, опудренные | 2400001225606 |
| перчатки смотровые (процедурные) из латекса гевеи, неопудренные, стерильные | 2400001226108 |
| перчатки смотровые (процедурные) из полихлоропрена, неопудренные | 2400001393503 |
| перчатки смотровые (процедурные) нитриловые, неопудренные, нестерильные | 2400001858309 |
| перчатки смотровые (процедурные) нитриловые, опудренные | 2400001858507 |
| перчатки смотровые (процедурные) виниловые, неопудренные | 2400002052805 |
| перчатки смотровые (процедурные) виниловые, опудренные | 2400002052904 |
| перчатки смотровые (процедурные) из гваюлового латекса, неопудренные | 2400002984502 |
| перчатки смотровые (процедурные) из этиленвинилацетата, неопудренные, стерильные | 2400003117107 |
| перчатки смотровые (процедурные) из этиленвинилацетата, неопудренные, нестерильные | 2400003117206 |
| перчатки смотровые (процедурные) нитриловые, неопудренные, антибактериальные | 2400003207907 |
| перчатки смотровые (процедурные) полиизопреновые, неопудренные | 2400003215308 |
| перчатки смотровые (процедурные) нитриловые, неопудренные, стерильные | 2400003297700 |
| перчатки смотровые (процедурные) виниловые, неопудренные, стерильные | 2400003356704 |
| перчатки смотровые (процедурные) виниловые, опудренные, стерильные | 2400003356803 |
| перчатки смотровые (процедурные) из латекса гевеи, опудренные, стерильные | 2400003433108 |
| перчатки смотровые (процедурные) полиизопреновые, опудренные | 2400003492303 |
| перчатки смотровые (процедурные) из полихлоропрена, неопудренные, стерильные | 2400003495700 |
| перчатки смотровые (процедурные) из полихлоропрена, неопудренные, стерильные | 2400003495809 |
| перчатки смотровые (процедурные) нитриловые, опудренные, стерильные | 2400003495908 |
| перчатки смотровые (процедурные) полиизопреновые, неопудренные, стерильные | 2400003496004 |
| перчатки смотровые (процедурные) полиизопреновые, опудренные, стерильные | 2400003496103 |
| перчатки хирургические из латекса гевеи, неопудренные | 2400001226306 |
| перчатки хирургические из латекса гевеи, опудренные | 2400001226405 |
| перчатки хирургические из полихлоропрена, неопудренные | 2400001393107 |
| перчатки смотровые (процедурные) из полихлоропрена, опудренные | 2400001393602 |
| перчатки хирургические из блоксополимера стирола, неопудренные, антибактериальные | 2400001565306 |
| перчатки хирургические нитриловые, опудренные | 2400001857203 |
| перчатки хирургические нитриловые, неопудренные | 2400001857005 |
| перчатки хирургические полиизопреновые, неопудренные | 2400002015909 |
| перчатки хирургические полиизопреновые, неопудренные, антибактериальные | 2400002016005 |
| перчатки хирургические полиизопреновые, опудренные | 2400002016104 |
| перчатки хирургические из блоксополимера стирола, неопудренные | 2400003161209 |
| перчатки хирургические полимерно-композитные, неопудренные | 2400003227806 |
| перчатки хирургические полимерно-композитные, неопудренные | 2400003237409 |
| перчатки хирургические из латекса гевеи, неопудренные, антибактериальные | 2400003263408 |
| перчатки хирургические из гваюлового латекса, неопудренные | 2400003356902 |
| перчатки хирургические из полихлоропрена, опудренные | 2400003356902 |
| набор гигиенической одежды для посетителей | 2400002886806 |
| комбинезон гигиенический для посетителей | 2400002886707 |
-
characteristics — Массив пар вида «
Наименование характеристики:значение« -
product — Основной товар
-
isSerialtrackable — учёт по серийным номерам
Необходимое
-
uom — Единица измерения услуги(строка)
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
-
paymentItemType — Признак предмета расчета
- SERVICE — Услуга
- WORK — Работа
- PROVIDING_RID — Предоставление РИД
- COMPOUND_PAYMENT_ITEM — Составной предмет расчета
- ANOTHER_PAYMENT_ITEM — Иной предмет расчета
-
isDiscountProhibited — Запретить скидки при продаже в розницу
-
article — Артикул комплекта
-
uom — Единица измерения комплекта (строка)
-
vat — НДС
-
image — Изображение товара (объект)
- href — Ссылка на изображение
- miniature — Ссылка на миниатюру изображения
- tiny — Ссылка на уменьшенную версию изображения
-
components — Компоненты комплекта, это список товаров/услуг/модификаций, который входят в состав комплекта. Компонентов у комплекта может быть от 1 до 10.
Необходимое- meta — Метаданные сущности
Необходимое - quantity — количество компонентов в комплекте.
- meta — Метаданные сущности
-
trackingType — Тип маркируемой продукции
- NOT_TRACKED — Без маркировки
- TOBACCO — Тип маркировки “Табак”
- SHOES — Тип маркировки “Обувь”
- LP_CLOTHES — Тип маркировки “Одежда”
- LP_LINENS — Тип маркировки “Постельное белье”
- PERFUMERY — Тип маркировки “Духи и туалетная вода”
- ELECTRONICS — Тип маркировки “Фотокамеры и лампы-вспышки”
- TIRES — Тип маркировки “Шины и покрышки”
- MILK — Тип маркировки “Молочная продукция”
- WATER — Тип маркировки “Упакованная вода”
- OTP — Тип маркировки “Альтернативная табачная продукция”
- NCP — Тип маркировки “Никотиносодержащая продукция”
-
tnved — Код ТН ВЭД
-
paymentItemType — Признак предмета расчета
- GOOD — Товар
- EXCISABLE_GOOD — Подакцизный товар
- COMPOUND_PAYMENT_ITEM — Составной предмет расчета
- ANOTHER_PAYMENT_ITEM — Иной предмет расчета
-
isDiscountProhibited — Запретить скидки при продаже в розницу
-
taxSystem — Код системы налогообложения.
-
partialDisposal — Флаг частичного выбытия.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Товары/услуги/комплекты в рознице отображаются со всеми типами цен (salePrices). Если тип цен не задан явно, то возвращается значение 0.
Модификации в рознице отображаются с явно проставленными типами цен (salePrices). Если тип цен не задан явно, то будет отображаться цена родительского товара.
Папки ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Папки ¶
GET https://online.moysklad.ru/api/posap/1.0/entity/productfolder
Responses200
Успешный запрос. Результат — список всех папок на учетной записи.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder",
"mediaType": "application/json",
"size": 3,
"limit": 1000,
"offsetId": "00000000-0000-0000-0000-000000000000",
"direction": "forward"
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/276a6f50-7ffd-11e6-8a84-bae50000005c",
"mediaType": "application/json",
"type": "productfolder",
"id": "276a6f50-7ffd-11e6-8a84-bae50000005c",
"idType": "native"
},
"productFolder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"mediaType": "application/json",
"type": "productfolder",
"id": "dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"idType": "native"
},
"id": "dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"name": "Овощи",
"namepath": "",
"path": "/"
},
"id": "276a6f50-7ffd-11e6-8a84-bae50000005c",
"name": "Цитрусовые",
"namepath": "Овощи",
"path": "/dbe2cf7f-7b5c-11e6-8a84-bae50000000e/"
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/83528b98-7ffd-11e6-8a84-bae500000062",
"mediaType": "application/json",
"type": "productfolder",
"id": "83528b98-7ffd-11e6-8a84-bae500000062",
"idType": "native"
},
"productFolder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/276a6f50-7ffd-11e6-8a84-bae50000005c",
"mediaType": "application/json",
"type": "productfolder",
"id": "276a6f50-7ffd-11e6-8a84-bae50000005c",
"idType": "native"
},
"productFolder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"mediaType": "application/json",
"type": "productfolder",
"id": "dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"idType": "native"
}
},
"id": "276a6f50-7ffd-11e6-8a84-bae50000005c",
"name": "Цитрусовые",
"namepath": "Овощи",
"path": "/dbe2cf7f-7b5c-11e6-8a84-bae50000000e/"
},
"id": "83528b98-7ffd-11e6-8a84-bae500000062",
"name": "Оранжевые",
"namepath": "Овощи/Цитрусовые",
"path": "/dbe2cf7f-7b5c-11e6-8a84-bae50000000e/276a6f50-7ffd-11e6-8a84-bae50000005c/"
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"mediaType": "application/json",
"type": "productfolder",
"id": "dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"idType": "native"
},
"id": "dbe2cf7f-7b5c-11e6-8a84-bae50000000e",
"name": "Овощи",
"namepath": "",
"path": "/"
}
]
}
Получить все папки
GET/entity/productfolder
Запрос на получение всех папок на учётной записи.
-
meta — метаданные папки
Необходимое -
productFolder — ссылка на родительскую папку
- meta — метаданные папки
Необходимое(если пришло родительское поле) - productFolder — ссылка на родительскую папку
- id — id папки
Необходимое(если пришло родительское поле) - name — наименование папки
Необходимое(если пришло родительское поле) - namepath — путь к данной папке, состоящий из имён родительских папок
Необходимое(если пришло родительское поле) - path — путь к данной папке, состоящий из id родительских папок
Необходимое(если пришло родительское поле)
- meta — метаданные папки
-
id — id папки
Необходимое -
name — наименование папки
Необходимое -
namepath — путь к данной папке, состоящий из имён родительских папок
Необходимое -
path — путь к данной папке, состоящий из id родительских папок
Необходимое
Покупатели ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Покупатели ¶
GET https://online.moysklad.ru/api/posap/1.0/entity/counterparty
Responses200
Успешный запрос. Результат — JSON представление списка контрагентов.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty",
"mediaType": "application/json",
"size": 6,
"limit": 1000,
"offsetId": "00000000-0000-0000-0000-000000000000",
"direction": "forward"
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/1c5dcf6f-7b32-11e6-8a84-bae500000000",
"mediaType": "application/json",
"type": "counterparty",
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"idType": "native"
},
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"version": 0,
"updated": "2016-09-15 13:49:43",
"name": "OOOCompany",
"externalCode": "qKQuM-6ijqMFB5TemvZxi1",
"companyType": "legal",
"tags": [],
"salesAmount": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/5d1fe143-7b1d-11e6-8a84-bae500000054",
"mediaType": "application/json",
"type": "counterparty",
"id": "5d1fe143-7b1d-11e6-8a84-bae500000054",
"idType": "native"
},
"id": "5d1fe143-7b1d-11e6-8a84-bae500000054",
"version": 0,
"updated": "2016-09-15 11:21:13",
"name": "ООО "Поставщик"",
"externalCode": "8DLiwCbIhvJz3TSNC2h1G3",
"companyType": "legal",
"legalTitle": "Общество с ограниченной ответственностью "Поставщик"",
"legalAddress": "г.Москва, ул.Строителей, д.12",
"inn": "7736570901",
"kpp": "773601001",
"tags": [],
"salesAmount": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/5d201705-7b1d-11e6-8a84-bae500000056",
"mediaType": "application/json",
"type": "counterparty",
"id": "5d201705-7b1d-11e6-8a84-bae500000056",
"idType": "native"
},
"id": "5d201705-7b1d-11e6-8a84-bae500000056",
"version": 0,
"updated": "2016-09-15 11:21:13",
"name": "ООО "Покупатель"",
"externalCode": "grYJWYhkheEmr3aNP53-72",
"companyType": "legal",
"legalTitle": "Общество с ограниченной ответственностью "Покупатель"",
"legalAddress": "г.Москва, ул.Строителей, д.11",
"inn": "7736570902",
"kpp": "773601002",
"tags": [],
"salesAmount": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/5d444290-7b1d-11e6-8a84-bae50000005e",
"mediaType": "application/json",
"type": "counterparty",
"id": "5d444290-7b1d-11e6-8a84-bae50000005e",
"idType": "native"
},
"id": "5d444290-7b1d-11e6-8a84-bae50000005e",
"version": 10,
"updated": "2016-09-15 11:21:13",
"name": "Розничный покупатель",
"externalCode": "xprOCvL2gPZjzlYwqzsvw3",
"companyType": "legal",
"tags": [],
"salesAmount": 18720
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/688bd078-800c-11e6-8a84-bae5000000a2",
"mediaType": "application/json",
"type": "counterparty",
"id": "688bd078-800c-11e6-8a84-bae5000000a2",
"idType": "native"
},
"id": "688bd078-800c-11e6-8a84-bae5000000a2",
"version": 4,
"updated": "2016-09-21 18:05:01",
"name": "АО компания-банк",
"description": "Ключевой партнёр",
"code": "almost-alfa-code",
"externalCode": "6AWY7U4biGxP-HFAmEN0l3",
"companyType": "entrepreneur",
"legalTitle": "АКЦИОНЕРНОЕ ОБЩЕСТВО "компания-банк"",
"legalAddress": "г Можайск, ул Недокаланчевская, д 26.99",
"actualAddress": "г Можайск, ул Перекаланчевская, д 27.01",
"inn": "7728178971",
"okpo": "3519251242513",
"ogrnip": "12412412",
"certificateNumber": "в21421412",
"certificateDate": "2016-09-01 00:00:00",
"email": "aoalmost@bank.ru",
"phone": "+7 666 555 444 333",
"fax": "123321",
"tags": [],
"discounts": [
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/941e8ce7-7b1d-11e6-8a84-bae500000111",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "941e8ce7-7b1d-11e6-8a84-bae500000111",
"idType": "native"
}
},
"salesAmountCorrection": 30000
},
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/98af408c-7fdc-11e6-8a84-bae50000003c",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "98af408c-7fdc-11e6-8a84-bae50000003c",
"idType": "native"
}
},
"salesAmountCorrection": 1000
},
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/fbd3a1b7-7fdd-11e6-8a84-bae500000047",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "fbd3a1b7-7fdd-11e6-8a84-bae500000047",
"idType": "native"
}
},
"salesAmountCorrection": 1000
}
],
"discountCardNumber": "6",
"salesAmount": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/801ee966-7b1d-11e6-8a84-bae5000000fd",
"mediaType": "application/json",
"type": "counterparty",
"id": "801ee966-7b1d-11e6-8a84-bae5000000fd",
"idType": "native"
},
"id": "801ee966-7b1d-11e6-8a84-bae5000000fd",
"version": 3,
"updated": "2016-09-21 12:21:54",
"name": "Контрагент со скидкой",
"externalCode": "uI93KJojjZk7F-WU9eJfr1",
"companyType": "legal",
"tags": [],
"discounts": [
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/941e8ce7-7b1d-11e6-8a84-bae500000111",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "941e8ce7-7b1d-11e6-8a84-bae500000111",
"idType": "native"
}
},
"salesAmountCorrection": 0
},
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/98af408c-7fdc-11e6-8a84-bae50000003c",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "98af408c-7fdc-11e6-8a84-bae50000003c",
"idType": "native"
}
},
"salesAmountCorrection": 10000
}
],
"salesAmount": 150000
}
]
}
Получить Покупателей
GET/entity/counterparty
Запрос на получение списка всех контрагентов.
-
offsetId — Смещение
-
limit — Максимальное возвращаемое кол-во
-
direction — Направление следующей страницы поиска
-
search — Строка для поиска. Возвращаемые контрагенты должны содержать соответствующую подстроку в одном из полей: name, email, phone, discountCardNumber
-
meta — внешний уникальный идентификатор в формате метаданных (мета с syncId)
Необходимое -
id — ID в формате UUID
Необходимое -
syncId — ID синхронизации
-
version — Версия сущности. Изменяется при обновлении/удалении Контрагента
Необходимое -
updated — Момент последнего обновления Контрагента
Необходимое -
externalCode — Внешний код Контрагента
Необходимое
-
name — Имя Контрагента
Необходимое -
code — Код Контрагента
-
description — Описание Контрагента
-
actualAddress -Фактический адрес Контрагента
-
tags — Тэги (массив)
Необходимое
- companyType — Тип Контрагента.
Необходимое
[Юридическое лицо, Индивидуальный предприниматель, Физическое лицо].
| Тип контрагента | Значение поля companyType |
|---|---|
| Юридическое лицо | legal |
| Индивидуальный предприниматель | entrepreneur |
| Физическое лицо | individual |
-
legalTitle — Полное наименование Контрагента
-
legalAddress — Юридический адрес Контрагента
-
inn — ИНН
-
kpp — КПП
-
ogrn — ОГРН
-
ogrnip — ОГРНИП
-
okpo — ОКПО
-
certificateNumber — Номер свидетельства
-
certificateDate — Дата свидетельства
-
email — Адрес электронной почты
-
phone — Номер городского телефона
-
fax — Номер факса
-
discounts — Массив объектов-скидок, действующих на данного контрагента.
- discount — Скидка
- meta — метаданные скидки
- personalDiscount — процент персональной скидки (если тип — персональная скидка)
- salesAmountCorrection — Коррекция
- discount — Скидка
-
discountCardNumber — Номер дисконтной карты
-
salesAmount — Сумма продаж контрагента
Необходимое -
bonusProgram — Метаданные активной бонусной программы
-
bonusPoints — Бонусные баллы по активной бонусной программе
Покупатели ¶
POST https://online.moysklad.ru/api/posap/1.0/entity/counterparty/detail
RequestsПример
Пример body запроса для получения информации по контрагенту.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/688bd078-800c-11e6-8a84-bae5000000a2",
"mediaType": "application/json",
"type": "counterparty",
"id": "688bd078-800c-11e6-8a84-bae5000000a2",
"idType": "native"
},
"id": "688bd078-800c-11e6-8a84-bae5000000a2",
"syncId": "688bd078-800c-11e6-8a84-bae5000000a3",
"version": 4,
"updated": "2016-09-21 18:05:01",
"name": "АО компания-банк",
"description": "Ключевой партнёр",
"code": "almost-alfa-code",
"externalCode": "6AWY7U4biGxP-HFAmEN0l3",
"companyType": "entrepreneur",
"legalTitle": "АКЦИОНЕРНОЕ ОБЩЕСТВО "компания-банк"",
"legalAddress": "г Можайск, ул Недокаланчевская, д 26.99",
"actualAddress": "г Можайск, ул Перекаланчевская, д 27.01",
"inn": "7728178971",
"okpo": "3519251242513",
"ogrnip": "12412412",
"certificateNumber": "в21421412",
"certificateDate": "2016-09-01 00:00:00",
"email": "aoalmost@bank.ru",
"phone": "+7 666 555 444 333",
"fax": "123321",
"tags": [],
"discounts": [
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/941e8ce7-7b1d-11e6-8a84-bae500000111",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "941e8ce7-7b1d-11e6-8a84-bae500000111",
"idType": "native"
}
},
"salesAmountCorrection": 30000
},
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/98af408c-7fdc-11e6-8a84-bae50000003c",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "98af408c-7fdc-11e6-8a84-bae50000003c",
"idType": "native"
}
},
"salesAmountCorrection": 1000
},
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/fbd3a1b7-7fdd-11e6-8a84-bae500000047",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "fbd3a1b7-7fdd-11e6-8a84-bae500000047",
"idType": "native"
}
},
"salesAmountCorrection": 1000
}
],
"discountCardNumber": "6",
"salesAmount": 0
}
Responses200
Успешный запрос. Результат — JSON представление данных контрагента.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty",
"mediaType": "application/json",
"size": 6,
"limit": 1000,
"offsetId": "00000000-0000-0000-0000-000000000000",
"direction": "forward"
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/1c5dcf6f-7b32-11e6-8a84-bae500000000",
"mediaType": "application/json",
"type": "counterparty",
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"idType": "native"
},
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"version": 0,
"updated": "2016-09-15 13:49:43",
"name": "OOOCompany",
"externalCode": "qKQuM-6ijqMFB5TemvZxi1",
"companyType": "legal",
"tags": [],
"salesAmount": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/5d1fe143-7b1d-11e6-8a84-bae500000054",
"mediaType": "application/json",
"type": "counterparty",
"id": "5d1fe143-7b1d-11e6-8a84-bae500000054",
"idType": "native"
},
"id": "5d1fe143-7b1d-11e6-8a84-bae500000054",
"version": 0,
"updated": "2016-09-15 11:21:13",
"name": "ООО "Поставщик"",
"externalCode": "8DLiwCbIhvJz3TSNC2h1G3",
"companyType": "legal",
"legalTitle": "Общество с ограниченной ответственностью "Поставщик"",
"legalAddress": "г.Москва, ул.Строителей, д.12",
"inn": "7736570901",
"kpp": "773601001",
"tags": [],
"salesAmount": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/5d201705-7b1d-11e6-8a84-bae500000056",
"mediaType": "application/json",
"type": "counterparty",
"id": "5d201705-7b1d-11e6-8a84-bae500000056",
"idType": "native"
},
"id": "5d201705-7b1d-11e6-8a84-bae500000056",
"version": 0,
"updated": "2016-09-15 11:21:13",
"name": "ООО "Покупатель"",
"externalCode": "grYJWYhkheEmr3aNP53-72",
"companyType": "legal",
"legalTitle": "Общество с ограниченной ответственностью "Покупатель"",
"legalAddress": "г.Москва, ул.Строителей, д.11",
"inn": "7736570902",
"kpp": "773601002",
"tags": [],
"salesAmount": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/5d444290-7b1d-11e6-8a84-bae50000005e",
"mediaType": "application/json",
"type": "counterparty",
"id": "5d444290-7b1d-11e6-8a84-bae50000005e",
"idType": "native"
},
"id": "5d444290-7b1d-11e6-8a84-bae50000005e",
"version": 10,
"updated": "2016-09-15 11:21:13",
"name": "Розничный покупатель",
"externalCode": "xprOCvL2gPZjzlYwqzsvw3",
"companyType": "legal",
"tags": [],
"salesAmount": 18720
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/688bd078-800c-11e6-8a84-bae5000000a2",
"mediaType": "application/json",
"type": "counterparty",
"id": "688bd078-800c-11e6-8a84-bae5000000a2",
"idType": "native"
},
"id": "688bd078-800c-11e6-8a84-bae5000000a2",
"version": 4,
"updated": "2016-09-21 18:05:01",
"name": "АО компания-банк",
"description": "Ключевой партнёр",
"code": "almost-alfa-code",
"externalCode": "6AWY7U4biGxP-HFAmEN0l3",
"companyType": "entrepreneur",
"legalTitle": "АКЦИОНЕРНОЕ ОБЩЕСТВО "компания-банк"",
"legalAddress": "г Можайск, ул Недокаланчевская, д 26.99",
"actualAddress": "г Можайск, ул Перекаланчевская, д 27.01",
"inn": "7728178971",
"okpo": "3519251242513",
"ogrnip": "12412412",
"certificateNumber": "в21421412",
"certificateDate": "2016-09-01 00:00:00",
"email": "aoalmost@bank.ru",
"phone": "+7 666 555 444 333",
"fax": "123321",
"tags": [],
"discounts": [
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/941e8ce7-7b1d-11e6-8a84-bae500000111",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "941e8ce7-7b1d-11e6-8a84-bae500000111",
"idType": "native"
}
},
"salesAmountCorrection": 30000
},
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/98af408c-7fdc-11e6-8a84-bae50000003c",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "98af408c-7fdc-11e6-8a84-bae50000003c",
"idType": "native"
}
},
"salesAmountCorrection": 1000
},
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/fbd3a1b7-7fdd-11e6-8a84-bae500000047",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "fbd3a1b7-7fdd-11e6-8a84-bae500000047",
"idType": "native"
}
},
"salesAmountCorrection": 1000
}
],
"discountCardNumber": "6",
"salesAmount": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/801ee966-7b1d-11e6-8a84-bae5000000fd",
"mediaType": "application/json",
"type": "counterparty",
"id": "801ee966-7b1d-11e6-8a84-bae5000000fd",
"idType": "native"
},
"id": "801ee966-7b1d-11e6-8a84-bae5000000fd",
"version": 3,
"updated": "2016-09-21 12:21:54",
"name": "Контрагент со скидкой",
"externalCode": "uI93KJojjZk7F-WU9eJfr1",
"companyType": "legal",
"tags": [],
"discounts": [
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/941e8ce7-7b1d-11e6-8a84-bae500000111",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "941e8ce7-7b1d-11e6-8a84-bae500000111",
"idType": "native"
}
},
"salesAmountCorrection": 0
},
{
"discount": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/accumulationdiscount/98af408c-7fdc-11e6-8a84-bae50000003c",
"mediaType": "application/json",
"type": "accumulationdiscount",
"id": "98af408c-7fdc-11e6-8a84-bae50000003c",
"idType": "native"
}
},
"salesAmountCorrection": 10000
}
],
"salesAmount": 150000
}
]
}
Получить бонусные баллы Покупателя
POST/entity/counterparty/detail
Запрос на получение бонусных баллов контрагента. Необходимо передать объект, полученный из метода GET /entity/counterparty. Бонусные баллы возвращаются для каждого контрагента в отдельном запросе на получение баллов.
-
meta — внешний уникальный идентификатор в формате метаданных (мета с syncId)
Необходимое -
id — ID в формате UUID
Необходимое -
syncId — ID синхронизации
-
version — Версия сущности. Изменяется при обновлении/удалении Контрагента
Необходимое -
updated — Момент последнего обновления Контрагента
Необходимое -
externalCode — Внешний код Контрагента
Необходимое
-
name — Имя Контрагента
Необходимое -
code — Код Контрагента
-
description — Описание Контрагента
-
actualAddress -Фактический адрес Контрагента
-
tags — Тэги (массив)
Необходимое
- companyType — Тип Контрагента.
Необходимое
[Юридическое лицо, Индивидуальный предприниматель, Физическое лицо].
| Тип контрагента | Значение поля companyType |
|---|---|
| Юридическое лицо | legal |
| Индивидуальный предприниматель | entrepreneur |
| Физическое лицо | individual |
-
legalTitle — Полное наименование Контрагента
-
legalAddress — Юридический адрес Контрагента
-
inn — ИНН
-
kpp — КПП
-
ogrn — ОГРН
-
ogrnip — ОГРНИП
-
okpo — ОКПО
-
certificateNumber — Номер свидетельства
-
certificateDate — Дата свидетельства
-
email — Адрес электронной почты
-
phone — Номер городского телефона
-
fax — Номер факса
-
discounts — Массив объектов-скидок, действующих на данного контрагента.
- discount — Скидка
- meta — метаданные скидки
- personalDiscount — процент персональной скидки (если тип — персональная скидка)
- salesAmountCorrection — Коррекция
- discount — Скидка
-
discountCardNumber — Номер дисконтной карты
-
salesAmount — Сумма продаж контрагента
Необходимое
-
meta — внешний уникальный идентификатор в формате метаданных (мета с syncId)
Необходимое -
id — ID в формате UUID
Необходимое -
syncId — ID синхронизации
-
version — Версия сущности. Изменяется при обновлении/удалении Контрагента
Необходимое -
updated — Момент последнего обновления Контрагента
Необходимое -
externalCode — Внешний код Контрагента
Необходимое
-
name — Имя Контрагента
Необходимое -
code — Код Контрагента
-
description — Описание Контрагента
-
actualAddress -Фактический адрес Контрагента
-
tags — Тэги (массив)
Необходимое
- companyType — Тип Контрагента.
Необходимое
[Юридическое лицо, Индивидуальный предприниматель, Физическое лицо].
| Тип контрагента | Значение поля companyType |
|---|---|
| Юридическое лицо | legal |
| Индивидуальный предприниматель | entrepreneur |
| Физическое лицо | individual |
-
legalTitle — Полное наименование Контрагента
-
legalAddress — Юридический адрес Контрагента
-
inn — ИНН
-
kpp — КПП
-
ogrn — ОГРН
-
ogrnip — ОГРНИП
-
okpo — ОКПО
-
certificateNumber — Номер свидетельства
-
certificateDate — Дата свидетельства
-
email — Адрес электронной почты
-
phone — Номер городского телефона
-
fax — Номер факса
-
discounts — Массив объектов-скидок, действующих на данного контрагента.
- discount — Скидка
- meta — метаданные скидки
- personalDiscount — процент персональной скидки (если тип — персональная скидка)
- salesAmountCorrection — Коррекция
- discount — Скидка
-
discountCardNumber — Номер дисконтной карты
-
salesAmount — Сумма продаж контрагента
Необходимое -
bonusProgram — Метаданные активной бонусной программы
-
bonusPoints — Бонусные баллы по активной бонусной программе
Заказы покупателей ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Заказы покупателей ¶
GET https://online.moysklad.ru/api/posap/1.0/entity/customerorder
Responses200
Успешный запрос. Результат — JSON представление списка Заказов покупателей.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder",
"mediaType": "application/json",
"size": 1,
"limit": 100,
"offset": 0
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder/0f175046-dbca-11e6-5bed-427b00000079",
"mediaType": "application/json",
"type": "customerorder",
"id": "0f175046-dbca-11e6-5bed-427b00000079",
"idType": "native"
},
"id": "0f175046-dbca-11e6-5bed-427b00000079",
"name": "00001",
"description": "2222222222222",
"moment": "2017-01-16 11:59:00",
"vatEnabled": true,
"vatIncluded": true,
"deliveryPlannedMoment": "2017-02-01 17:12:00",
"state": {
"name": "Новый",
"color": 15106326,
"type": "Regular"
},
"positions": [
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/product/d90cda3b-1f6c-11e7-8a7f-40d000000003",
"mediaType": "application/json",
"type": "product",
"id": "d90cda3b-1f6c-11e7-8a7f-40d000000003",
"idType": "native"
},
"name": "good1",
"code": "00034",
"uom": "шт",
"barcodes": [
"2000000000367"
],
"salePrices": [
{
"value": 6000,
"priceType": "Цена продажи"
},
{
"value": 4000,
"priceType": "Цена распродажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "GOOD",
"isDiscountProhibited": false
},
"quantity": 1,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0
},
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/variant/cca27551-5cc3-11e7-6a80-332a000000a4",
"mediaType": "application/json",
"type": "variant",
"id": "cca27551-5cc3-11e7-6a80-332a000000a4",
"idType": "native"
},
"name": "good1 (variant)",
"code": "00035",
"uom": "шт",
"barcodes": [
"2000000000369"
],
"salePrices": [
{
"value": 6000,
"priceType": "Цена продажи"
},
{
"value": 5000,
"priceType": "Цена распродажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "ANOTHER_PAYMENT_ITEM",
"isDiscountProhibited": false
},
"quantity": 10,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0,
"pack": {
"id": "5ae9e6b5-7b95-11e9-ac12-000b000000ac",
"name": "ящ",
"quantity": 10,
"barcode": "2000000000016"
}
},
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/product/d90cda3b-1f6c-11e7-8a7f-40d000000103",
"mediaType": "application/json",
"type": "product",
"id": "d90cda3b-1f6c-11e7-8a7f-40d000000103",
"idType": "native"
},
"name": "mask",
"code": "00134",
"uom": "шт",
"barcodes": [
"2000000023367"
],
"salePrices": [
{
"value": 3500,
"priceType": "Цена продажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "GOOD",
"isDiscountProhibited": false,
"ppeType": "2400001323807"
},
"quantity": 1,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0
}
],
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/90fdbe2f-d973-11e6-5bed-427b00000056",
"mediaType": "application/json",
"type": "counterparty",
"id": "90fdbe2f-d973-11e6-5bed-427b00000056",
"idType": "native"
},
"name": "ООО "Покупатель""
},
"prepayments": [
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/prepayment/6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e31",
"mediaType": "application/json",
"type": "prepayment",
"id": "6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e31",
"idType": "native"
},
"name": "00010"
},
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/prepayment/6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e30",
"mediaType": "application/json",
"type": "prepayment",
"id": "6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e30",
"idType": "native"
},
"name": "00011"
}
],
"paidInCash": 123,
"paidNoCash": 222,
"paidByQr": 0,
"shippedSum": 111
}
]
}
Получить Заказы покупателей
GET/entity/customerorder
Запрос на получение списка Заказов покупателей, соответствующих складу и организации точки продаж.
Не выгружаются Заказы с сериями, алкогольными товарами, непроведенные заказы, а также заказы без позиций и заказы, у которых более 1000 позиций.
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
id — ID в формате UUID
Необходимое
-
name — Имя
Необходимое -
description — Описание
-
moment — Дата
Необходимое -
vatEnabled — Учитывается ли НДС
Необходимое -
vatIncluded — Включен ли НДС в цену
Необходимое -
deliveryPlannedMoment — Планируемая дата отгрузки
-
state — Статус
-
positions — Ссылка на позиции в формате метаданных
Необходимое -
agent — Ссылка на покупателя в формате метаданных (Если заказ назначен на стандартного розничный покупателя, то это поле не придёт в составе заказа)
-
paidInCash — Оплачено наличными по заказу
-
paidNoCash — Оплачено картой по заказу
-
paidByQr — Оплачено по QR-коду по заказу
-
shippedSum — Отгружено
-
prepayments — Предоплаты связанные с заказом покупателя
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Позиции Заказа — это список товаров/услуг/модификаций/комплектов.
Объект позиции Заказа содержит следующие поля:
-
assortment — Ссылка на товар/услугу/модификацию/комплект (мета), которую представляет собой позиция
Необходимое -
quantity — Количество товаров/услуг/модификаций/комплектов данного вида в позиции
Необходимое -
price — Цена товаров/услуг/модификаций/комплекта в копейках
Необходимое -
vat — НДС, которым облагается текущая позиция
Необходимое -
vatEnabled — включен ли НДС для позиции. С помощью этого флага для позиции можно выставлять НДС = 0 или НДС = “без НДС”. (vat = 0, vatEnabled = false) -> vat = “без НДС”, (vat = 0, vatEnabled = true) -> vat = 0%
-
discount — Процент скидки или наценки
Необходимое -
reserve — Резерв данной позиции
Необходимое -
pack — Упаковка
- id — id сущности упаковки
Необходимое - name — Название упаковки
Необходимое - quantity — Количество товаров в упаковке
Необходимое - barcode — Штрихкод упаковки
- id — id сущности упаковки
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Объект статуса Заказа содержит следующие поля:
-
name — Наименование
Необходимое -
color — Цвет в цветовом пространстве ARGB
Необходимое -
type — Тип. Возможные значения: [
Regular(обычный),Successful(Финальный положительный),Unsuccessful(Финальный отрицательный)]Необходимое
Объект покупателя Заказа содержит следующие поля:
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
name — Имя
Необходимое
Объект предоплаты Заказа содержит следующие поля:
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
name — Имя
Необходимое
У точки продаж в основном приложении есть настройка: “Выгружать только заказы со статусами”, которая влияет на выдачу заказов.
Если в этой настройке указаны статусы, то, при запросе заказов, будут возвращены только заказы с указанными статусами. Если статусы не указаны, будут выгружаться заказы со всеми статусами в т.ч. пустыми.
Заказы покупателей ¶
GET https://online.moysklad.ru/api/posap/1.0/entity/customerorder/7944ef04-f831-11e5-7a69-971500188b19
Responses200
Успешный запрос. Результат — JSON представление списка Заказов покупателей.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder/0f175046-dbca-11e6-5bed-427b00000079",
"mediaType": "application/json",
"type": "customerorder",
"id": "0f175046-dbca-11e6-5bed-427b00000079",
"idType": "native"
},
"id": "0f175046-dbca-11e6-5bed-427b00000079",
"name": "00001",
"description": "2222222222222",
"moment": "2017-01-16 11:59:00",
"vatEnabled": true,
"vatIncluded": true,
"deliveryPlannedMoment": "2017-02-01 17:12:00",
"state": {
"name": "Новый",
"color": 15106326,
"type": "Regular"
},
"positions": [
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/product/d90cda3b-1f6c-11e7-8a7f-40d000000003",
"mediaType": "application/json",
"type": "product",
"id": "d90cda3b-1f6c-11e7-8a7f-40d000000003",
"idType": "native"
},
"name": "good1",
"code": "00034",
"uom": "шт",
"barcodes": [
"2000000000367"
],
"salePrices": [
{
"value": 6000,
"priceType": "Цена продажи"
},
{
"value": 4000,
"priceType": "Цена распродажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "GOOD",
"isDiscountProhibited": false
},
"quantity": 1,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0
},
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/variant/cca27551-5cc3-11e7-6a80-332a000000a4",
"mediaType": "application/json",
"type": "variant",
"id": "cca27551-5cc3-11e7-6a80-332a000000a4",
"idType": "native"
},
"name": "good1 (variant)",
"code": "00035",
"uom": "шт",
"barcodes": [
"2000000000369"
],
"salePrices": [
{
"value": 6000,
"priceType": "Цена продажи"
},
{
"value": 5000,
"priceType": "Цена распродажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "ANOTHER_PAYMENT_ITEM",
"isDiscountProhibited": false
},
"quantity": 10,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0,
"pack": {
"id": "5ae9e6b5-7b95-11e9-ac12-000b000000ac",
"name": "ящ",
"quantity": 10,
"barcode": "2000000000016"
}
},
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/product/d90cda3b-1f6c-11e7-8a7f-40d000000103",
"mediaType": "application/json",
"type": "product",
"id": "d90cda3b-1f6c-11e7-8a7f-40d000000103",
"idType": "native"
},
"name": "mask",
"code": "00134",
"uom": "шт",
"barcodes": [
"2000000023367"
],
"salePrices": [
{
"value": 3500,
"priceType": "Цена продажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "GOOD",
"isDiscountProhibited": false,
"ppeType": "2400001323807"
},
"quantity": 1,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0
}
],
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/90fdbe2f-d973-11e6-5bed-427b00000056",
"mediaType": "application/json",
"type": "counterparty",
"id": "90fdbe2f-d973-11e6-5bed-427b00000056",
"idType": "native"
},
"name": "ООО "Покупатель""
},
"prepayments": [
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/prepayment/6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e31",
"mediaType": "application/json",
"type": "prepayment",
"id": "6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e31",
"idType": "native"
},
"name": "00010"
},
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/prepayment/6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e30",
"mediaType": "application/json",
"type": "prepayment",
"id": "6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e30",
"idType": "native"
},
"name": "00011"
}
],
"paidInCash": 123,
"paidNoCash": 222,
"paidByQr": 0,
"shippedSum": 111
}
Получить Заказ покупателя
GET/entity/customerorder/{id}
Запрос на получение заказа для точки продаж.
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
id — ID в формате UUID
Необходимое
-
name — Имя
Необходимое -
description — Описание
-
moment — Дата
Необходимое -
vatEnabled — Учитывается ли НДС
Необходимое -
vatIncluded — Включен ли НДС в цену
Необходимое -
deliveryPlannedMoment — Планируемая дата отгрузки
-
state — Статус
-
positions — Ссылка на позиции в формате метаданных
Необходимое -
agent — Ссылка на покупателя в формате метаданных (Если заказ назначен на стандартного розничный покупателя, то это поле не придёт в составе заказа)
-
paidInCash — Оплачено наличными по заказу
-
paidNoCash — Оплачено картой по заказу
-
paidByQr — Оплачено по QR-коду по заказу
-
shippedSum — Отгружено
-
prepayments — Предоплаты связанные с заказом покупателя
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Позиции Заказа — это список товаров/услуг/модификаций/комплектов.
Объект позиции Заказа содержит следующие поля:
-
assortment — Ссылка на товар/услугу/модификацию/комплект (мета), которую представляет собой позиция
Необходимое -
quantity — Количество товаров/услуг/модификаций/комплектов данного вида в позиции
Необходимое -
price — Цена товаров/услуг/модификаций/комплекта в копейках
Необходимое -
vat — НДС, которым облагается текущая позиция
Необходимое -
vatEnabled — включен ли НДС для позиции. С помощью этого флага для позиции можно выставлять НДС = 0 или НДС = “без НДС”. (vat = 0, vatEnabled = false) -> vat = “без НДС”, (vat = 0, vatEnabled = true) -> vat = 0%
-
discount — Процент скидки или наценки
Необходимое -
reserve — Резерв данной позиции
Необходимое -
pack — Упаковка
- id — id сущности упаковки
Необходимое - name — Название упаковки
Необходимое - quantity — Количество товаров в упаковке
Необходимое - barcode — Штрихкод упаковки
- id — id сущности упаковки
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Объект статуса Заказа содержит следующие поля:
-
name — Наименование
Необходимое -
color — Цвет в цветовом пространстве ARGB
Необходимое -
type — Тип. Возможные значения: [
Regular(обычный),Successful(Финальный положительный),Unsuccessful(Финальный отрицательный)]Необходимое
Объект покупателя Заказа содержит следующие поля:
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
name — Имя
Необходимое
Объект предоплаты Заказа содержит следующие поля:
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
name — Имя
Необходимое
У точки продаж в основном приложении есть настройка: “Выгружать только заказы со статусами”, которая влияет на выдачу заказов.
Если в этой настройке указаны статусы, то, при запросе заказов, будут возвращены только заказы с указанными статусами. Если статусы не указаны, будут выгружаться заказы со всеми статусами в т.ч. пустыми.
URI Параметры
СкрытьПоказать
- id
string(required) Example: 7944ef04-f831-11e5-7a69-971500188b19id Заказа покупателя
Заказы покупателей ¶
POST https://online.moysklad.ru/api/posap/1.0/entity/customerorder
RequestsПример 1
Пример создания нового заказа покупателя.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
},
"moment": "2018-09-06 21:41:46",
"description": "Описание заказа",
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/syncid/f085d67e-6eae-11e6-8a84-bc520403352a"
}
},
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/f085d67e-6eae-11e6-8a84-bc520403352c"
}
},
"quantity": 2,
"price": 500,
"discount": 10,
"vat": 10
},
{
"quantity": 3,
"price": 400,
"discount": 10,
"vat": 10,
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/f085d67e-6eae-11e6-8a84-bc520403352c"
}
}
}
],
"taxSystem": "SIMPLIFIED_TAX_SYSTEM_INCOME"
}
Responses201
This response has no content.
Создать заказ покупателя
POST/entity/customerorder
Запрос на создание нового заказа покупателя.
Обязательные поля для создания заказа:
-
meta — Метаданные
-
agent — Ссылка на контрагента.
В случае, если не будет передано поле name — оно будет автоматически присвоено на сервере.
После создания, заказу будет выставлена Организация, указанная в настройках точки продаж.
Атрибуты запроса
- taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Серийные номера ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Серийные номера ¶
GET https://online.moysklad.ru/api/posap/1.0/entity/sn
Responses200
Успешный запрос. Результат — JSON представление списка серийных номеров.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn",
"mediaType": "application/json",
"size": 4,
"limit": 100,
"offsetId": "00000000-0000-0000-0000-000000000000",
"direction": "forward"
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/dcb887fa-2ff8-11e7-8a84-bae500000005",
"mediaType": "application/json",
"type": "sn",
"id": "dcb887fa-2ff8-11e7-8a84-bae500000005",
"idType": "native"
},
"name": "12322678909292929292",
"code": "123aa2c34eg566",
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/b7fb5459-2a83-11e7-9464-e4de00000026",
"mediaType": "application/json",
"type": "product",
"id": "b7fb5459-2a83-11e7-9464-e4de00000026",
"idType": "native"
}
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/dcb887fa-2ff8-11e7-8a84-bae500000005",
"mediaType": "application/json",
"type": "sn",
"id": "dcb887fa-2ff8-11e7-8a84-bae500000005",
"idType": "native"
},
"name": "12345678909292929292",
"code": "12345678909292929292",
"description": "Описание серийного номера",
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/bbc50755-2a83-11e7-9464-e4de0000002e",
"mediaType": "application/json",
"type": "product",
"id": "bbc50755-2a83-11e7-9464-e4de0000002e",
"idType": "native"
}
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/dcb887fa-2ff8-11e7-8a84-bae500000005",
"mediaType": "application/json",
"type": "sn",
"id": "dcb887fa-2ff8-11e7-8a84-bae500000005",
"idType": "native"
},
"name": "123456665556329292926",
"code": "123456789092777629292",
"description": "Серийный номер продукта",
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/bbc82552-2a83-11e7-9464-e4de00000032",
"mediaType": "application/json",
"type": "product",
"id": "bbc82552-2a83-11e7-9464-e4de00000032",
"idType": "native"
}
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/eb21663a-2b2b-11e7-9464-e4de0000002e",
"mediaType": "application/json",
"type": "sn",
"id": "eb21663a-2b2b-11e7-9464-e4de0000002e",
"idType": "native"
},
"name": "123",
"code": "123",
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/73a83977-89c7-11e8-253d-a06100000004",
"mediaType": "application/json",
"type": "product",
"id": "73a83977-89c7-11e8-253d-a06100000004",
"idType": "sync"
}
}
}
]
}
Получить Серийные номера
GET/entity/sn
Запрос на получение списка серийных номеров.
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
name — Имя
Необходимое -
code — Код
-
description — Описание
-
assortment — Ссылка на товар с серийным учётом, которому принадлежит серийный номер
Необходимое
Операции со сменами ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Открыть смену ¶
PUT https://online.moysklad.ru/api/posap/1.0/rpc/openshift/
RequestsПример
Пример запроса на открытие смены.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
}
},
"name": "0001",
"openmoment": "2016-09-06 21:41:46",
"cheque": {
"start": {
"fnNumber": "1234",
"kktRegNumber": "5678",
"fiscalDocSign": "9012",
"shiftNumber": "3456",
"fiscalDocNumber": "7890",
"time": "2016-09-06 21:41:46"
}
}
}
Responses204
This response has no content.
Открыть смену
PUT/rpc/openshift/
Запрос на открытие смены, привязанной к точке продаж с указанным syncId и к указанному моменту времени.
Атрибуты запроса
-
retailShift — внешний уникальный идентификатор документа (meta с syncId).
Необходимое -
name — номер смены
Необходимое -
openmoment — дата открытия смены
Необходимое -
cheque — информация о смене
- start — информация об открытии смены
- fnNumber — номер ФН
- kktRegNumber — регистрационный номер ККТ
- fiscalDocSign — фискальный признак документа
- shiftNumber — номер смены
- fiscalDocNumber — номер фискального документа
- time — дата и время открытия смены
- start — информация об открытии смены
Закрыть смену ¶
PUT https://online.moysklad.ru/api/posap/1.0/rpc/closeshift/
RequestsПример
Пример запроса на закрытие смены.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
}
},
"closemoment": "2016-09-06 21:41:46",
"retailDrawerCashout": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildrawercashout/syncid/388bd178-800c-11e6-8a84-bae5000000a4"
}
},
"cheque": {
"start": {
"fnNumber": "1234",
"kktRegNumber": "5678",
"fiscalDocSign": "9012",
"shiftNumber": "3456",
"fiscalDocNumber": "7890",
"time": "2016-09-06 20:41:46"
},
"end": {
"fnNumber": "4321",
"kktRegNumber": "0987",
"fiscalDocSign": "6543",
"shiftNumber": "2109",
"chequesTotal": 15,
"fiscalDocNumber": "8765",
"fiscalDocsTotal": 17,
"time": "2017-09-06 21:41:46"
}
}
}
Responses204
This response has no content.
Закрыть смену
PUT/rpc/closeshift/
Атрибуты запроса
-
retailShift — внешний уникальный идентификатор документа (meta с syncId). Указанная смена должна существовать и быть открытой
Необходимое -
closemoment — дата закрытия смены
Необходимое -
retailDrawerCashout — внешний уникальный идентификатор выплаты (meta с syncId). Если присутствует ссылка на выплату, сумма выплаты больше 0 и в настройках точки продаж
стоит флаг “Создавать ПКО при закрытии смены”, то при закрытии смены будет создаваться связанный ПКО. -
cheque — информация о смене
- start — информация об открытии смены
- fnNumber — номер ФН
- kktRegNumber — регистрационный номер ККТ
- fiscalDocSign — фискальный признак документа
- shiftNumber — номер смены
- fiscalDocNumber — номер фискального документа
- time — дата и время открытия смены
- end — информация о закрытии смены
- fnNumber — номер ФН
- kktRegNumber — регистрационный номер ККТ
- fiscalDocSign — фискальный признак документа
- shiftNumber — номер смены
- fiscalDocNumber — номер фискального документа
- chequesTotal — количество чеков за смену
- fiscalDocsTotal — количество фискальных документов за смену
- time — дата и время закрытия смены
- start — информация об открытии смены
Расчет скидок для продажи и возврата ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Расчет скидок и бонусов ¶
POST https://online.moysklad.ru/api/posap/1.0/rpc/retaildemand/recalc
RequestsПример 1
Пример расчета для новой розничной продажи с начислением бонусов.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/1c5dcf6f-7b32-11e6-8a84-bae500000000",
"mediaType": "application/json",
"type": "counterparty",
"id": "1c5dcf6f-7b32-11e6-8a84-bae500000000",
"idType": "native"
}
},
"transactionType": "EARNING",
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/7db30ee8-07c5-11e7-90a5-ba9c0000008b",
"mediaType": "application/json",
"type": "product",
"id": "7db30ee8-07c5-11e7-90a5-ba9c0000008b",
"idType": "native"
}
},
"sn": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/bb89b2b1-07c7-11e7-90a5-ba9c000000a5",
"mediaType": "application/json",
"type": "sn",
"id": "bb89b2b1-07c7-11e7-90a5-ba9c000000a5",
"idType": "native"
}
}
],
"quantity": 10,
"price": 200,
"pack": {
"id": "5ae9e6b5-7b95-11e9-ac12-000b000000ac",
"name": "ящ",
"quantity": 10,
"barcode": "2000000000016"
}
},
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/service/bb89b2b1-07c7-11e7-90a5-ba9c000000a4",
"mediaType": "application/json",
"type": "service",
"id": "bb89b2b1-07c7-11e7-90a5-ba9c000000a4",
"idType": "native"
}
},
"quantity": 2.33,
"price": 300
},
{
"assortment": {
"meta": {
"href": "http://localhost/api/posap/1.0/entity/product/ace86997-6113-11e9-ac13-000c000000c9",
"mediaType": "application/json",
"type": "product",
"id": "ace86997-6113-11e9-ac13-000c000000c9",
"idType": "native"
}
},
"quantity": 1,
"price": 200
},
{
"assortment": {
"meta": {
"href": "http://localhost/api/posap/1.0/entity/product/c1d3dacb-6113-11e9-ac13-000c000000d2",
"mediaType": "application/json",
"type": "product",
"id": "c1d3dacb-6113-11e9-ac13-000c000000d2",
"idType": "native"
}
},
"quantity": 2,
"price": 150
}
]
}
Responses200
BodyСкрытьПоказать
{
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/service/bb89b2b1-07c7-11e7-90a5-ba9c000000a4",
"mediaType": "application/json",
"type": "service",
"id": "bb89b2b1-07c7-11e7-90a5-ba9c000000a4",
"idType": "native"
},
"image": {
"href": "https://online.moysklad.ru/api/posap/1.0/download/64aab630-07c7-11e7-90a5-ba9c0000002c",
"miniature": "https://online.moysklad.ru/api/posap/1.0/download/64aab630-07c7-11e7-90a5-ba9c0000002c?miniature=true",
"tiny": "https://online.moysklad.ru/static/75651645-07c5-11e7-90a5-ba9c00000006/TinyImage/64aaa5a2-07c7-11e7-90a5-ba9c0000002b.png"
},
"name": "Имя товара1",
"code": "код",
"barcodes": [
"9031101"
],
"vat": 10,
"uom": "ед. измерения",
"article": "артикул",
"soldByWeight": false,
"onTap": false,
"tobacco": false,
"serialtrackable": false,
"trackingType": "NOT_TRACKED"
},
"sn": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/bb89b2b1-07c7-11e7-90a5-ba9c000000a5",
"mediaType": "application/json",
"type": "sn",
"id": "bb89b2b1-07c7-11e7-90a5-ba9c000000a5",
"idType": "native"
},
"name": "Сер. номер#1"
}
],
"quantity": 10,
"price": 100,
"discountedPrice": 80,
"pack": {
"id": "5ae9e6b5-7b95-11e9-ac12-000b000000ac",
"name": "ящ",
"quantity": 10,
"barcode": "2000000000016"
}
},
{
"assortment": {
"meta": {
"href": "http://localhost/api/posap/1.0/entity/product/ace86997-6113-11e9-ac13-000c000000c9",
"mediaType": "application/json",
"type": "product",
"id": "ace86997-6113-11e9-ac13-000c000000c9",
"idType": "native"
},
"name": "shoes",
"code": "00002",
"barcodes": [
"2000000000022"
],
"uom": "шт",
"soldByWeight": false,
"onTap": false,
"tobacco": false,
"trackingType": "SHOES",
"isSerialTrackable": false,
"partialDisposal": false
},
"quantity": 1,
"price": 200,
"discountedPrice": 200
},
{
"assortment": {
"meta": {
"href": "http://localhost/api/posap/1.0/entity/product/c1d3dacb-6113-11e9-ac13-000c000000d2",
"mediaType": "application/json",
"type": "product",
"id": "c1d3dacb-6113-11e9-ac13-000c000000d2",
"idType": "native"
},
"name": "tobacco",
"code": "00003",
"barcodes": [
"2000000000039"
],
"uom": "шт",
"soldByWeight": false,
"onTap": false,
"tobacco": true,
"trackingType": "TOBACCO",
"isSerialTrackable": false,
"partialDisposal": false
},
"quantity": 2,
"price": 150,
"discountedPrice": 150
}
],
"bonusProgram": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/bonusprogram/00000000-07c7-11e7-90a5-ba9c0000002c",
"mediaType": "application/json",
"type": "bonusprogram",
"id": "00000000-07c7-11e7-90a5-ba9c0000002c",
"idType": "native"
}
},
"receiptExtraInfo": "Текстnотnбонусов",
"agentBonusBalance": 100,
"bonusValueToEarn": 8,
"bonusValueToSpend": 20,
"chequeSumWithoutDiscount": 600,
"valueToPay": 580,
"paidByDiscountWithoutBonus": 0,
"paidWithBonusPoints": 20
}
Рассчитать скидки и бонусы для продажи
POST/rpc/retaildemand/recalc
Запрос на расчет скидок и бонусов для новой розничной продажи.
Атрибуты запроса
-
agent — метаданные контрагента продажи
-
transactionType — тип операции с бонусными баллами: начисление(EARNING) или списание(SPENDING).
Необходимое -
preferredBonusToSpend — Количество бонусных баллов для списания.
Целое положительное число больше 0.
Если передано значение, неприменимое к данной операции, количество баллов для списания будет рассчитано,
как максимально доступное для контрагента. -
positions — позиции розничной продажи/возврата
Необходимое- assortment — метаданные товара/модификации/услуги/комплекта
Необходимое - quantity — количество реализуемого товара, должно быть больше нуля
Необходимое - price — цена
Необходимое - sn —
Для товаровМассив серийных номеров. Необходимо указывать только при учёте товара по серийным номерам.- meta —
Общееметаданные серийного номера товараНеобходимое
- meta —
- pack — Упаковка
- id — id сущности упаковки
Необходимое - name — Название упаковки
Необходимое - quantity — Количество товаров в упаковке
Необходимое - barcode — Штрихкод упаковки
- id — id сущности упаковки
- assortment — метаданные товара/модификации/услуги/комплекта
-
bonusProgram — метаданные активной бонусной программы
Необходимое -
receiptExtraInfo — текст для вывода в чеке
-
agentBonusBalance — Баланс контрагента по активной бонусной программе ДО совершения операции
Необходимое -
bonusValueToEarn — Количество баллов которое будет начислено этой операцией
Необходимое -
bonusValueToSpend — Количество баллов которое будет списано этой операцией
Необходимое -
chequeSumWithoutDiscount — Сумма для уплаты без учета скидок
Необходимое -
paidByDiscountWithoutBonus — Сумма, оплаченная скидками, без учета бонусной программы
Необходимое -
paidWithBonusPoints — Сумма, оплаченная из бонусных баллов
Необходимое -
valueToPay — Сумма для уплаты с учетом скидок
Необходимое -
positions — позиции розничной продажи/возврата в порядке соответствующем запросу
Необходимое- quantity — количество
Необходимое - price — цена
Необходимое - discountedPrice — цена после применения всех скидок
Необходимое - assortment — даные товара/модификации/услуги/комплекта
Необходимое- meta —
Общееметаданные товара/модификации/услуги/комплектаНеобходимое - name —
ОбщееНаименование объектаНеобходимое - code —
ОбщееКод сущности - barcodes —
ОбщееМассив штрихкодов сущности - uom —
ОбщееЕдиница измерения товара (строка) - vat —
ОбщееНДС - article —
Для товаров и комплектовАртикул товара - soldByWeight —
Для товаровВесовой товар- onTap —
Для товаровРазливной товар
- onTap —
- isSerialTrackable —
Для товаровучёт по серийным номерамНеобходимое - tobacco —
Для товаровТабачная продукция. Не может быть указан вместе с egaisIsAlcoholic, soldByWeight и isSerialtrackable
-
trackingType — Тип маркируемой продукции
- NOT_TRACKED — Без маркировки
- TOBACCO — Тип маркировки “Табак”
- SHOES — Тип маркировки “Обувь”
- LP_CLOTHES — Тип маркировки “Одежда”
- LP_LINENS — Тип маркировки “Постельное белье”
- PERFUMERY — Тип маркировки “Духи и туалетная вода”
- ELECTRONICS — Тип маркировки “Фотокамеры и лампы-вспышки”
- TIRES — Тип маркировки “Шины и покрышки”
- MILK — Тип маркировки “Молочная продукция”
- WATER — Тип маркировки “Упакованная вода”
- OTP — Тип маркировки “Альтернативная табачная продукция”
- NCP — Тип маркировки “Никотиносодержащая продукция”
-
tnved — Код ТН ВЭД
-
partialDisposal — Флаг частичного выбытия
-
paymentItemType — Признак предмета расчета
- GOOD — Товар (Товар/Комплект)
- SERVICE — Услуга (Услуга)
- EXCISABLE_GOOD — Подакцизный товар (Товар/Комплект)
- WORK — Работа (Услуга)
- PROVIDING_RID — Предоставление РИД (Услуга)
- COMPOUND_PAYMENT_ITEM — Составной предмет расчета (Товар/Комплект/Услуга)
- ANOTHER_PAYMENT_ITEM — Иной предмет расчета (Товар/Комплект/Услуга)
- image —
Для товаров и комплектовИзображение товара (объект)- href — Ссылка на изображение
- miniature — Ссылка на миниатюру изображения
- tiny — Ссылка на уменьшенную версию изображения
- components —
Для комплектовКомпоненты комплекта, это список товаров/услуг/модификаций, который входят в состав комплекта. Компонентов у комплекта может быть от 1 до 10.Необходимое- meta — Метаданные сущности
Необходимое - quantity — количество компонентов в комплекте.
- meta — Метаданные сущности
- meta —
- sn —
Для товаровМассив серийных номеров. Необходимо указывать только при учёте товара по серийным номерам.- meta — метаданные серийного номера товара
Необходимое - name — Наименование серийного номера
- meta — метаданные серийного номера товара
- pack — Упаковка
- id — id сущности упаковки
Необходимое - name — Название упаковки
Необходимое - quantity — Количество товаров в упаковке
Необходимое - barcode — Штрихкод упаковки
- id — id сущности упаковки
- quantity — количество
Продажи ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Продажи в смене ¶
POST https://online.moysklad.ru/api/posap/1.0/entity/retaildemand
RequestsПример 1
Пример создания новой розничной продажи.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildemand/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
},
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"name": "000219991",
"moment": "2016-09-06 21:41:46",
"description": "размен",
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/688bd078-800c-11e6-8a84-bae5000000a2"
}
},
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/81fdf852-7c21-11e6-8a84-bae500000068",
"mediaType": "application/json"
}
},
"quantity": 2,
"price": 500,
"discount": 10,
"vat": 10,
"sum": 1000,
"pdf": [
"abc",
"def"
],
"marks": [
{
"cis": "12345678900987ABCDEFGabcdefgh"
},
{
"cis": "00000046185372KY4mjNZAB=U/FkO"
}
]
},
{
"quantity": 3,
"price": 400,
"discount": 10,
"vat": 10,
"sum": 800,
"sn": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352a",
"mediaType": "application/json"
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352b",
"mediaType": "application/json"
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352d",
"mediaType": "application/json"
}
}
],
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/f085d67e-6eae-11e6-8a84-bc520403352c"
}
}
}
],
"cashSum": 800,
"noCashSum": 100,
"qrSum": 0,
"vatEnabled": true,
"vatIncluded": true,
"bottleUrl": "https://check.egais.ru?id=a9e56cb9-21d6-4404-9f24-668020fadf6a&dt=0910141104&cn=Magazin2014",
"bottleSign": "418E6A105B60250CEB20F9F9A556FA4A9575B0C07EC536DE89CA868C884E296E56BA7EC7762C9BEC285CB4D8CD90EEE9F9FC16F92CCF324829E70862F0DFEC1B418E6A105B60250CEB20F9F9A556FA4A9575B0C07EC536DE89CA868C884E296E56BA7EC7762C9BEC285CB4D8CD90EEE9F9FC16F92CCF324829E70862F0DFEC1B",
"cheque": {
"fiscal": true,
"online": true,
"printed": true,
"phone": "89992223311",
"email": "1@m.com",
"number": "4165132132",
"sum": 123.6,
"fnNumber": "1223334444",
"fiscalDocSign": "111222333",
"fiscalDocNumber": "1234567",
"time": "2016-09-06 21:41:46"
},
"environment": {
"os": "Linux",
"device": "Some device name",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.0"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"cardTransaction": {
"pan": "547127******8519",
"transactionId": "5abce3f3c0ffdc014f1040de",
"authCode": "889872",
"rrnCode": "000010000467",
"amount": 8600,
"acquiringType": "Inpas",
"approvalNumber": "055747",
"description": "платеж картой n-Банка"
},
"customerOrder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder/7c1b81ab-5a9d-11e8-7a31-ca1400000027",
"mediaType": "application/json",
"type": "customerorder",
"id": "7c1b81ab-5a9d-11e8-7a31-ca1400000027",
"idType": "native"
}
},
"bonusProgram": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/bonusprogram/7c1b81ab-5a9d-11e8-7a31-ca1400000026",
"mediaType": "application/json",
"type": "bonusprogram",
"id": "7c1b81ab-5a9d-11e8-7a31-ca1400000026",
"idType": "native"
}
},
"bonusValueToEarn": 0,
"bonusValueToSpend": 0,
"prepaymentCash": 123,
"prepaymentNoCash": 222,
"prepaymentQrSum": 0
}
Responses201
This response has no content.
Создать продажу в смене
POST/entity/retaildemand
Запрос на создание новой розничной продажи в рамках смены с указанным id.
Если поле agent не будет указано, для создаваемой продажи будет использован стандартный розничный покупатель.
Атрибуты запроса
-
meta — внешний уникальный идентификатор документа в формате метаданных (meta с syncId)
Необходимое -
retailShift — ссылка на смену (meta с syncId).
Необходимое -
name — Номер розничной продажи
Необходимое -
moment — Дата и время розничной продажи
Необходимое -
description — Комментарий
-
owner — Владелец (Сотрудник)
-
agent — Покупатель ссылка на контрагента в формате метаданных
-
positions — позиции розничной продажи
Необходимое- assortment — позиция документа, ссылка на товар/модификацию/услугу/комплект в формате метаданных
Необходимое - quantity — количество реализуемого товара, должно быть положительным
Необходимое - price — цена
Необходимое - discount — процент скидки
- vat — процент НДС
- vatEnabled — включен ли НДС для позиции. С помощью этого флага для позиции можно выставлять НДС = 0 или НДС = “без НДС”. (vat = 0, vatEnabled = false) -> vat = “без НДС”, (vat = 0, vatEnabled = true) -> vat = 0%
- pdf — массив PDF-417 для алкогольных товаров
- sn — коллекция уникальных идентификаторов серийных номеров в формате метаданных.
Значение данного атрибута игнорируется, если товар позиции не находится на серийном учете.
В ином случае количество товаров в позиции (quantity) должно быть равно количеству серийных номеров, переданных в значении атрибута. - pack — Упаковка
- id — id сущности упаковки
Необходимое - name — Название упаковки
Необходимое - quantity — Количество товаров в упаковке
Необходимое - barcode — Штрихкод упаковки
- id — id сущности упаковки
- marks — массив кодов маркировки
- assortment — позиция документа, ссылка на товар/модификацию/услугу/комплект в формате метаданных
-
cashSum — Оплачено наличными
-
noCashSum — Оплачено картой
-
qrSum — оплачено по QR-коду
-
vatEnabled — флаг, указывающий, что документ содержит НДС
-
vatIncluded — флаг, указывающий, включен ли НДС в цену (по умолчанию включен)
-
bottleUrl — подпись ЕГАИС
-
bottleSign — URL чека ЕГАИС
-
customerOrder — Ссылка на заказ покупателя (meta)
-
environment — информация об окружении
- device — информация об устройстве
- os — информация об операционной системе
- software — информация о ПО
- name — наименование ПО
Необходимое при передаче software - vendor — производитель
- version — версия ПО
- name — наименование ПО
- chequePrinter — данные о ККТ
- vendor — производитель
- name — наименование
Необходимое при передаче chequePrinter - serial — серийный номер
- fiscalDataVersion — формат фискальных данных
- driver — информация об используемом драйвере
- name — наименование драйвера
- version — версия драйвера
- fiscalMemory — информация о фискальном накопителе
- fiscalDataVersion — версия фискальной памяти
- firmwareVersion — Версия прошивки ККТ
- paymentTerminal — информация о платежном терминале
- acquiringType — информация о типе эквайера (например: inpas/payme)
-
cheque — информация о чеке
- fiscal — отметка о том, был ли использован ФР
- online — признак электронного чека
- printed — признак бумажного чека
- phone — номер телефона, на который высылается электронный чек
- email — адрес электронной почты, на который высылается электронный чек
- number — номер чека
- sum — сумма чека
- fnNumber — номер ФН
- fiscalDocSign — Фискальный признак документа
- fiscalDocNumber — Номер фискального документа
- time — время фискализации
-
cardTransaction — информация о транзакции в случае оплаты картой
- pan — номер банковской карты
- transactionId — id транзакции
- authCode — inpas код аутентификации
- rrnCode — Номер ссылки (RRN)
- amount — сумма
Необходимое - acquiringType — информация о типе эквайера (например: inpas/payme)
Необходимое - approvalNumber — inpas/payme номер операции (код подтверждения)
- description — комментарий
-
qrTransaction — информация о транзакции в случае оплаты по QR-коду
- transactionId — id транзакции
- externalOperationId — id заказа в системе банка
- authCode — код авторизации транзакции
- acquiringType — название API, через которое была проведена оплата
-
bonusProgram — Бонусная программа, ссылка в формате метаданных
-
bonusValueToEarn — Количество бонусных балов к зачислению
-
bonusValueToSpend — Количество бонусных балов к списанию
-
prepaymentCash — Предоплата нал
-
prepaymentNoCash — Предоплата безнал
-
prepaymentQrSum — предоплата по QR-коду
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Возможна привязка заказа к Розничной продаже при создании продажи. Связь передается в объекте customerOrder (meta) при создании продажи.
Если поле vatEnabled=true, а поле vatIncluded=false, то НДС не входит в цену и ее надо считать.
Возвраты ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Возвраты в смене ¶
POST https://online.moysklad.ru/api/posap/1.0/entity/retailsalesreturn
RequestsПример 1
Пример создания нового Розничного возврата.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailsalesreturn/syncid/388bd178-800c-11e6-8a84-bae5000000a3"
},
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"demand": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildemand/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
}
},
"name": "0002199921",
"moment": "2016-09-06 21:42:46",
"description": "возврат размена",
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/81fdf852-7c21-11e6-8a84-bae500000068",
"mediaType": "application/json"
}
},
"quantity": 2,
"price": 500,
"discount": 10,
"vat": 10,
"sum": 1000,
"pdf": [
"abc",
"def"
],
"marks": [
{
"cis": "12345678900987ABCDEFGabcdefgh"
},
{
"cis": "00000046185372KY4mjNZAB=U/FkO"
}
]
},
{
"quantity": 3,
"price": 400,
"discount": 10,
"vat": 10,
"sum": 800,
"sn": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352a",
"mediaType": "application/json"
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352b",
"mediaType": "application/json"
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352d",
"mediaType": "application/json"
}
}
],
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/f085d67e-6eae-11e6-8a84-bc520403352c"
}
}
}
],
"cashSum": 800,
"noCashSum": 100,
"qrSum": 0,
"vatEnabled": true,
"vatIncluded": true,
"bottleUrl": "https://check.egais.ru?id=a9e56cb9-21d6-4404-9f24-668020fadf6a&dt=0910141104&cn=Magazin2014",
"bottleSign": "418E6A105B60250CEB20F9F9A556FA4A9575B0C07EC536DE89CA868C884E296E56BA7EC7762C9BEC285CB4D8CD90EEE9F9FC16F92CCF324829E70862F0DFEC1B418E6A105B60250CEB20F9F9A556FA4A9575B0C07EC536DE89CA868C884E296E56BA7EC7762C9BEC285CB4D8CD90EEE9F9FC16F92CCF324829E70862F0DFEC1B",
"cheque": {
"fiscal": true,
"online": true,
"printed": true,
"phone": "89992223311",
"email": "1@m.com",
"number": "4165132132",
"sum": 123.6,
"fnNumber": "1223334444",
"fiscalDocSign": "111222333",
"fiscalDocNumber": "1234567",
"time": "2016-09-06 21:41:46"
},
"environment": {
"os": "Linux",
"device": "Some device name",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.0"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"cardTransaction": {
"pan": "547127******8519",
"transactionId": "5abce3f3c0ffdc014f1040de",
"authCode": "889872",
"rrnCode": "000010000467",
"amount": 8600,
"acquiringType": "Inpas",
"approvalNumber": "055747",
"description": "платеж картой n-Банка"
}
}
Responses201
This response has no content.
Создать возврат в смене
POST/entity/retailsalesreturn
Атрибуты запроса
-
meta — внешний уникальный идентификатор документа в формате метаданных (meta с syncId)
Необходимое -
retailShift — ссылка на смену (meta с syncId).
Необходимое -
demand — Ссылка на розничную продажу в формате метаданных
-
name — Номер розничного возврата
Необходимое -
moment — Дата и время розничного возврата
Необходимое -
description — Комментарий
-
positions — позиции розничного возврата
Необходимое- assortment — позиция документа, ссылка на товар/модификацию/услугу/комплект в формате метаданных
Необходимое - quantity — количество реализуемого товара, должно быть положительным
Необходимое - price — цена
Необходимое - discount — процент скидки (поле игнорируется для возврата без основания)
- vat — процент НДС
- vatEnabled — включен ли НДС для позиции. С помощью этого флага для позиции можно выставлять НДС = 0 или НДС = “без НДС”. (vat = 0, vatEnabled = false) -> vat = “без НДС”, (vat = 0, vatEnabled = true) -> vat = 0%
- pdf — массив PDF-417 для алкогольных товаров
- sn — коллекция уникальных идентификаторов серийных номеров в формате метаданных.
Значение данного атрибута игнорируется, если товар позиции не находится на серийном учете.
В ином случае количество товаров в позиции (quantity) должно быть равно количеству серийных номеров, переданных в значении атрибута. - pack — Упаковка
- id — id сущности упаковки
Необходимое - name — Название упаковки
Необходимое - quantity — Количество товаров в упаковке
Необходимое - barcode — Штрихкод упаковки
- marks — массив кодов маркировки
- id — id сущности упаковки
- assortment — позиция документа, ссылка на товар/модификацию/услугу/комплект в формате метаданных
-
cashSum — Оплачено наличными
-
noCashSum — Оплачено картой
-
qrSum — оплачено по QR-коду
-
vatEnabled — флаг, указывающий, что документ содержит НДС
-
vatIncluded — флаг, указывающий, включен ли НДС в цену (по умолчанию включен)
-
bottleUrl — подпись ЕГАИС
-
bottleSign — URL чека ЕГАИС
-
environment — информация об окружении
- device — информация об устройстве
- os — информация об операционной системе
- software — информация о ПО
- name — наименование ПО
Необходимое при передаче software - vendor — производитель
- version — версия ПО
- name — наименование ПО
- chequePrinter — данные о ККТ
- vendor — производитель
- name — наименование
Необходимое при передаче chequePrinter - serial — серийный номер
- fiscalDataVersion — формат фискальных данных
- driver — информация об используемом драйвере
- name — наименование драйвера
- version — версия драйвера
- fiscalMemory — информация о фискальном накопителе
- fiscalDataVersion — версия фискальной памяти
- firmwareVersion — Версия прошивки ККТ
- paymentTerminal — информация о платежном терминале
- acquiringType — информация о типе эквайера (например: inpas/payme)
-
cheque — информация о чеке
- fiscal — отметка о том, был ли использован ФР
- online — признак электронного чека
- printed — признак бумажного чека
- phone — номер телефона, на который высылается электронный чек
- email — адрес электронной почты, на который высылается электронный чек
- number — номер чека
- sum — сумма чека
- fnNumber — номер ФН
- fiscalDocSign — Фискальный признак документа
- fiscalDocNumber — Номер фискального документа
- time — время фискализации
-
cardTransaction — информация о транзакции в случае оплаты картой
- pan — номер банковской карты
- transactionId — id транзакции
- authCode — inpas код аутентификации
- rrnCode — Номер ссылки (RRN)
- amount — сумма
Необходимое - acquiringType — информация о типе эквайера (например: inpas/payme)
Необходимое - approvalNumber — inpas/payme номер операции (код подтверждения)
- description — комментарий
-
qrTransaction — информация о транзакции в случае оплаты по QR-коду
- transactionId — id транзакции
- externalOperationId — id заказа в системе банка
- authCode — код авторизации транзакции
- acquiringType — название API, через которое была проведена оплата
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Если поле vatEnabled=true, а поле vatIncluded=false, то НДС не входит в цену и ее надо считать.
Внесение денег ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Внесение денег ¶
POST https://online.moysklad.ru/api/posap/1.0/entity/retaildrawercashin/
RequestsПример 1
Пример создания нового внесения денег.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildrawercashin/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
},
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"name": "000012",
"moment": "2016-03-16 19:41:19",
"sum": 7500,
"description": "Внесение денег в денежный ящик"
}
Responses201
This response has no content.
Создать внесение денег
POST/entity/retaildrawercashin/
Запрос на создание внесения денег.
Атрибуты запроса
-
meta — внешний уникальный идентификатор документа в формате метаданных (meta с syncId)
Необходимое -
retailShift — ссылка на смену в формате метаданных.
Необходимое -
name — Номер внесения денег
Необходимое -
moment — Дата внесения денег
Необходимое -
description — Комментарий
-
sum — Сумма внесения денег
Необходимое
Выплата денег ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Выплата денег ¶
POST https://online.moysklad.ru/api/posap/1.0/entity/retaildrawercashout/
RequestsПример 1
Пример создания новой выплаты денег.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildrawercashout/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
},
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"name": "0020012",
"moment": "2016-04-16 19:41:19",
"sum": 73500,
"description": "Выплата денег из денежного ящика"
}
Responses201
This response has no content.
Создать выплату денег
POST/entity/retaildrawercashout/
Запрос на создание выплаты денег.
Атрибуты запроса
-
meta — внешний уникальный идентификатор документа в формате метаданных (meta с syncId)
Необходимое -
retailShift — ссылка на смену в формате метаданных.
Необходимое -
name — Номер выплаты денег
Необходимое -
moment — Дата выплаты денег
Необходимое -
description — Комментарий
-
sum — Сумма выплаты денег
Необходимое
Предоплаты ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Предоплаты ¶
POST https://online.moysklad.ru/api/posap/1.0/entity/prepayment
RequestsПример 1
Пример создания новой предоплаты.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/prepayment/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
},
"name": "000219991",
"description": "предоплата по заказу из интернет-магазин",
"moment": "2016-09-06 21:41:46",
"sum": 250000,
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/688bd078-800c-11e6-8a84-bae5000000a2"
}
},
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/81fdf852-7c21-11e6-8a84-bae500000068",
"mediaType": "application/json"
}
},
"quantity": 2,
"price": 500,
"discount": 10,
"vat": 10
},
{
"quantity": 3,
"price": 400,
"discount": 10,
"vat": 10,
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/f085d67e-6eae-11e6-8a84-bc520403352c"
}
}
}
],
"vatEnabled": true,
"vatIncluded": true,
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"customerOrder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"cashSum": 125000,
"noCashSum": 125000,
"qrSum": 0,
"cheque": {
"fiscal": true,
"online": true,
"printed": true,
"phone": "89992223311",
"email": "1@m.com",
"number": "4165132132",
"sum": 123.6,
"fnNumber": "1223334444",
"fiscalDocSign": "111222333",
"fiscalDocNumber": "1234567",
"time": "2016-09-06 21:41:46"
},
"environment": {
"os": "Linux",
"device": "Some device name",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.0"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"cardTransaction": {
"pan": "547127******8519",
"transactionId": "5abce3f3c0ffdc014f1040de",
"authCode": "889872",
"rrnCode": "000010000467",
"amount": 8600,
"acquiringType": "Inpas",
"approvalNumber": "055747",
"description": "платеж картой n-Банка"
}
}
Responses201
This response has no content.
Создать предоплату
POST/entity/prepayment
Запрос на создание новой предоплаты по заказу в рамках смены с указанным id.
Атрибуты запроса
-
meta — внешний уникальный идентификатор документа в формате метаданных (meta с syncId)
Необходимое -
id — id сущности в сервисе
-
name — Номер предоплаты
Необходимое -
description — Комментарий
-
moment — Дата и время предоплаты
-
sum — Итоговая сумма предоплаты. Равна сумме нал + безнал.
-
agent — Покупатель ссылка на контрагента в формате метаданных
-
positions — позиции предоплаты
Необходимое- assortment — позиция документа, ссылка на товар/модификацию/услугу/комплект в формате метаданных
Необходимое - quantity — количество реализуемого товара, должно быть положительным
Необходимое - price — цена
Необходимое - discount — процент скидки
- vat — процент НДС
- vatEnabled — включен ли НДС для позиции. С помощью этого флага для позиции можно выставлять НДС = 0 или НДС = “без НДС”. (vat = 0, vatEnabled = false) -> vat = “без НДС”, (vat = 0, vatEnabled = true) -> vat = 0%
- assortment — позиция документа, ссылка на товар/модификацию/услугу/комплект в формате метаданных
-
vatEnabled — флаг, указывающий, что документ содержит НДС
-
vatIncluded — флаг, указывающий, включен ли НДС в цену (по умолчанию включен)
-
vatIncluded — Цена включает НДС
-
vatSum — Сумма НДС
-
retailStore — ссылка на точку продаж (meta с syncId).
-
retailShift — ссылка на смену (meta с syncId).
Необходимое -
cashier — ссылка на кассира в формате метаданных.
-
customerOrder — ссылка на заказ, по которому производится предоплата в формате метаданных.
Необходимое -
cashSum — Оплачено наличными
-
noCashSum — Оплачено картой
-
qrSum — оплачено по QR-коду
-
environment — информация об окружении
- device — информация об устройстве
- os — информация об операционной системе
- software — информация о ПО
- name — наименование ПО
Необходимое при передаче software - vendor — производитель
- version — версия ПО
- name — наименование ПО
- chequePrinter — данные о ККТ
- vendor — производитель
- name — наименование
Необходимое при передаче chequePrinter - serial — серийный номер
- fiscalDataVersion — формат фискальных данных
- driver — информация об используемом драйвере
- name — наименование драйвера
- version — версия драйвера
- fiscalMemory — информация о фискальном накопителе
- fiscalDataVersion — версия фискальной памяти
- firmwareVersion — Версия прошивки ККТ
- paymentTerminal — информация о платежном терминале
- acquiringType — информация о типе эквайера (например: inpas/payme)
-
cheque — информация о чеке
- fiscal — отметка о том, был ли использован ФР
- online — признак электронного чека
- printed — признак бумажного чека
- phone — номер телефона, на который высылается электронный чек
- email — адрес электронной почты, на который высылается электронный чек
- number — номер чека
- sum — сумма чека
- fnNumber — номер ФН
- fiscalDocSign — Фискальный признак документа
- fiscalDocNumber — Номер фискального документа
- time — время фискализации
-
cardTransaction — информация о транзакции в случае оплаты картой
- pan — номер банковской карты
- transactionId — id транзакции
- authCode — inpas код аутентификации
- rrnCode — Номер ссылки (RRN)
- amount — сумма
Необходимое - acquiringType — информация о типе эквайера (например: inpas/payme)
Необходимое - approvalNumber — inpas/payme номер операции (код подтверждения)
- description — комментарий
-
qrTransaction — информация о транзакции в случае оплаты по QR-коду
- transactionId — id транзакции
- externalOperationId — id заказа в системе банка
- authCode — код авторизации транзакции
- acquiringType — название API, через которое была проведена оплата
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Если поле vatEnabled=true, а поле vatIncluded=false, то НДС не входит в цену и ее надо считать.
Возвраты предоплат ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Возвраты предоплат ¶
POST https://online.moysklad.ru/api/posap/1.0/entity/prepaymentreturn
RequestsПример 1
Пример создания нового возврата предоплаты.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/prepaymentreturn/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
},
"name": "000219991",
"description": "возврат предоплаты",
"moment": "2016-09-06 21:41:46",
"sum": 250000,
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/688bd078-800c-11e6-8a84-bae5000000a2"
}
},
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/81fdf852-7c21-11e6-8a84-bae500000068",
"mediaType": "application/json"
}
},
"quantity": 2,
"price": 500,
"discount": 10,
"vat": 10
},
{
"quantity": 3,
"price": 400,
"discount": 10,
"vat": 10,
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/f085d67e-6eae-11e6-8a84-bc520403352c"
}
}
}
],
"vatEnabled": true,
"vatIncluded": true,
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"prepayment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/prepayment/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"cashSum": 125000,
"noCashSum": 125000,
"qrSum": 0,
"cheque": {
"fiscal": true,
"online": true,
"printed": true,
"phone": "89992223311",
"email": "1@m.com",
"number": "4165132132",
"sum": 123.6,
"fnNumber": "1223334444",
"fiscalDocSign": "111222333",
"fiscalDocNumber": "1234567",
"time": "2016-09-06 21:41:46"
},
"environment": {
"os": "Linux",
"device": "Some device name",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.0"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"cardTransaction": {
"pan": "547127******8519",
"transactionId": "5abce3f3c0ffdc014f1040de",
"authCode": "889872",
"rrnCode": "000010000467",
"amount": 8600,
"acquiringType": "Inpas",
"approvalNumber": "055747",
"description": "платеж картой n-Банка"
}
}
Responses201
This response has no content.
Создать возврат предоплаты
POST/entity/prepaymentreturn
Запрос на создание нового возврата предоплаты рамках смены с указанным id.
Атрибуты запроса
-
meta — внешний уникальный идентификатор документа в формате метаданных (meta с syncId)
Необходимое -
id — id сущности в сервисе
-
name — Номер возврата предоплаты
Необходимое -
description — Комментарий
-
moment — Дата и время возврата предоплаты
-
sum — Итоговая сумма возврата предоплаты. Равна сумме нал + безнал. Может быть меньше суммы предоплаты.
-
positions — позиции возврата предоплаты
Необходимое- assortment — позиция документа, ссылка на товар/модификацию/услугу/комплект в формате метаданных
Необходимое - quantity — количество реализуемого товара, должно быть положительным
Необходимое - price — цена
Необходимое - discount — процент скидки
- vat — процент НДС
- vatEnabled — включен ли НДС для позиции. С помощью этого флага для позиции можно выставлять НДС = 0 или НДС = “без НДС”. (vat = 0, vatEnabled = false) -> vat = “без НДС”, (vat = 0, vatEnabled = true) -> vat = 0%
- assortment — позиция документа, ссылка на товар/модификацию/услугу/комплект в формате метаданных
-
vatEnabled — флаг, указывающий, что документ содержит НДС
-
vatIncluded — флаг, указывающий, включен ли НДС в цену (по умолчанию включен)
-
vatIncluded — Цена включает НДС
-
vatSum — Сумма НДС
-
retailStore — ссылка на точку продаж (meta с syncId).
-
retailShift — ссылка на смену (meta с syncId).
Необходимое -
cashier — ссылка на кассира в формате метаданных.
-
prepayment — ссылка на предоплату, для которой производится возврат в формате метаданных.
Необходимое -
cashSum — Оплачено наличными
-
noCashSum — Оплачено картой
-
qrSum — оплачено по QR-коду
-
environment — информация об окружении
- device — информация об устройстве
- os — информация об операционной системе
- software — информация о ПО
- name — наименование ПО
Необходимое при передаче software - vendor — производитель
- version — версия ПО
- name — наименование ПО
- chequePrinter — данные о ККТ
- vendor — производитель
- name — наименование
Необходимое при передаче chequePrinter - serial — серийный номер
- fiscalDataVersion — формат фискальных данных
- driver — информация об используемом драйвере
- name — наименование драйвера
- version — версия драйвера
- fiscalMemory — информация о фискальном накопителе
- fiscalDataVersion — версия фискальной памяти
- firmwareVersion — Версия прошивки ККТ
- paymentTerminal — информация о платежном терминале
- acquiringType — информация о типе эквайера (например: inpas/payme)
-
cheque — информация о чеке
- fiscal — отметка о том, был ли использован ФР
- online — признак электронного чека
- printed — признак бумажного чека
- phone — номер телефона, на который высылается электронный чек
- email — адрес электронной почты, на который высылается электронный чек
- number — номер чека
- sum — сумма чека
- fnNumber — номер ФН
- fiscalDocSign — Фискальный признак документа
- fiscalDocNumber — Номер фискального документа
- time — время фискализации
-
cardTransaction — информация о транзакции в случае оплаты картой
- pan — номер банковской карты
- transactionId — id транзакции
- authCode — inpas код аутентификации
- rrnCode — Номер ссылки (RRN)
- amount — сумма
Необходимое - acquiringType — информация о типе эквайера (например: inpas/payme)
Необходимое - approvalNumber — inpas/payme номер операции (код подтверждения)
- description — комментарий
-
qrTransaction — информация о транзакции в случае оплаты по QR-коду
- transactionId — id транзакции
- externalOperationId — id заказа в системе банка
- authCode — код авторизации транзакции
- acquiringType — название API, через которое была проведена оплата
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Если поле vatEnabled=true, а поле vatIncluded=false, то НДС не входит в цену и ее надо считать.
Заказы покупателей ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Заказы покупателей ¶
GET https://online.moysklad.ru/api/posap/1.0/entity/customerorder
Responses200
Успешный запрос. Результат — JSON представление списка Заказов покупателей.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder",
"mediaType": "application/json",
"size": 1,
"limit": 100,
"offset": 0
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder/0f175046-dbca-11e6-5bed-427b00000079",
"mediaType": "application/json",
"type": "customerorder",
"id": "0f175046-dbca-11e6-5bed-427b00000079",
"idType": "native"
},
"id": "0f175046-dbca-11e6-5bed-427b00000079",
"name": "00001",
"description": "2222222222222",
"moment": "2017-01-16 11:59:00",
"vatEnabled": true,
"vatIncluded": true,
"deliveryPlannedMoment": "2017-02-01 17:12:00",
"state": {
"name": "Новый",
"color": 15106326,
"type": "Regular"
},
"positions": [
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/product/d90cda3b-1f6c-11e7-8a7f-40d000000003",
"mediaType": "application/json",
"type": "product",
"id": "d90cda3b-1f6c-11e7-8a7f-40d000000003",
"idType": "native"
},
"name": "good1",
"code": "00034",
"uom": "шт",
"barcodes": [
"2000000000367"
],
"salePrices": [
{
"value": 6000,
"priceType": "Цена продажи"
},
{
"value": 4000,
"priceType": "Цена распродажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "GOOD",
"isDiscountProhibited": false
},
"quantity": 1,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0
},
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/variant/cca27551-5cc3-11e7-6a80-332a000000a4",
"mediaType": "application/json",
"type": "variant",
"id": "cca27551-5cc3-11e7-6a80-332a000000a4",
"idType": "native"
},
"name": "good1 (variant)",
"code": "00035",
"uom": "шт",
"barcodes": [
"2000000000369"
],
"salePrices": [
{
"value": 6000,
"priceType": "Цена продажи"
},
{
"value": 5000,
"priceType": "Цена распродажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "ANOTHER_PAYMENT_ITEM",
"isDiscountProhibited": false
},
"quantity": 10,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0,
"pack": {
"id": "5ae9e6b5-7b95-11e9-ac12-000b000000ac",
"name": "ящ",
"quantity": 10,
"barcode": "2000000000016"
}
},
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/product/d90cda3b-1f6c-11e7-8a7f-40d000000103",
"mediaType": "application/json",
"type": "product",
"id": "d90cda3b-1f6c-11e7-8a7f-40d000000103",
"idType": "native"
},
"name": "mask",
"code": "00134",
"uom": "шт",
"barcodes": [
"2000000023367"
],
"salePrices": [
{
"value": 3500,
"priceType": "Цена продажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "GOOD",
"isDiscountProhibited": false,
"ppeType": "2400001323807"
},
"quantity": 1,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0
}
],
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/90fdbe2f-d973-11e6-5bed-427b00000056",
"mediaType": "application/json",
"type": "counterparty",
"id": "90fdbe2f-d973-11e6-5bed-427b00000056",
"idType": "native"
},
"name": "ООО "Покупатель""
},
"prepayments": [
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/prepayment/6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e31",
"mediaType": "application/json",
"type": "prepayment",
"id": "6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e31",
"idType": "native"
},
"name": "00010"
},
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/prepayment/6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e30",
"mediaType": "application/json",
"type": "prepayment",
"id": "6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e30",
"idType": "native"
},
"name": "00011"
}
],
"paidInCash": 123,
"paidNoCash": 222,
"paidByQr": 0,
"shippedSum": 111
}
]
}
Получить Заказы покупателей
GET/entity/customerorder
Запрос на получение списка Заказов покупателей, соответствующих складу и организации точки продаж.
Не выгружаются Заказы с сериями, алкогольными товарами, непроведенные заказы, а также заказы без позиций и заказы, у которых более 1000 позиций.
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
id — ID в формате UUID
Необходимое
-
name — Имя
Необходимое -
description — Описание
-
moment — Дата
Необходимое -
vatEnabled — Учитывается ли НДС
Необходимое -
vatIncluded — Включен ли НДС в цену
Необходимое -
deliveryPlannedMoment — Планируемая дата отгрузки
-
state — Статус
-
positions — Ссылка на позиции в формате метаданных
Необходимое -
agent — Ссылка на покупателя в формате метаданных (Если заказ назначен на стандартного розничный покупателя, то это поле не придёт в составе заказа)
-
paidInCash — Оплачено наличными по заказу
-
paidNoCash — Оплачено картой по заказу
-
paidByQr — Оплачено по QR-коду по заказу
-
shippedSum — Отгружено
-
prepayments — Предоплаты связанные с заказом покупателя
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Позиции Заказа — это список товаров/услуг/модификаций/комплектов.
Объект позиции Заказа содержит следующие поля:
-
assortment — Ссылка на товар/услугу/модификацию/комплект (мета), которую представляет собой позиция
Необходимое -
quantity — Количество товаров/услуг/модификаций/комплектов данного вида в позиции
Необходимое -
price — Цена товаров/услуг/модификаций/комплекта в копейках
Необходимое -
vat — НДС, которым облагается текущая позиция
Необходимое -
vatEnabled — включен ли НДС для позиции. С помощью этого флага для позиции можно выставлять НДС = 0 или НДС = “без НДС”. (vat = 0, vatEnabled = false) -> vat = “без НДС”, (vat = 0, vatEnabled = true) -> vat = 0%
-
discount — Процент скидки или наценки
Необходимое -
reserve — Резерв данной позиции
Необходимое -
pack — Упаковка
- id — id сущности упаковки
Необходимое - name — Название упаковки
Необходимое - quantity — Количество товаров в упаковке
Необходимое - barcode — Штрихкод упаковки
- id — id сущности упаковки
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Объект статуса Заказа содержит следующие поля:
-
name — Наименование
Необходимое -
color — Цвет в цветовом пространстве ARGB
Необходимое -
type — Тип. Возможные значения: [
Regular(обычный),Successful(Финальный положительный),Unsuccessful(Финальный отрицательный)]Необходимое
Объект покупателя Заказа содержит следующие поля:
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
name — Имя
Необходимое
Объект предоплаты Заказа содержит следующие поля:
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
name — Имя
Необходимое
У точки продаж в основном приложении есть настройка: “Выгружать только заказы со статусами”, которая влияет на выдачу заказов.
Если в этой настройке указаны статусы, то, при запросе заказов, будут возвращены только заказы с указанными статусами. Если статусы не указаны, будут выгружаться заказы со всеми статусами в т.ч. пустыми.
Заказы покупателей ¶
GET https://online.moysklad.ru/api/posap/1.0/entity/customerorder/7944ef04-f831-11e5-7a69-971500188b19
Responses200
Успешный запрос. Результат — JSON представление списка Заказов покупателей.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder/0f175046-dbca-11e6-5bed-427b00000079",
"mediaType": "application/json",
"type": "customerorder",
"id": "0f175046-dbca-11e6-5bed-427b00000079",
"idType": "native"
},
"id": "0f175046-dbca-11e6-5bed-427b00000079",
"name": "00001",
"description": "2222222222222",
"moment": "2017-01-16 11:59:00",
"vatEnabled": true,
"vatIncluded": true,
"deliveryPlannedMoment": "2017-02-01 17:12:00",
"state": {
"name": "Новый",
"color": 15106326,
"type": "Regular"
},
"positions": [
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/product/d90cda3b-1f6c-11e7-8a7f-40d000000003",
"mediaType": "application/json",
"type": "product",
"id": "d90cda3b-1f6c-11e7-8a7f-40d000000003",
"idType": "native"
},
"name": "good1",
"code": "00034",
"uom": "шт",
"barcodes": [
"2000000000367"
],
"salePrices": [
{
"value": 6000,
"priceType": "Цена продажи"
},
{
"value": 4000,
"priceType": "Цена распродажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "GOOD",
"isDiscountProhibited": false
},
"quantity": 1,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0
},
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/variant/cca27551-5cc3-11e7-6a80-332a000000a4",
"mediaType": "application/json",
"type": "variant",
"id": "cca27551-5cc3-11e7-6a80-332a000000a4",
"idType": "native"
},
"name": "good1 (variant)",
"code": "00035",
"uom": "шт",
"barcodes": [
"2000000000369"
],
"salePrices": [
{
"value": 6000,
"priceType": "Цена продажи"
},
{
"value": 5000,
"priceType": "Цена распродажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "ANOTHER_PAYMENT_ITEM",
"isDiscountProhibited": false
},
"quantity": 10,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0,
"pack": {
"id": "5ae9e6b5-7b95-11e9-ac12-000b000000ac",
"name": "ящ",
"quantity": 10,
"barcode": "2000000000016"
}
},
{
"assortment": {
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/product/d90cda3b-1f6c-11e7-8a7f-40d000000103",
"mediaType": "application/json",
"type": "product",
"id": "d90cda3b-1f6c-11e7-8a7f-40d000000103",
"idType": "native"
},
"name": "mask",
"code": "00134",
"uom": "шт",
"barcodes": [
"2000000023367"
],
"salePrices": [
{
"value": 3500,
"priceType": "Цена продажи"
}
],
"soldByWeight": false,
"onTap": false,
"isSerialTrackable": false,
"paymentItemType": "GOOD",
"isDiscountProhibited": false,
"ppeType": "2400001323807"
},
"quantity": 1,
"price": 0,
"vat": 0,
"vatEnabled": false,
"discount": 0,
"reserve": 0
}
],
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/90fdbe2f-d973-11e6-5bed-427b00000056",
"mediaType": "application/json",
"type": "counterparty",
"id": "90fdbe2f-d973-11e6-5bed-427b00000056",
"idType": "native"
},
"name": "ООО "Покупатель""
},
"prepayments": [
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/prepayment/6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e31",
"mediaType": "application/json",
"type": "prepayment",
"id": "6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e31",
"idType": "native"
},
"name": "00010"
},
{
"meta": {
"href": "http://online.moysklad.ru/api/posap/1.0/entity/prepayment/6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e30",
"mediaType": "application/json",
"type": "prepayment",
"id": "6e13d2e1-b0ba-4f70-bd39-0b7dfd6c2e30",
"idType": "native"
},
"name": "00011"
}
],
"paidInCash": 123,
"paidNoCash": 222,
"paidByQr": 0,
"shippedSum": 111
}
Получить Заказ покупателя
GET/entity/customerorder/{id}
Запрос на получение заказа для точки продаж.
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
id — ID в формате UUID
Необходимое
-
name — Имя
Необходимое -
description — Описание
-
moment — Дата
Необходимое -
vatEnabled — Учитывается ли НДС
Необходимое -
vatIncluded — Включен ли НДС в цену
Необходимое -
deliveryPlannedMoment — Планируемая дата отгрузки
-
state — Статус
-
positions — Ссылка на позиции в формате метаданных
Необходимое -
agent — Ссылка на покупателя в формате метаданных (Если заказ назначен на стандартного розничный покупателя, то это поле не придёт в составе заказа)
-
paidInCash — Оплачено наличными по заказу
-
paidNoCash — Оплачено картой по заказу
-
paidByQr — Оплачено по QR-коду по заказу
-
shippedSum — Отгружено
-
prepayments — Предоплаты связанные с заказом покупателя
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Позиции Заказа — это список товаров/услуг/модификаций/комплектов.
Объект позиции Заказа содержит следующие поля:
-
assortment — Ссылка на товар/услугу/модификацию/комплект (мета), которую представляет собой позиция
Необходимое -
quantity — Количество товаров/услуг/модификаций/комплектов данного вида в позиции
Необходимое -
price — Цена товаров/услуг/модификаций/комплекта в копейках
Необходимое -
vat — НДС, которым облагается текущая позиция
Необходимое -
vatEnabled — включен ли НДС для позиции. С помощью этого флага для позиции можно выставлять НДС = 0 или НДС = “без НДС”. (vat = 0, vatEnabled = false) -> vat = “без НДС”, (vat = 0, vatEnabled = true) -> vat = 0%
-
discount — Процент скидки или наценки
Необходимое -
reserve — Резерв данной позиции
Необходимое -
pack — Упаковка
- id — id сущности упаковки
Необходимое - name — Название упаковки
Необходимое - quantity — Количество товаров в упаковке
Необходимое - barcode — Штрихкод упаковки
- id — id сущности упаковки
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Объект статуса Заказа содержит следующие поля:
-
name — Наименование
Необходимое -
color — Цвет в цветовом пространстве ARGB
Необходимое -
type — Тип. Возможные значения: [
Regular(обычный),Successful(Финальный положительный),Unsuccessful(Финальный отрицательный)]Необходимое
Объект покупателя Заказа содержит следующие поля:
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
name — Имя
Необходимое
Объект предоплаты Заказа содержит следующие поля:
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
name — Имя
Необходимое
У точки продаж в основном приложении есть настройка: “Выгружать только заказы со статусами”, которая влияет на выдачу заказов.
Если в этой настройке указаны статусы, то, при запросе заказов, будут возвращены только заказы с указанными статусами. Если статусы не указаны, будут выгружаться заказы со всеми статусами в т.ч. пустыми.
URI Параметры
СкрытьПоказать
- id
string(required) Example: 7944ef04-f831-11e5-7a69-971500188b19id Заказа покупателя
Заказы покупателей ¶
POST https://online.moysklad.ru/api/posap/1.0/entity/customerorder
RequestsПример 1
Пример создания нового заказа покупателя.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
},
"moment": "2018-09-06 21:41:46",
"description": "Описание заказа",
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/syncid/f085d67e-6eae-11e6-8a84-bc520403352a"
}
},
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/f085d67e-6eae-11e6-8a84-bc520403352c"
}
},
"quantity": 2,
"price": 500,
"discount": 10,
"vat": 10
},
{
"quantity": 3,
"price": 400,
"discount": 10,
"vat": 10,
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/f085d67e-6eae-11e6-8a84-bc520403352c"
}
}
}
],
"taxSystem": "SIMPLIFIED_TAX_SYSTEM_INCOME"
}
Responses201
This response has no content.
Создать заказ покупателя
POST/entity/customerorder
Запрос на создание нового заказа покупателя.
Обязательные поля для создания заказа:
-
meta — Метаданные
-
agent — Ссылка на контрагента.
В случае, если не будет передано поле name — оно будет автоматически присвоено на сервере.
После создания, заказу будет выставлена Организация, указанная в настройках точки продаж.
Атрибуты запроса
- taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
Розничные операции ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Розничные операции ¶
GET https://online.moysklad.ru/api/posap/1.0/entity/retailoperation
Responses200
Успешный запрос. Результат — JSON представление списка Заказов покупателей.
Headers
Content-Type: application/json
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailoperation",
"mediaType": "application/json",
"size": 2,
"limit": 25,
"offset": 0
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailsalesreturn/syncid/6f2a160d-5842-452c-9845-a8fd82b43a62",
"mediaType": "application/json",
"type": "retailsalesreturn",
"id": "6f2a160d-5842-452c-9845-a8fd82b43a62",
"idType": "sync"
},
"id": "9f80f80e-d49e-11e9-ac12-000b000001a4",
"name": "00001",
"moment": "2019-09-11 17:15:00",
"sum": 0,
"noCashSum": 0,
"qrSum": 0,
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/organization/1415fdba-d49b-11e9-ac12-000b00000068",
"mediaType": "application/json",
"type": "organization",
"id": "1415fdba-d49b-11e9-ac12-000b00000068",
"idType": "native"
},
"name": "123"
},
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/4676fe33-d49d-11e9-ac12-000b0000018f",
"mediaType": "application/json",
"type": "retailshift",
"id": "4676fe33-d49d-11e9-ac12-000b0000018f",
"idType": "native"
},
"name": "00001",
"openmoment": "2019-09-11 17:05:00"
},
"prepaymentCash": 0,
"prepaymentNoCash": 0,
"prepaymentQrSum": 0,
"returned": false
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildemand/syncid/21356f1a-1826-475b-bf7c-80d2ced0229f",
"mediaType": "application/json",
"type": "retaildemand",
"id": "21356f1a-1826-475b-bf7c-80d2ced0229f",
"idType": "sync"
},
"id": "4682ea35-d49d-11e9-ac12-000b00000191",
"name": "00001",
"moment": "2019-09-11 17:05:00",
"sum": 1000,
"noCashSum": 1000,
"qrSum": 0,
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/4676fe33-d49d-11e9-ac12-000b0000018f",
"mediaType": "application/json",
"type": "retailshift",
"id": "4676fe33-d49d-11e9-ac12-000b0000018f",
"idType": "native"
},
"name": "00001",
"openmoment": "2019-09-11 17:05:00"
},
"prepaymentCash": 0,
"prepaymentNoCash": 0,
"prepaymentQrSum": 0,
"returned": true
}
]
}
Получить Розничные операции
GET/entity/retailoperation
Запрос на получение розничных операций.
-
meta — Уникальный идентификатор в формате метаданных
Необходимое -
id — ID в формате UUID
Необходимое
-
name — Имя
Необходимое -
agent — Ссылка на покупателя в формате метаданных
-
sum — Сумма операции
-
noCashSum — Оплачено картой
-
qrSum — оплачено по QR-коду
-
moment — Дата и время розничной операции
-
retailShift — Смена с датой открытия и закрытия
-
prepaymentCash — Предоплата наличными
-
prepaymentNoCash — Предоплата картой
-
prepaymentQrSum — предоплата по QR-коду
-
returned — Признак того, был ли сделан возврат
-
masterShift — Смена на которой была фискализирована операция с датой открытия и закрытия
-
isCloud — Признак того, что операция была фискализирована удаленно
-
prepaymentCash — Предоплата наличными
-
prepaymentNoCash — Предоплата картой
-
prepaymentQrSum — предоплата по QR-коду
-
name — Имя
Необходимое -
description — Описание
-
moment — Дата
Необходимое -
vatIncluded — Включен ли НДС в цену
Необходимое -
vatEnabled — Учитывается ли НДС
Необходимое -
deliveryPlannedMoment — Планируемая дата отгрузки
-
state — Статус
-
positions — Ссылка на позиции в формате метаданных
Необходимое -
agent — Ссылка на покупателя в формате метаданных вместе с телефоном, именем и email
Необходимое
Позиции Заказа — это список товаров/услуг/модификаций/комплектов. Объект позиции Заказа содержит следующие поля:
-
assortment — Ссылка на товар/услугу/модификацию/комплект в формате метаданных, которую представляет собой позиция
Необходимое -
quantity — Количество товаров/услуг/модификаций/комплектов данного вида в позиции
Необходимое -
price — Цена товаров/услуг/модификаций/комплекта в копейках
Необходимое -
vat — НДС, которым облагается текущая позиция
Необходимое -
discount — Процент скидки или наценки
Необходимое -
reserve — Резерв данной позиции
Необходимое -
sn — список серийных номеров
- meta — Метаданные о серийном номере
- name — Имя
Ассортимент позиции — информация о товаре в позиции заказа Объект ассортимента содержит следующие поля:
-
meta — Метаданные, представляющие собой ссылку на объект
-
name — Наименование
-
code — Код
-
article — Артикул товара
-
images — Изображения товара в формате метаданных
-
barcodes — Массив штрихкодов
-
uom — Единица измерения
-
soldByWeight — Продажа по весу (только у товара)
-
onTap — Продажа на разлив (только у товара)
-
isSerialTrackable — Учет по серийным номерам. Не может быть указан вместе с alcoholic и weighed (только у товара)
-
salePrices — Цены продажи (нет у серий)
-
egaisIsAlcoholic — отметка о том, является ли товар алкогольным (приходит только для товаров)
-
label — Имя серии (выводится только для серий)
- components — Компоненты комплекта, это список товаров/услуг/модификаций, который входят в состав комплекта. Компонентов у комплекта может быть от 1 до 10
Необходимое- meta — Метаданные сущности
Необходимое - quantity — Количество компонентов в комплекте. Выводятся в виде метаданных сущности.
- meta — Метаданные сущности
-
search — Поиск по номеру операции (вхождение поисковой строки, как подстроки имени операции), по сумме операции
(с точностью до знака после точки), по названию позиции (только одной) и по имени контрагента, если длина поискового запроса больше 2х символов. Тип значения — строка. -
dtype — Поиск по типу операции (только по одному и в нижнем регистре). Тип значения — строка.
Создание продажи на фискализацию ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Продажа на фискализацию ¶
POST https://online.moysklad.ru/api/posap/1.0/cheque/minion/entity/retaildemand
RequestsПример 1
Пример создания новой розничной продажи.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildemand/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
},
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"name": "000219991",
"moment": "2016-09-06 21:41:46",
"description": "размен",
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/688bd078-800c-11e6-8a84-bae5000000a2"
}
},
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/81fdf852-7c21-11e6-8a84-bae500000068",
"mediaType": "application/json"
}
},
"quantity": 2,
"price": 500,
"discount": 10,
"vat": 10,
"sum": 1000,
"pdf": [
"abc",
"def"
],
"marks": [
{
"cis": "12345678900987ABCDEFGabcdefgh"
},
{
"cis": "00000046185372KY4mjNZAB=U/FkO"
}
]
},
{
"quantity": 3,
"price": 400,
"discount": 10,
"vat": 10,
"sum": 800,
"sn": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352a",
"mediaType": "application/json"
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352b",
"mediaType": "application/json"
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352d",
"mediaType": "application/json"
}
}
],
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/f085d67e-6eae-11e6-8a84-bc520403352c"
}
}
}
],
"cashSum": 800,
"noCashSum": 100,
"qrSum": 0,
"vatEnabled": true,
"vatIncluded": true,
"bottleUrl": "https://check.egais.ru?id=a9e56cb9-21d6-4404-9f24-668020fadf6a&dt=0910141104&cn=Magazin2014",
"bottleSign": "418E6A105B60250CEB20F9F9A556FA4A9575B0C07EC536DE89CA868C884E296E56BA7EC7762C9BEC285CB4D8CD90EEE9F9FC16F92CCF324829E70862F0DFEC1B418E6A105B60250CEB20F9F9A556FA4A9575B0C07EC536DE89CA868C884E296E56BA7EC7762C9BEC285CB4D8CD90EEE9F9FC16F92CCF324829E70862F0DFEC1B",
"cheque": {
"fiscal": true,
"online": true,
"printed": true,
"phone": "89992223311",
"email": "1@m.com",
"number": "4165132132",
"sum": 123.6,
"fnNumber": "1223334444",
"fiscalDocSign": "111222333",
"fiscalDocNumber": "1234567",
"time": "2016-09-06 21:41:46"
},
"environment": {
"os": "Linux",
"device": "Some device name",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.0"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"cardTransaction": {
"pan": "547127******8519",
"transactionId": "5abce3f3c0ffdc014f1040de",
"authCode": "889872",
"rrnCode": "000010000467",
"amount": 8600,
"acquiringType": "Inpas",
"approvalNumber": "055747",
"description": "платеж картой n-Банка"
},
"customerOrder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder/7c1b81ab-5a9d-11e8-7a31-ca1400000027",
"mediaType": "application/json",
"type": "customerorder",
"id": "7c1b81ab-5a9d-11e8-7a31-ca1400000027",
"idType": "native"
}
},
"bonusProgram": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/bonusprogram/7c1b81ab-5a9d-11e8-7a31-ca1400000026",
"mediaType": "application/json",
"type": "bonusprogram",
"id": "7c1b81ab-5a9d-11e8-7a31-ca1400000026",
"idType": "native"
}
},
"bonusValueToEarn": 0,
"bonusValueToSpend": 0,
"prepaymentCash": 123,
"prepaymentNoCash": 222,
"prepaymentQrSum": 0
}
Responses201
This response has no content.
Создать продажу на фискализацию
POST/cheque/minion/entity/retaildemand
Запрос на создание продажи и помещение ее в очередь облачных чеков на фискализацию.
Атрибуты запроса
Структура полностью соответствует обычному созданию продажи для эндпоинта entity/retaildemand
Создание возврата на фискализацию ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Возврат на фискализацию ¶
POST https://online.moysklad.ru/api/posap/1.0/cheque/minion/entity/retailsalesreturn
RequestsПример 1
Пример создания нового Розничного возврата.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailsalesreturn/syncid/388bd178-800c-11e6-8a84-bae5000000a3"
},
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"demand": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildemand/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
}
},
"name": "0002199921",
"moment": "2016-09-06 21:42:46",
"description": "возврат размена",
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/81fdf852-7c21-11e6-8a84-bae500000068",
"mediaType": "application/json"
}
},
"quantity": 2,
"price": 500,
"discount": 10,
"vat": 10,
"sum": 1000,
"pdf": [
"abc",
"def"
],
"marks": [
{
"cis": "12345678900987ABCDEFGabcdefgh"
},
{
"cis": "00000046185372KY4mjNZAB=U/FkO"
}
]
},
{
"quantity": 3,
"price": 400,
"discount": 10,
"vat": 10,
"sum": 800,
"sn": [
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352a",
"mediaType": "application/json"
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352b",
"mediaType": "application/json"
}
},
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/sn/f085d67e-6eae-11e6-8a84-bc520403352d",
"mediaType": "application/json"
}
}
],
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/f085d67e-6eae-11e6-8a84-bc520403352c"
}
}
}
],
"cashSum": 800,
"noCashSum": 100,
"qrSum": 0,
"vatEnabled": true,
"vatIncluded": true,
"bottleUrl": "https://check.egais.ru?id=a9e56cb9-21d6-4404-9f24-668020fadf6a&dt=0910141104&cn=Magazin2014",
"bottleSign": "418E6A105B60250CEB20F9F9A556FA4A9575B0C07EC536DE89CA868C884E296E56BA7EC7762C9BEC285CB4D8CD90EEE9F9FC16F92CCF324829E70862F0DFEC1B418E6A105B60250CEB20F9F9A556FA4A9575B0C07EC536DE89CA868C884E296E56BA7EC7762C9BEC285CB4D8CD90EEE9F9FC16F92CCF324829E70862F0DFEC1B",
"cheque": {
"fiscal": true,
"online": true,
"printed": true,
"phone": "89992223311",
"email": "1@m.com",
"number": "4165132132",
"sum": 123.6,
"fnNumber": "1223334444",
"fiscalDocSign": "111222333",
"fiscalDocNumber": "1234567",
"time": "2016-09-06 21:41:46"
},
"environment": {
"os": "Linux",
"device": "Some device name",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.0"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"cardTransaction": {
"pan": "547127******8519",
"transactionId": "5abce3f3c0ffdc014f1040de",
"authCode": "889872",
"rrnCode": "000010000467",
"amount": 8600,
"acquiringType": "Inpas",
"approvalNumber": "055747",
"description": "платеж картой n-Банка"
}
}
Responses201
This response has no content.
Создать возврат на фискализацию
POST/cheque/minion/entity/retailsalesreturn
Запрос на создание возврата и помещение его в очередь облачных чеков на фискализацию.
Атрибуты запроса
Структура полностью соответствует обычному созданию возврата для эндпоинта entity/retailsalesreturn
Создание предоплаты на фискализацию ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Предоплата на фискализацию ¶
POST https://online.moysklad.ru/api/posap/1.0/cheque/minion/entity/prepayment
RequestsПример 1
Пример создания новой предоплаты.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/prepayment/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
},
"name": "000219991",
"description": "предоплата по заказу из интернет-магазин",
"moment": "2016-09-06 21:41:46",
"sum": 250000,
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/688bd078-800c-11e6-8a84-bae5000000a2"
}
},
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/81fdf852-7c21-11e6-8a84-bae500000068",
"mediaType": "application/json"
}
},
"quantity": 2,
"price": 500,
"discount": 10,
"vat": 10
},
{
"quantity": 3,
"price": 400,
"discount": 10,
"vat": 10,
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/f085d67e-6eae-11e6-8a84-bc520403352c"
}
}
}
],
"vatEnabled": true,
"vatIncluded": true,
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"customerOrder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/customerorder/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"cashSum": 125000,
"noCashSum": 125000,
"qrSum": 0,
"cheque": {
"fiscal": true,
"online": true,
"printed": true,
"phone": "89992223311",
"email": "1@m.com",
"number": "4165132132",
"sum": 123.6,
"fnNumber": "1223334444",
"fiscalDocSign": "111222333",
"fiscalDocNumber": "1234567",
"time": "2016-09-06 21:41:46"
},
"environment": {
"os": "Linux",
"device": "Some device name",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.0"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"cardTransaction": {
"pan": "547127******8519",
"transactionId": "5abce3f3c0ffdc014f1040de",
"authCode": "889872",
"rrnCode": "000010000467",
"amount": 8600,
"acquiringType": "Inpas",
"approvalNumber": "055747",
"description": "платеж картой n-Банка"
}
}
Responses201
This response has no content.
Создать предоплату на фискализацию
POST/cheque/minion/entity/prepayment
Запрос на создание предоплаты и помещение ее в очередь облачных чеков на фискализацию.
Атрибуты запроса
Структура полностью соответствует обычному созданию предоплаты для эндпоинта entity/prepayment
Создание возврата предоплаты на фискализацию ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Возврат предоплаты на фискализацию ¶
POST https://online.moysklad.ru/api/posap/1.0/cheque/minion/entity/prepaymentreturn
RequestsПример 1
Пример создания нового возврата предоплаты.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/prepaymentreturn/syncid/388bd178-800c-11e6-8a84-bae5000000a2"
},
"name": "000219991",
"description": "возврат предоплаты",
"moment": "2016-09-06 21:41:46",
"sum": 250000,
"agent": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/688bd078-800c-11e6-8a84-bae5000000a2"
}
},
"positions": [
{
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/81fdf852-7c21-11e6-8a84-bae500000068",
"mediaType": "application/json"
}
},
"quantity": 2,
"price": 500,
"discount": 10,
"vat": 10
},
{
"quantity": 3,
"price": 400,
"discount": 10,
"vat": 10,
"assortment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/f085d67e-6eae-11e6-8a84-bc520403352c"
}
}
}
],
"vatEnabled": true,
"vatIncluded": true,
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"prepayment": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/prepayment/syncid/288bd078-800c-11e6-8a84-bae5000000a2"
}
},
"cashSum": 125000,
"noCashSum": 125000,
"qrSum": 0,
"cheque": {
"fiscal": true,
"online": true,
"printed": true,
"phone": "89992223311",
"email": "1@m.com",
"number": "4165132132",
"sum": 123.6,
"fnNumber": "1223334444",
"fiscalDocSign": "111222333",
"fiscalDocNumber": "1234567",
"time": "2016-09-06 21:41:46"
},
"environment": {
"os": "Linux",
"device": "Some device name",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.0"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"cardTransaction": {
"pan": "547127******8519",
"transactionId": "5abce3f3c0ffdc014f1040de",
"authCode": "889872",
"rrnCode": "000010000467",
"amount": 8600,
"acquiringType": "Inpas",
"approvalNumber": "055747",
"description": "платеж картой n-Банка"
}
}
Responses201
This response has no content.
Создать возврат предоплаты на фискализацию
POST/cheque/minion/entity/prepaymentreturn
Запрос на создание возврата предоплаты и помещение его в очередь облачных чеков на фискализацию.
Атрибуты запроса
Структура полностью соответствует обычному созданию возврата предоплаты для эндпоинта entity/prepaymentreturn
Запрос статуса фискализации операции ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Статус фискализации операции ¶
GET https://online.moysklad.ru/api/posap/1.0/cheque/rpc/minion/status/syncid/7944ef04-f831-11e5-7a69-971500188b19
Responses200
Успешный запрос. Результат — JSON представление статуса фискализации.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"operation": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildemand/syncid/a4a94924-ab7a-447e-b1ae-6b874242cbdd",
"mediaType": "application/json",
"type": "retaildemand",
"id": "a4a94924-ab7a-447e-b1ae-6b874242cbdd",
"idType": "sync"
},
"fiscalStatus": "OK",
"cheque": {
"fiscal": true,
"online": true,
"printed": true,
"phone": "89992223311",
"email": "1@m.com",
"number": "4165132132",
"sum": 123.6,
"fnNumber": "1223334444",
"fiscalDocSign": "111222333",
"fiscalDocNumber": "1234567",
"time": "2016-09-06 21:41:46"
}
}
Получить статус фискализации операции
GET/cheque/rpc/minion/status/syncid/{syncid}
-
operation — Метаданные о операции
Необходимое -
fiscalStatus — Статус фискализации
Необходимое
| Статус фискализации | Значение поля fiscalStatus |
|---|---|
| Фискализирована | OK |
| Ожидает фискализации | PENDING |
| В процессе фискализации | IN_PROGRESS |
- cheque — информация о чеке
- fiscal — отметка о том, был ли использован ФР
- online — признак электронного чека
- printed — признак бумажного чека
- phone — номер телефона, на который высылается электронный чек
- email — адрес электронной почты, на который высылается электронный чек
- number — номер чека
- sum — сумма чека
- fnNumber — номер ФН
- fiscalDocSign — Фискальный признак документа
- fiscalDocNumber — Номер фискального документа
- time — время фискализации
URI Параметры
СкрытьПоказать
- syncid
string(required) Example: 7944ef04-f831-11e5-7a69-971500188b19syncid операции
Запрос операции на фискализацию ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Запрос операции на фискализацию ¶
GET https://online.moysklad.ru/api/posap/1.0/cheque/rpc/master/poll/7944ef04-f831-11e5-7a69-971500188b19
Responses200
Headers
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
Content-Type: application/json
BodyСкрытьПоказать
Успешный запрос. Результат - JSON представление операции.
Получить операцию на фискализацию
GET/cheque/rpc/master/poll/{orgId}
Структура полностью соответствует обычному получению операции по id для эндпоинтов entity/type
URI Параметры
СкрытьПоказать
- orgId
string(required) Example: 7944ef04-f831-11e5-7a69-971500188b19id организации
Успешная фискализация ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Успешная фискализация ¶
PUT https://online.moysklad.ru/api/posap/1.0/cheque/rpc/master/approve
Responses204
Успешный запрос. Результат — JSON представление фискализированной операции.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildemand/syncid/a4a94924-ab7a-447e-b1ae-6b874242cbdd",
"mediaType": "application/json",
"type": "retaildemand",
"id": "a4a94924-ab7a-447e-b1ae-6b874242cbdd",
"idType": "sync"
},
"cheque": {
"fiscal": true,
"online": true,
"printed": true,
"phone": "89992223311",
"email": "1@m.com",
"number": "4165132132",
"sum": 123.6,
"fnNumber": "1223334444",
"fiscalDocSign": "111222333",
"fiscalDocNumber": "1234567",
"time": "2016-09-06 21:41:46"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.0"
},
"firmwareVersion": "669"
},
"taxSystem": "GENERAL_TAX_SYSTEM",
"retailShift": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retailshift/syncid/288bd078-800c-11e6-8a84-bae5000000a2",
"type": "retailshift",
"id": "288bd078-800c-11e6-8a84-bae5000000a2",
"idType": "sync"
}
}
}
Успешная фискализация
PUT/cheque/rpc/master/approve
-
meta — Метаданные о операции
Необходимое -
cheque — информация о чеке
- fiscal — отметка о том, был ли использован ФР
- online — признак электронного чека
- printed — признак бумажного чека
- phone — номер телефона, на который высылается электронный чек
- email — адрес электронной почты, на который высылается электронный чек
- number — номер чека
- sum — сумма чека
- fnNumber — номер ФН
- fiscalDocSign — Фискальный признак документа
- fiscalDocNumber — Номер фискального документа
- time — время фискализации
-
chequePrinter — данные о ККТ
- vendor — производитель
- name — наименование
Необходимое при передаче chequePrinter - serial — серийный номер
- fiscalDataVersion — формат фискальных данных
- driver — информация об используемом драйвере
- name — наименование драйвера
- version — версия драйвера
- fiscalMemory — информация о фискальном накопителе
- fiscalDataVersion — версия фискальной памяти
- firmwareVersion — Версия прошивки ККТ
-
taxSystem — Код системы налогообложения.
| Система налогообложения | Значение поля taxSystem |
|---|---|
| ОСН | GENERAL_TAX_SYSTEM |
| УСН. Доход | SIMPLIFIED_TAX_SYSTEM_INCOME |
| УСН. Доход-Расход | SIMPLIFIED_TAX_SYSTEM_INCOME_OUTCOME |
| ЕСХН | UNIFIED_AGRICULTURAL_TAX |
| ЕНВД | PRESUMPTIVE_TAX_SYSTEM |
| Патент | PATENT_BASED |
- retailShift — Метаданные о смене, в которой была фискализирована операция
Необходимое
Неуспешная фискализация ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Неуспешная фискализация ¶
PUT https://online.moysklad.ru/api/posap/1.0/cheque/rpc/master/reject
Responses204
Успешный запрос. Результат — JSON представление о ошибке фискализации.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/retaildemand/syncid/a4a94924-ab7a-447e-b1ae-6b874242cbdd",
"mediaType": "application/json",
"type": "retaildemand",
"id": "a4a94924-ab7a-447e-b1ae-6b874242cbdd",
"idType": "sync"
},
"fiscalErrMsg": "ФН переполнен"
}
Неуспешная фискализация
PUT/cheque/rpc/master/reject
-
meta — Метаданные о операции
Необходимое -
fiscalErrMsg — информация о ошибке
Обновить статус точки продаж ¶
Для данного ресурса предусмотрена авторизация по token. Все запросы к ресурсам справочника товаров и услуг должны сопровождаться
HTTP заголовок Lognex-Pos-Auth-Token со значением токена, а также HTTP заголовком Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира,
от имени которого выполняется запрос. При этом заголовок Authorization НЕ указывается.
- Пример:
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233bLognex-Pos-Auth-Cashier-Uid:employee@company
О том как получить данный token можно прочитать тут.
Обновить статус точки продаж ¶
POST https://online.moysklad.ru/api/posap/1.0/state
RequestsПример
Пример body запроса для обновления статуса точки продаж.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"environment": {
"device": "Some device name",
"os": "Linux",
"software": {
"name": "Касса МойСклад",
"vendor": "МойСклад",
"version": "2.2"
},
"chequePrinter": {
"vendor": "АТОЛ",
"name": "30Ф",
"serial": "15636313",
"fiscalDataVersion": "1.0",
"driver": {
"name": "АТОЛ (бета)",
"version": "9.1"
},
"fiscalMemory": {
"fiscalDataVersion": "1.1"
},
"firmwareVersion": "669"
},
"paymentTerminal": {
"acquiringType": "payme"
}
},
"state": {
"sync": {
"message": "Ошибка синхронизации, необходимо войти повторно",
"lastAttemptMoment": "2016-09-06 21:41:00"
},
"fiscalMemory": {
"error": {
"code": "1003",
"message": "Критическая ошибка"
},
"notSendDocCount": 25,
"notSendFirstDocMoment": "2016-09-06 21:41:00"
}
}
}
Responses204
Headers
Content-Type: application/json
Обновить статус точки продаж
POST/state
Запрос на обновление статуса точки продаж.
Если поле, помеченое как Необходимое, отсутствует в запросе на обновление статуса точки продаж, то все JSON поля данного объекта (включая поля дочерних объектов), в котором находится данное поле, устанавливаются в null
-
environment — Информация об окружении
- device — Информация об устройстве
- os — Информация об операционной системе
- software — Информация о ПО
- name — Наименование ПО
Необходимое - vendor — Производитель
- version — Версия ПО
- name — Наименование ПО
- chequePrinter — Данные о ККТ
- vendor — Производитель
- name — Наименование ПО
Необходимое - fiscalDataVersion — Формат фискальных данных
- driver — Информация об используемом драйвере
- name — Наименование драйвера
- version — Версия драйвера
- fiscalMemory — Информация о фискальном накопителе
- fiscalDataVersion — Версия фискальной памяти
- fiscalValidityDate — Срок действия ФН
- firmwareVersion — Версия прошивки ККТ
- taxSystem — Системы налогообложения, зарегистрированные в ККТ. Если в ККТ зарегистрировано несколько систем налогообложения, строка будет содержать все названия через запятую
- frDate — Дата ККТ
- paymentTerminal — информация о платежном терминале
- acquiringType — информация о типе эквайера (например: inpas/payme)
-
state — Статус синхронизации
- sync — Состояние синхронизации точки продаж
- message — Информация о состоянии синхронизации
- lastAttemptMoment — Дата последней синхронизации
Необходимое
- fiscalMemory — Состояние фискального накопителя
- error — Информация об ошибке фискального накопителя
- code — Код ошибки фискального накопителя
- message — Описание ошибки
- notSendDocCount — количество не отправленных в ОФД документов
- notSendFirstDocMoment — Дата первого документа в очереди на отправку
- error — Информация об ошибке фискального накопителя
- paymentTerminal — информация о платежном терминале
Deprecated- acquiringType — информация о типе эквайера (например: inpas/payme)
- sync — Состояние синхронизации точки продаж
Создание товаров ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Создание Товара ¶
POST https://online.moysklad.ru/api/posap/1.0/entity/product
RequestsПример
Пример body запроса для создания нового товара.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/product/syncid/388bd178-800c-11e6-8a84-bae500000099"
},
"name": "товар",
"barcodes": [
"6756173856073261598132",
"41272104617235",
"123"
],
"price": 100.5,
"vat": 18,
"useParentVat": false,
"description": "Товар, который мы создаём через posap",
"article": "арт-10002",
"productFolder": {
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/productfolder/c380a8b1-745e-11e6-007d-ff4e0000005e"
}
},
"image": {
"filename": "cat.jpg",
"content": "/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/7gAmQWRvYmUAZMAAAAABAwAVBAMGCg0AACbxAABz6wAAtw4AARiwn/AHNXab18Tzkr39p3xlS3p7c5/9k="
}
}
Responses201
This response has no content.
Создать новый товар
POST/entity/product
Запрос на создание нового товара.
-
meta — внешний уникальный идентификатор в формате метаданных (мета с syncId)
Необходимое -
name — Наименование Товара
Необходимое -
barcodes — Массив штрихкодов товара
-
OnTap — Поле, показывающее является ли товар разливным.
-
price — Цена продажи
-
vat — НДС %
-
vatEnabled — Включен ли НДС для товара. С помощью этого флага для товара можно выставлять НДС = 0 или НДС = “без НДС”. (vat = 0, vatEnabled = false) -> vat = “без НДС”, (vat = 0, vatEnabled = true) -> vat = 0%
-
useParentVat — использовать НДС родительской группы
-
description — Описание Товара
-
article — Артикул
-
productFolder — Ссылка на группу Товаров
-
image — Изображение Товара
- filename — название файла с изображением
Необходимое - content — изображение, закодированное в BASE64
Необходимое
- filename — название файла с изображением
Создание контрагентов ¶
Для данного ресурса необходима авторизация по token. О том как получить данный token можно прочитать тут.
Варианты аутентификации с помощью token:
-
С помощью заголовков (Header):
Lognex-Pos-Auth-Token со значением токена, а также Header’ом Lognex-Pos-Auth-Cashier-Uid, значением которого будет uid кассира, от имени которого выполняется запрос. При этом Header Authorization НЕ указывается.- Пример:
- `Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b` - `Lognex-Pos-Auth-Cashier-Uid:employee@company` -
C помощью обычной BASIC авторизации с парой логин-пароль, где:
- логин — uid кассира, от имени которого выполняется запрос
- пароль — token точки продаж
- Пример:
Username: admin@myorgPassword: 9aa01067f9abc091ec6354fa73b5e05fda9e07fa
- Пример:
-
С помощью cookie:
- имя куки:
Lognex-Pos-Auth - значение:
<uid кассира>:<token точки продаж>- Пример:
name = Lognex-Pos-Authvalue = admin@myorg:4f2dc4d646bf0275de20b8f7f0b4f6fdda79cec0
- Пример:
- имя куки:
Создание контрагента ¶
POST https://online.moysklad.ru/api/posap/1.0/entity/counterparty
RequestsПример
Пример body запроса для создания нового контрагента.
Headers
Content-Type: application/json
Lognex-Pos-Auth-Token: 6ab89be1ae6ff147755625ee8da948e42612233b
Lognex-Pos-Auth-Cashier-Uid: employee@company
BodyСкрытьПоказать
{
"meta": {
"href": "https://online.moysklad.ru/api/posap/1.0/entity/counterparty/syncid/276a6f50-7ffd-11e6-8a84-bae50000005"
},
"name": "Иван Иванович",
"discountCardNumber": "101",
"phone": "+7 925 8762323",
"email": "email@example.com",
"descrption": "мой комментарий"
}
Responses201
This response has no content.
Создать Покупателя
POST/entity/counterparty
Запрос на создание нового контрагента.
-
meta -внешний уникальный идентификатор в формате метаданных (мета с syncId)
Необходимое -
name — Имя Контрагента
Необходимое -
discountCardNumber — Номер дисконтной карты
-
phone — Номер городского телефона
-
email — Адрес электронной почты
-
description — Комментарий
Generated by aglio on 17 Oct 2022
МойСклад JSON API
Общие Сведения
Аутентификация
Для того чтобы успешно взаимодействовать с JSON API онлайн-сервиса МойСклад, необходимо аутентифицироваться
в системе. МойСклад поддерживает аутентификацию по протоколу Basic Auth и с использованием токена доступа.
- При аутентификации по протоколу Basic Auth вместе с запросом
передается заголовокAuthorizationсо значением парылогин:пароль, закодированным в варианте RFC2045-MIME стандарта Base64. - При аутентификации с использованием токена доступа вместе с запросом передается заголовок
Authorizationсо значениемBearer.
Аутентификация по протоколу Basic Auth с автоматической генерацией соответствующего
заголовка и возможность указать заголовок для аутентификации по токену поддерживается во многих HTTP-клиентах, таких как Postman, curl и т.п.
Получение нового токена
Запрос на получение нового токена. Как и в других запросах, в заголовке Authorization пара логин:пароль указывается закодированной в варианте RFC2045-MIME стандарта Base64.
При генерации нового токена доступа сгенерированные до этого токены пользователя будут отозваны.
- access_token — токен для доступа
Замечания по разработке клиентских приложений
При разработке клиентского приложения необходимо учитывать следующие моменты:
- Структура ответов и типы полей поддерживаются нами неизменными
- Может быть добавлено новое поле без нарушения структуры ответа
- Может быть добавлен новый ресурс
Ограничения
Для JSON API установлены следующие ограничения:
- Не более 45 запросов за 3 секундный период от аккаунта
- Не более 5 параллельных запросов от одного пользователя
- Не более 20 параллельных запросов от аккаунта
- Не более 8Кб в заголовке запроса (url, User-Agent, Authorization и т.д.)
- Не более 20 Мб данных в одном запросе, отправляемом на сервер
- Не более 4 асинхронных задач в очереди на аккаунт
Также накладывается ограничение на максимальное число объектов (позиций, материалов, продуктов), передаваемых в одном массиве в запросе — не более 1000 элементов.
В случае, если количество элементов коллекции превышает максимально допустимое, произойдет ошибка со статусом 413.
Если количество позиций превышает максимально допустимое, то для дальнейшего пополнения позиций нужно будет работать со специальным ресурсом,
описание которого приведено в конкретной сущности.
Типы данных
| Название | Описание |
|---|---|
| Array(Type) | Массив объектов/значений. Type — тип элементов массива. |
| Boolean | Представляет значение true или false. |
| DateTime | Представляет строку в формате «гггг-мм-дд чч-мм-сс». Пример значения: "2016-08-23 15:21:09". Подробнее тут |
| Enum | Представляет строку, принимающую константное множество значений. |
| Float | Представляет дробное числовое значение. Пример значения: 200.8. |
| Int | Представляет целое числовое значение в диапазоне -2^31 – 2^31. Пример значения: 200. |
| Long | Представляет целое числовое значение в диапазоне -2^63 – 2^63. Пример значения: 1613766951558. |
| Meta | Представляет объект в формате Метаданных. |
| MetaArray | Объект с полями meta и rows, где rows — массив объектов. Элементы массива rows можно запросить, используя параметр запроса expand соответствующего поля. |
| Object | Представляет сущность с вложенными полями. |
| String(MaxLength) | Представляет текстовые данные в виде последовательности символов UTF-8. MaxLength — максимальная длина строки для конкретного поля. Пример значения: "Москва". |
| URL | Соответствующая стандартам FRC 3986 и RFC 3987 строка URI. Пример значения: "https://online.moysklad.ru/api/remap/1.2/entity/counterparty". |
| UUID | Предствляет строку в формате UUID. Пример значения: "12a8b923-692c-11e6-8a84-bae500000053". |
Метаданные
В JSON есть несколько видов Метаданных. Один из них — поле meta, которое фигурирует в большинстве
JSON представлений объектов, и содержит информацию об объекте или о выдаче, а также может использоваться в качестве ссылки
на другой объект. Поле meta представляет собой объект со следующими атрибутами:
| Название | Тип | Описание |
|---|---|---|
| href | URL | Ссылка на объект |
| metadataHref | URL | Ссылка на метаданные сущности (Другой вид метаданных. Присутствует не во всех сущностях) |
| type | String(255) | Тип объекта |
| mediaType | String(255) | Тип данных, которые приходят в ответ от сервиса, либо отправляются в теле запроса. В рамках данного API всегда равен application/json |
| uuidHref | URL | Ссылка на объект на UI. Присутствует не во всех сущностях. Может быть использована для получения uuid |
| downloadHref | URL | Ссылка на скачивание Изображения и миниатюр изображений. Данный параметр указывается только в meta для Изображения у Товара или Комплекта, а также в поле miniature везде, где используются изображения. |
Атрибуты расширенного объекта meta
Следующие атрибуты объекта meta появляются, как правило, в методах выдачи списка сущностей/строк отчета.
В них содержится информация о выдаче, пришедшей в ответ. В объектах meta, содержащих
данные лишь об одном объекте (например поле meta в объекте context) нижеперечисленные атрибуты не фигурируют.
| Название | Тип | Описание |
|---|---|---|
| size | Int | Размер выданного списка |
| limit | Int | Максимальное количество элементов в выданном списке. Максимальное количество элементов в списке равно 1000. |
| offset | Int | Отступ в выданном списке |
Метаданные сущности
Другой вид Метаданных. Представляет собой отдельный ресурс, содержащий информацию обо всех объектах сущностей данного типа.
Есть не у каждой сущности. Присутствует лишь у тех сущностей, у которых в данной документации описан ресурс «Метаданные <наименование_сущности>».
Как правило содержит информацию о вложенных сущностях, коллекциях и дополнительных полях.
JSON API позволяет получить метаданные всех сущностей с помощью метода /entity/metadata. Также можно ограничить
выборку, указав в фильтре type только необходимые сущности.
Мета коллекций
meta коллекций содержит все те же атрибуты, что и meta сущностей, однако, если в списке появляется больше
позиций, чем умещается на одной странице (size > limit) в объект meta добавляются след. поля:
| Название | Тип | Описание |
|---|---|---|
| nextHref | URL | Ссылка на следующую страницу сущностей. |
| previousHref | URL | Ссылка на предыдущую страницу сущностей. |
meta с такими полями можно встретить при выполнении запросов на получение всех объектов определенного типа
на учетной записи (например запрос всех отгрузок), а также при запросе всех позиций отдельного документа.
Обработка ошибок
СТРУКТУРА ОШИБОК
Ошибка в данном API представляет собой массив errors, содержащий объекты error, каждый из которых описывает отдельную ошибку.
СТРУКТУРА ОБЪЕКТА error
| Название | Тип | Описание |
|---|---|---|
| error | String(255) | Заголовок ошибкиОбязательное при ответе |
| parameter | String(255) | Параметр, на котором произошла ошибка |
| code | Int | Код ошибки (Если поле ничего не содержит, смотрите HTTP status code) |
| error_message | String(255) | Сообщение, прилагаемое к ошибке |
| moreInfo | link | Ссылка на документацию с описанием полученной ошибки |
| line | Int | Строка JSON, на которой произошла ошибка |
| column | Int | Координата элемента в строке line, на котором произошла ошибка |
| dependencies | Array(Meta) | Список метаданных зависимых сущностей или документов. Выводится при невозможности удаления сущности, документа, если имеются зависимости от удаляемой сущности, документа |
| meta | Meta | Метаданные сущности, документа на котором произошла ошибка |
Возвращаемые HTTP статусы ошибок и их значения:
| HTTP status code | Значение |
|---|---|
| 301 | Запрашиваемый ресурс находится по другому URL. |
| 303 | Запрашиваемый ресурс может быть найден по другому URI и должен быть найден с использоваием GET запроса |
| 400 | Ошибка в структуре JSON передаваемого запроса |
| 401 | Имя и/или пароль пользователя указаны неверно или заблокированы пользователь или аккаунт |
| 403 | У вас нет прав на просмотр данного объекта |
| 404 | Запрошенный ресурс не существует |
| 405 | http-метод указан неверно для запрошенного ресурса |
| 409 | Указанный объект используется и не может быть удален |
| 410 | Версия API больше не поддерживается |
| 412 | Не указан обязательный параметр строки запроса или поле структуры JSON |
| 413 | Размер запроса или количество элементов запроса превышает лимит (например, количество позиций, передаваемых в массиве positions, превышает 1000) |
| 429 | Превышен лимит количества запросов |
| 500 | При обработке запроса возникла непредвиденная ошибка |
| 502 | Сервис временно недоступен |
| 503 | Сервис временно отключен |
| 504 | Превышен таймаут обращения к сервису, повторите попытку позднее |
Также, вместе с телом ответа ошибки, вам могут прийти следующие заголовки (Headers):
- X-Lognex-Auth — расширенный код ошибки аутентификации
- X-Lognex-Auth-Message — сообщение об ошибке.
- X-Lognex-API-Version-Deprecated — дата отключения запрошенной версии API.
- Location — URL по которому доступен запрашиваемый ресурс (в случае ответа с кодом 301 или кодом 303)
Вы можете узнать лимит оставшихся запросов с помощью следующих заголовков
- X-RateLimit-Limit — количество запросов, которые равномерно можно сделать в течение интервала до появления 429 ошибки
- X-Lognex-Retry-TimeInterval — интервал в миллисекундах, в течение которого можно сделать эти запросы
- X-RateLimit-Remaining — Число запросов, которые можно отправить до получения 429 ошибки
- X-Lognex-Reset — время до сброса ограничения в миллисекундах. Равно нулю, если ограничение не установлено
- X-Lognex-Retry-After — время до сброса ограничения в миллисекундах.
Работа с дополнительными полями
Дополнительные поля позволяют расширить набор свойств некоторых сущностей путем добавления собственных типизированных полей.
JSON API позволяет создавать, обновлять и удалять дополнительные поля и их значения.
Список сущностей, у которых есть доп. поля:
- Договор
- Контрагент
- Юрлицо
- Проект
- Склад
- Сотрудник
- Товар
- Услуга (располагаются в метаданных Товаров)
- Комплект (располагаются в метаданных Товаров)
- Серия
- Все документы:
- Возврат покупателя
- Возврат поставщику
- Входящий платеж
- Заказ покупателя
- Заказ поставщику
- Исходящий платеж
- Оприходование
- Отгрузка
- Перемещение
- Приемка
- Приходный ордер
- Расходный ордер
- Розничная продажа
- Розничная смена
- Розничный возврат
- Списание
- Инвентаризация
- Счет покупателю
- Счет поставщика
- Счет-фактура выданный
- Счет-фактура полученный
- Прайс-лист
- Внутренний заказ
- Заказ на производство
- Тех. операция
- Полученный отчет комиссионера
- Выданный отчет комиссионера
Посмотреть все созданные доп. поля можно с помощью запроса на получение метаданных сущности.
Ответ будет содержать описание доп. полей в виде коллекции attributes, если указанная сущность поддерживает работу с доп. полями.
Атрибуты описания доп. поля
| Название | Тип | Описание |
|---|---|---|
| description | String(4096) | Описание доп. поля |
| id | UUID | ID доп. поляОбязательное при ответе Только для чтения |
| meta | Meta | Ссылка на метаданные доп. поляОбязательное при ответе |
| name | String(255) | Наименование доп. поляОбязательное при ответе Необходимо при создании |
| required | Boolean | Является ли доп. поле обязательнымОбязательное при ответе |
| show | Boolean | Показывать ли доп. поле на UI. Не может быть скрытым и обязательным одновременно. Только для операцийОбязательное при ответе |
| type | Enum | Тип доп. поляОбязательное при ответе Необходимо при создании После заполнения недоступно для изменения |
Дополнительные поля конкретной сущности — внутренняя коллекция attributes, которая
представлена в виде массива объектов доп. полей со значениями.
Атрибуты доп. поля со значением
| Название | Тип | Описание |
|---|---|---|
| id | UUID | ID соответствующего доп. поля |
| meta | Meta | Ссылка на метаданные доп. поля |
| name | String(255) | Наименование доп. поля |
| value | Зависит от типа, см. ниже | Значение, указанное в доп. поле |
Возможные значения типа доп. поля (поле type) и соответствующие им значения типа в JSON, а также
типы атрибута value в JSON объекта доп поля при соответствующем type:
| Тип атрибута | Значение поля type в JSON | Тип поля value в JSON |
|---|---|---|
| Дата | time | string |
| Справочник | {entityType} | object ** |
| Ссылка | link | string |
| Строка | string | string |
| Текст | text | string |
| Файл | file | string |
| Флажок | boolean | boolean |
| Число дробное | double | number |
| Число целое | long | number |
Дополнительные поля типов Файл и Флажок не могуть быть обязательными (поле required не может быть true).
При передаче значения null в поле value значение соответствующего доп. поля сбрасывается.
Дополнительные поля типа справочник
Отдельного упоминания заслуживает тип доп. поля «справочник». Значение type в представлении
объекта доп. поля будет разным в зависимости от того, справочник каких сущностей был
выбран при создании доп. поля. Ниже представлена таблица, в которой при выбранном типе доп. поля
«справочник» показаны значения поля type в зависимости от выбранного типа сущностей в справочнике.
Примеры значения type у доп. поля типа справочник
| Тип сущностей справочника | Значение поля type в JSON (entityType) |
|---|---|
| [Договор] | contract |
| [Контрагент] | counterparty |
| [Проект] | project |
| [Склад] | store |
| [Сотрудник] | employee |
| [Товар] | product |
| Имя_пользовательского справочника | customentity |
Если в качестве типа доп. поля выбран Пользовательский справочник, то в составе объекта данного
доп. поля появится новый атрибут customEntityMeta являющийся ссылкой на метаданные этого справочника.
Полный набор атрибутов доп. поля будет выглядеть следующим образом:
| Название | Тип | Описание |
|---|---|---|
| customEntityMeta | Meta | Ссылка на метаданные пользовательского справочника |
| description | String(4096) | Описание доп. поля |
| id | UUID | ID доп. поля |
| meta | Meta | Ссылка на метаданные доп. поля |
| name | String(255) | Наименование доп. поля |
| required | Boolean | Является ли доп. поле обязательным |
| show | Boolean | Показывать ли доп. поле на UI. Не может быть скрытым и обязательным одновременно. Только для операций |
| type | Enum | Тип доп. поля |
При выбранном типе доп. поля «справочник» атрибут value будет объектом со следующими свойствами:
| Название | Тип | Описание |
|---|---|---|
| meta | Meta | Метаданные сущности соответствующего справочника |
| name | String(255) | Наименование соответствующей сущности |
Обнуление доп. поля типа «справочник» происходит так же, как и при работе с другими доп. полями.
В запросе на обновление в коллекции attributes следует указать объект с id данного поля, а в качестве value передать null.
С коллекцией доп. полей можно работать только в контексте отдельной сущности. Доп. поля и их значения
можно передать в коллекции attributes в теле запроса как на создание, так и на обновление сущности.
В качестве указания доп. поля нужно использовать поле meta.
В переданном массиве объектов можно указать не все доп. поля — проинициализируются/обновятся только указанные.
Дополнительные поля типа файл
Для загрузки значения для доп. поля типа файл нужно в JSON при создании или обновлении для значения поля указать объект следующей структуры:
| Название | Тип | Описание |
|---|---|---|
| filename | String(255) | Имя файлаОбязательное при ответе Необходимо при создании |
| content | String | Байты файла, закодированные в base64Обязательное при ответе Необходимо при создании |
Пример указания значения для доп. поля типа файл есть в секции создания товара
Дополнительные поля сущностей
Запрос на получение дополнительных полей сущности.
Список доступных типов сущностей перечислен тут.
Структура объекта доп. поля подробно описана в секции Работа с дополнительными полями.
Параметры
| Параметр | Описание |
|---|---|
| limit | number (optional) Default: 1000 Example: 1000 Максимальное количество сущностей для извлечения.Допустимые значения 1 - 1000. |
| offset | number (optional) Default: 0 Example: 40 Отступ в выдаваемом списке сущностей. |
| entityType | string Example: demand тип сущностей, для которых осуществляется управление доп. полями. |
Получить все дополнительные поля для указанного типа
Запрос всех доп. полей для переданного типа сущностей.
Результат: Объект JSON, включающий в себя поля:
| Название | Тип | Описание |
|---|---|---|
| meta | Meta | Метаданные о выдаче |
| rows | Array(Object) | Массив JSON объектов, представляющих собой доп. поля. |
Создать дополнительные поля
Действие доступно только для пользователя с правами администратора.
Запрос на создание нового доп. поля для указанного типа сущностей.
Удалить дополнительные поля
Действие доступно только для пользователя с правами администратора.
Запрос на удаление нескольких доп. полей отгрузок.
Response 200 (application/json)
Успешное удаление доп. полей.
Дополнительное поле
Параметры
| Параметр | Описание |
|---|---|
| id | string (required) Example: 7bc578d8-6501-11e8-9464-e4de00000004 id доп. поля. |
Получить дополнительное поле
Запрос на получение отдельного доп. поля отгрузок с указанным id.
Изменить дополнительное поле
Действие доступно только для пользователя с правами администратора.
Запрос на обновление отдельного доп. поля для переданного типа сущностей.
Удалить дополнительное поле
Действие доступно только для пользователя с правами администратора.
Запрос на удаление доп. поля отгрузок с указанным id.
Response 200 (application/json)
Успешное удаление доп. поля.
Обновление значений дополнительных полей
Запрос на обновление коллекции доп. полей конкретной сущности.
Работа с позициями документов
API сервиса МойСклад позволяет оперировать с такими документами как Отгрузка, Заказ покупателя, Счет покупателю,
Розничная продажа, Полученный отчет комиссионера, Выданный отчет комиссионера, Оприходование,
Внутренний заказ, Инвентаризация, Списание, Перемещение, Прайс-лист,
Заказ на производство, Возврат поставщику, Заказ поставщику,
Розничный возврат, Возврат покупателя, Приемка, Счет поставщика. Перечисленные документы содержат позиции, работать с которыми можно как в составе отдельного документа,
так и с помощью специальных ресурсов для управления позициями документа.
Работа с позициями в рамках отдельного документа
При работе с позициями в рамках отдельного документа, их можно передавать как поле positions, представляющее собой массив позиций документа, в составе объекта, использующегося
в запросе на изменение или создание документа. В таком случае, массив позиций воспринимается как множество всех позиций документа
и полностью заменяет (в случае запроса на обновление) все уже существующие позиции в документе. В случае запроса на обновление, все позиции, которые существовали ранее в документе,
но не были переданы в теле запроса на обновление, будут удалены, все существующие позиции, id которых совпал с id передаваемых позиций в теле запроса, будут обновлены,
а новые позиции, которых ранее не было среди существующих позиций документа, будут добавлены в список позиций.
Работа с позициями документов с помощью специальных ресурсов
В JSON API предусмотрены специальные ресурсы для управления позициями документов. Эти ресурсы как правило доступны по следующему URI и с помощью них вы сможете удалять позиции из документа, сделав запрос с методом DELETE по URL соответствующего ресурса с указание id позиции:
/{код сущности документа, в составе JSON API}/{id отдельного документа}/positions/{id отдельной позиции}
При работе со специальными ресурсами можно запрашивать список всех позиций документа, создавать новые позиции, а также обновлять существующие. При создании новых позиций с помощью данных ресурсов, можно обходить ограничение в 1000 позиций на документ. Также, используя данный ресурс, можно управлять массовым обновлением позиций. Для изменения сведений по отдельным позициям необходимо использовать ресурсы управления отдельными позициями документа, которые доступны по URI:
/{код сущности документа, в составе JSON API}/{id отдельного документа}/positions/{id отдельной позиции}
Оба способа работы с позициями также описаны в документации по каждому из документов.
Также возможно массовое удаление позиций документа, используя метод POST по URL соответствующего ресурса. В теле запроса необходимо указать массив удаляемых позиций, указав поле meta у каждой из позиций.
Остатки и себестоимость в позициях документов
При запросе и обновлении документов есть возможность получать остатки и себестоимость позиций этих документов.
Для получения остатков и себестоимости в позициях документа в запросе нужно передать дополнительный параметр fields=stock.
Например,
/customerorder/{id документа}?fields=stock&expand=positions
Остатки и себестоимость можно получить по следующим документам: [Отгрузка, Заказ Покупателя, Розничная продажа, Счет покупателя, Заказ поставщика, Счет поставщика, Приемка, Возврат поставщику, Возврат покупателя, Розничный возврат]
Остатки и себестоимость для документов Отгрузка, Розничная продажа, Приемка, Возврат поставщику, Возврат покупателя, Розничный возврат расчитываются на момент поля moment в данных документах.
Для Заказа покупателя, Счета покупателя, Заказа поставщика, Счета поставщика рассчитываются на текущий момент времени.
Получить остатки с себестоимостью можно для следующих запросов:
- Получения списка операций
- Получение отдельной операции
- Получение позиций операции
- Получение отдельной позиции операции
- Обновление операции
- Обновление позиции
При составлении запроса на получение списка операций нужно дополнительно передать параметр limit со значением, не превышающем 100.
Например,
/customerorder?fields=stock&expand=positions&limit=100
Для возврата покупателя без основания и розничного возврата без основания поле cost будет отсутствовать в составе stock.
Назначение поля syncId
Сущностям, у которых среди атрибутов присутствует поле syncId, оно необходимо для того, чтобы в случае сбоя
при повторной отправке запроса на создание новой сущности не происходило дублирование объектов. Если в теле запроса
на создание сущности указать сгенерированный на клиенте syncId, то при повторной отправке этого же запроса (с тем же syncId) вместо создания
сущности с идентичными полями в ответ придет ранее созданная сущность.
Сущности, поддерживающие поле syncId, можно удалить, используя url типа /entity/{type}/syncid/{id}.
Создание и обновление объекта
При создании объекта достаточно заполнить только поля, помеченные Необходимое. Данные поля используются только при создании, при обновлении они не требуются.
Поля, помеченные Только для чтения, игнорируются при создании/обновлении объекта.
Создание и обновление нескольких объектов
При использовании метода POST вы можете указать в теле запроса вместо одной —
массив сущностей. Для этого, вам нужно передать массив (начать тело запроса с [ и закончить ]), который будет содержать JSON представления
объектов, которые вы хотите создать или обновить. Обновляемые сущности должны содержать идентификатор в виде метаданных.
Если при обновлении сущность не найдена, она будет создана.
Также возможно произвести массовое удаление сущностей, если при использовании метода POST указать url вида /entity/{type}/delete.
Лимит на создание, обновление и удаление объектов списком — 1000
Поддержка null
В рамках JSON API можно удалить значение из поля типа объект (если это поле не является обязательным, или же если данное поле в
основном интерфейсе может содержать пустое значение). Например: поле Договор(contract) в любом из документов. Сделать это можно передав в
запросе на обновление сущности в данное поле null. Например: { "contract": null }.
Удаление валюты из документов ({rate: null}) равносильно изменению валюты документа на валюту по умолчанию. В результате все
цены и суммы будут пересчитаны. Накладные расходы также будут пересчитаны, если они не были указаны явно.
Исключения:
- Структурированный адрес у
Контрагента,
Юрлица,
Точки продаж,
Склада,
Заказа покупателя,
Отгрузки не поддерживает удаления передачейnull.
Для удаления адреса необходимо в строковое поле передать пустую строку"". Конкретные строковые поля приведены в соответствующих разделах, переход в которые осуществляется по ссылкам выше.
Пустые поля
Если какое-то из полей сущности не было заполнено и, при этом оно не является обязательным, оно не будет выдано в JSON представлении этой сущности.
Формат даты и времени
В JSON API поля типа дата-время (момент времени) — это строка в формате:
- Без миллисекунд:
ГГГГ-ММ-ДД ЧЧ:мм:сс - С миллисекундами:
ГГГГ-ММ-ДД ЧЧ:мм:сс.мммВ этом формате возвращаются поля типа дата-время в ответах на запросы. - Без секунд:
ГГГГ-ММ-ДД ЧЧ:ммТолько для параметров фильтрации.
Минимальное значение: 1970-01-01 03:00:00
Следующие поля устанавливаются и выводятся в JSON API с точностью до минут, а именно со значением секунд и миллисекунд равным 00:
- incomingDate
- commisionPeriodStart
- commisionPeriodEnd
- certificateDate
- moment
- deliveryPlannedMoment
- paymentPlannedMoment
- firstDemandDate
- lastDemandDate
- дополнительное поле с типом Дата
Сортировка объектов
Для сортировки списка объектов можно использовать url параметр order.
Значение этого параметра — urlencoded строка с условиями сортировки, перечисленными через ;. (Все примеры ниже указаны без urlencoded для лучшей читаемости)
Каждое условие сортировки- это сочетание названия поля, запятой (опционально, если указывается направление сортировки), направления сортировки (опционально; может принимать значения asc и desc. Значение по умолчанию — asc).
Сортировка поддерживается для следующих типов полей: числовой, строковый, дата-время, логический и uuid.
Примеры запросов с сортировкой:
- https://online.moysklad.ru/api/remap/1.2/entity/supply?order=name
- https://online.moysklad.ru/api/remap/1.2/entity/product?order=code,desc
- https://online.moysklad.ru/api/remap/1.2/entity/product?order=name;code,desc
- https://online.moysklad.ru/api/remap/1.2/entity/product?order=name,desc;code,asc
Фильтрация выборки с помощью параметра filter
Для фильтрации выборки по нескольким полям можно использовать url параметр filter.
Значение этого параметра — urlencoded строка с поисковыми условиями, перечисленными через ;. Для использования самого символа ;
в текстовых фильтрах необходимо указывать два символа ;.
(Все примеры ниже указаны без urlencoded для лучшей читаемости)
Каждое поисковое условие — это сочетание названия поля, оператора и константы.
Фильтровать можно по всем полям, значения которых являются примитивными типами. Т.е. нельзя фильтровать поля-объекты и поля-массивы,
все остальные поля могут быть использованы в параметре filter.
- Допустимые операторы:
['=', '>', '<', '>=', '<=', '!=', '~', '~=', '=~']
Если в поисковом запросе несколько раз встречается условие типа «равенство» = примененное к одному и тому же полю,
то такое условие интерпретируется как совокупность условий, разделенных логическим оператором ИЛИ.
- Например условие
filter=sum=100;sum=150будет интерпретировано какsum=100 ИЛИ sum=150
или жеsum in (100, 150)
Если же встречается несколько условий вида «не равно» !=, наложенных на одну и ту же переменную, то они интерпретируются как совокупность
условий разделенных логическим оператором И.
- Например условие
filter=name!=0001;name!=0002будет эквивалентно следующим (взаимно эквивалентным) условиям :
name != 0001 И name != 0002илиname not in (0001, 0002)
Если на одно из полей наложено ограничение типа «равенство», а затем на него накладывается ограничение типа неравенство — в таком случае произойдет ошибка.
- Например условие
filter=sum=100;sum>99вызовет ошибку.
Допускается использование одновременно нескольких одинаковых операторов сравнения ['>', '<', '>=', '<='] для одного поля. При этом будет использовано лишь первое значение.
- Например условие
filter=sum>99;sum>100будет аналогично условиюfilter=sum>99.
В будущих версиях такое условие будет вызывать ошибку.
Фильтры, примененные к разным полям объединяются через логическое И, т.е. в запросе вида:
filter=sum=100;moment>2016-10-11 12:00:00выборка будет отфильтрована и по сумме и по дате.
Проверка на пустое значение
Если в строке фильтрации указать конструкцию вида: <имя_поля>=; то в выборку попадут только объекты, где
данное поле равно null (т.е. отсутствует значение), а если тип поля — строковое, то будет также выполнена проверка на пустую строку, т.е. поле=».
Конструкция <имя_поля>!=; выполнит проверку на присутствие значения. С помощью данной конструкции можно проверить наличие значения в ссылочном поле.
Фильтрация документов
Для фильтрации выборки документов можно использовать параметр isDeleted. Принимает значения true и false.
- При указании значения
trueвернутся все документы данного типа, находящиеся в корзине. - При указании значения
falseвернутся только неудаленные документы. - Можно вывести все документы: и удаленные, и нет, указав в запросе оба значения данного параметра:
filter=isDeleted=true;isDeleted=false.
Для фильтрации выборки напечатанных документов используется параметр printed. Принимает значения true и false.
Для фильтрации выборки отправленных документов используется параметр published. Принимает значения true и false.
Фильтрация сущностей
Для фильтрации выборки сущностей следует использовать параметр archived. Данный параметр принимает значения true и false.
- При указании значения
trueвернутся все сущности данного типа, находящиеся в архиве. - При указании значения
falseвернутся только не архивные сущности. - Можно вывести все сущности: и архивные, и нет, указав в запросе оба значения данного параметра:
filter=archived=true;archived=false.
Фильтровать по параметру archived можно только те сущности, у которых данный параметр присутствует в списке полей.
Фильтрация ссылочных полей
С помощью filter можно фильтровать ссылочные поля. Если в сущности присутствует ссылочное поле в виде метаданных,
можно использовать следующую конструкцию для того чтобы отфильтровать по этому полю выборку:
filter=<имя_поля>=<ссылка>
Пример ссылки:
http://online.moysklad.ru/api/remap/1.2/entity//
Вот несколько примеров:
filter=agent=http://online.moysklad.ru/api/remap/1.2/entity/counterparty/filter=ownAgent=http://online.moysklad.ru/api/remap/1.2/entity/organization/
Ссылочные поля, доступные для фильтрации:
- agent
- ownAgent
- owner
- group
- parent
- contract
- project
- organization
- store
- agentStore
- supplier
Для розничных операций («Розничная смена», «Розничная продажа», «Розничный возврат», «Внесение денег», «Выплата денег») также доступна фильтрация по:
- retailstore
Примеры запросов для фильтрации :
https://online.moysklad.ru/api/remap/1.2/entity/demand?filter=moment>2016-10-11 12:00:00;moment<2016-10-11 13:00:00;sum=100;name=0010;name=0011https://online.moysklad.ru/api/remap/1.2/entity/counterparty?filter=name=Иван;phone=89269269222;email=vanyan@mail.krut
Фильтрация по полям типа ID
С помощью filter можно фильтровать поля типа ID.
filter=<имя_поля>=
Пример ID:
94975104-3cad-11e8-1e44-bd4d00000084
Например:
filter=productid=94975104-3cad-11e8-1e44-bd4d00000084
Фильтрация по дополнительным полям
С помощью параметра filter можно фильтровать по дополнительным полям, добавив ссылку на доп. поле и значение фильтрации. Значение фильтрации может быть строкой, числом, датой или url, в зависимости от типа доп. поля.
Пример: filter=<ссылка на доп.поле>=<значение>
Доступные операторы для фильтрации доп. полей
| Название | Тип поля value в JSON | Значение поля type в JSON | Описание |
|---|---|---|---|
| Дата | string | time | =val, =, !=val, !=, =val;=val2, !=val;!=val2, =val;=, !=val;!=, <val, >val, >=val, <=val, >=val;<=val2 |
| Справочник | object | {entityType} | =val, =, !=val, !=, =val;=val2, !=val;!=val2, =val;=, !=val;!= |
| Ссылка | string | link | =val, =, !=val, !=, =val;=val2, !=val;!=val2, =val;=, !=val;!=, ~val, !~val, ~=val, =~val |
| Строка | string | string | =val, =, !=val, !=, =val;=val2, !=val;!=val2, =val;=, !=val;!=, ~val, !~val, ~=val, =~val |
| Текст | string | text | =val, =, !=val, !=, =val;=val2, !=val;!=val2, =val;=, !=val;!=, ~val, !~val, ~=val, =~val |
| Файл | string | file | Фильтрация не поддерживается |
| Флажок | boolean | boolean | =true, =false |
| Число дробное | number | duble | =val, =, !=val, !=, =val;=val2, !=val;!=val2, =val;=, !=val;!=, <val, >val, >=val, <=val, >=val;<=val2 |
| Число целое | number | long | =val, =, !=val, !=, =val;=val2, !=val;!=val2, =val;=, !=val;!=, <val, >val, >=val, <=val, >=val;<=val2 |
=val — фильтрация по значению
= — фильтрация по пустому значению
~ — частичное совпадение
!~ — частичное совпадение не выводится
~= — полное совпадение в начале значения
=~ — полное совпадение в конце значения
> — больше
< — меньше
>= — больше или равно
<= — меньше или равно
Примеры фильтрации:
filter=https://online.moysklad.ru/api/remap/1.2/entity/product/metadata/attributes/b83c12e7-42bf-11ec-0a80-08bb00000161=colorfilter=https://online.moysklad.ru/api/remap/1.2/entity/product/metadata/attributes/83386e05-51c0-11ec-0a83-0640000001bb>=2021-11-30 12:39:00filter=https://online.moysklad.ru/api/remap/1.2/entity/product/metadata/attributes/c06ac4a0-e27a-11ec-0a80-0ad600000393=https://online.moysklad.ru/api/remap/1.2/entity/employee/13268984-e24d-11ec-0a80-0ad600000367
Дополнительные фильтры
С помощью filter=state.name=<ИмяСтатуса> можно фильтровать документы по имени статуса.
state.name Параметр строкового типа. В отфильтрованную выборку попадут все документы данного типа, на которые выставлен статус с указанным именем.
Пример запроса с использованием фильтра state.name:
https://online.moysklad.ru/api/remap/1.2/entity/customerOrder?filter=state.name=Новый;state.name=Принят
Фильтр filter=assortment= позволяет фильтровать документы по наличию позиций с указанными сущностями ассортимента.
assortment — параметр, принимающий href ассортимента или группы товаров. Допустимые типы сущностей: Товар, Услуга, Модификация, Комплект, Группа товаров.
В выборку попадут те документы, которые содержат указанные сущности в числе позиций, или, в случае указания Групп товаров, одну из сущностей из указанных Групп товаров.
Пример запроса с использованием фильтра assortment:
https://online.moysklad.ru/api/remap/1.2/entity/demand?filter=assortment=https://online.moysklad.ru/api/remap/1.2/entity/product/166909e6-4a99-11e6-8a84-bae500000089
С помощью filter=accounts.accountnumber=<НомерСчета> можно фильтровать контрагентов по номеру счета.
accounts.accountnumber Параметр строкового типа. В отфильтрованную выборку попадут все контрагенты, у которых есть счет с указанным номером.
Пример запроса с использованием фильтра accounts.accountnumber:
https://online.moysklad.ru/api/remap/1.2/entity/counterparty?filter=accounts.accountnumber=123456;accounts.accountnumber=654321
Фильтрация по сущностям, на которые нет права просмотра
При фильтрации по сущности, на которую у текущего пользователя нет прав на просмотр в ответе придет пустой список.
Например, при фильтрации задач (task) по автору (author), который является сотрудником, которого не может просматривать текущий пользователь,
в ответ вернется пустой список задач.
Контекстный поиск
В JSON API можно осуществлять контекстный поиск среди списка сущностей определенного типа по их строковым полям. Для этого
используется URI параметр фильтрации search
-
search
Параметр фильтрации, с помощью которого можно осуществить поиск в списке сущностей. Поиск происходит по основным строковым полям сущностей данного
типа. Результатом поиска будет отсортированный по релевантности список сущностей данного типа, прошедших фильтрацию по переданной поисковой строке. В отличии от фильтрации выборки
с помощью параметра filter, при которой значения проверяются на точное совпадение указанным, при контекстном поиске проверка на совпадение не строгая.
Таким образом, если осуществлять фильтрацию вида../entity/?filter=name=120в отфильтрованную выборку попадут только те сущности, поле name
у которых имеет значение120и никакие другие. При контекстном поиске вида../entity/?search=120будут выведены как сущности с name равным
120, так и сущности, в имени (или в другом строковом поле) которых120является началом какого-то слова, например12003,пазл детский 1200 штуки т.п.
Причем, если ввести несколько слов../entity/?search=120 возврати поиск идет по полям name и description, то будут выведены как сущности с name равным1200и с description
равнымвозврат из-за деффекта, так и сущности с именем777с описаниемрозничный возврат на улице 120 летия.- Примеры запросов контекстного поиска (значения должны быть urlencoded):
https://online.moysklad.ru/api/remap/1.2/entity/project?search=реструктуризацияhttps://online.moysklad.ru/api/remap/1.2/entity/move?search=ул.Вавиловаhttps://online.moysklad.ru/api/remap/1.2/entity/counterparty?search=петров
Оператор фильтрации «подобие»
В JSON API для строковых полей есть специальный оператор фильтрации «подобие».
~обычное подобие. Ищет любое вхождение подстроки, следующей после оператора, в значении поля. Например,?filter=code~msнайдет все сущности, у которых в коде встречается подстрока «ms».~=левое подобие. Ищет соответствие по префиксу значения. Например?filter=code~=msнайдет все сущности, у которых код начинается на «ms».=~правое подобие. Ищет соответствие по постфиксу. Например?filter=code=~msнайдет все сущности, у которых код оканчивается на «ms».
Операторы подобия работают исключительно с полями строкового типа и не учитывают регистр. К полям типа uuid и дата-время они неприменимы.
Применение сохраненного фильтра
В JSON API есть возможность применения сохраненных фильтров. Подробное описание доступно в соответствующем разделе.
Ссылки на файлы
В JSON API для скачивания файла формируется редирект на временный URL файла. Для корректной работы необходимо поддерживать обработку редиректов.
Запрос на временный URL не требует авторизации.
По умолчанию время жизни временного URL равно одной минуте.
С помощью заголовка X-Lognex-Download-Expiration-Seconds можно изменить время жизни URL в секундах.
Текущее максимально возможное значение — 86400 секунд (24 часа).
Долгоживущие ссылки предназначены для экспорта. Использование этих ссылок на публично доступных web-страницах запрещено.
Замена ссылок объектами с помощью expand
В JSON API, в составе сущностей можно встретить ссылки на связанные объекты.
Ссылки выводятся в формате Метаданных. Для того, чтобы вместо ссылок получить связанные объекты,
не обязательно делать отдельные запросы для каждого из них. Вместо этого, вместе с запросом на получение сущности, нужно передать параметр expand.
В качестве значения данного параметра нужно перечислить через запятую все необходимые поля-ссылки,
на месте которых вы бы хотели видеть связанные объекты.
В результате запроса с таким параметром, в ответе вы получите объект с развернутыми вложенными объектами вместо ссылок.
К примеру, в документах, имеющих в составе поле agent, вместо ссылки на
контрагента будет выведен объект со всеми полями сущности «Контрагент», описанными тут.
Максимальный уровень вложенности expand : 3.
Expand разрешен только на размере выборки не более 100. Если указан больший лимит, но указан expand, то данный параметр будет игнорироваться.
Также expand можно применять для результатов операций создания и обновления.
- Ниже показаны примеры использования expand на Возврате покупателя. В примерах представлены только поля meta и demand.
Возврат без expand
Возврат с expand отгрузки
Передаем параметр expand=demand.
Expand с глубиной 2
Теперь развернем поле agent у вложенной в возврат отгрузки (demand).
В ответ придет возврат покупателя с развернутой отгрузкой (demand), внутри которой
будет развернутый объект контрагента (agent).
В данном запросе продемонстрирован уровень вложенности
параметра expand равный двум.
Создание отгрузки с expand
Редактирование отгрузки с expand
Контекст запроса сотрудника
Возвращает данные о сотруднике, от лица которого происходит запрос. Доступ к сущности осуществляется по эндпоинту /context/employee
Атрибуты сущности
| Название | Тип | Описание |
|---|---|---|
| accountId | UUID | ID учетной записиОбязательное при ответе Только для чтения |
| archived | Boolean | Добавлен ли Сотрудник в архивОбязательное при ответе Только для чтения |
| attributes | Array(Object) | Дополнительные поля СотрудникаТолько для чтения |
| cashiers | MetaArray | Массив кассиров. Подробнее тутТолько для чтения Expand |
| code | String(255) | Код СотрудникаТолько для чтения |
| created | DateTime | Момент создания СотрудникаОбязательное при ответе Только для чтения |
| description | String(4096) | Комментарий к СотрудникуТолько для чтения |
| String(255) | Электронная почта сотрудникаТолько для чтения |
|
| externalCode | String(255) | Внешний код СотрудникаОбязательное при ответе Только для чтения |
| firstName | String(255) | ИмяТолько для чтения |
| fullName | String(255) | Имя Отчество ФамилияТолько для чтения |
| group | Meta | Отдел сотрудникаОбязательное при ответе Только для чтения |
| id | UUID | ID СотрудникаОбязательное при ответе Только для чтения |
| image | Object | Фотография сотрудника. Подробнее тутТолько для чтения |
| inn | String(255) | ИНН сотрудника (в формате ИНН физического лица)Только для чтения |
| lastName | String(255) | ФамилияОбязательное при ответе Только для чтения |
| meta | Meta | Метаданные СотрудникаОбязательное при ответе Только для чтения |
| middleName | String(255) | ОтчествоТолько для чтения |
| name | String(255) | Наименование СотрудникаОбязательное при ответе Только для чтения |
| owner | Meta | Владелец (Сотрудник)Обязательное при ответе Только для чтения |
| permissions | Object | Перечисление пермиссий сотрудника. Подробнее тутОбязательное при ответе Только для чтения |
| phone | String(255) | Телефон сотрудникаТолько для чтения |
| position | String(255) | Должность сотрудникаТолько для чтения |
| shared | Boolean | Общий доступОбязательное при ответе Только для чтения |
| shortFio | String(255) | Краткое ФИОТолько для чтения |
| uid | String(255) | Логин СотрудникаТолько для чтения |
| updated | DateTime | Момент последнего обновления СотрудникаОбязательное при ответе Только для чтения |
Атрибуты вложенных сущностей
Многие атрибуты, представленные в этом запросе, за исключением поля permissions, повторяют атрибуты запроса Сотрудника, подробное описание которых можно посмотреть в соответствующем разделе.
Пермиссии сотрудника
Объект пермиссий сотрудника включает в себя пермиссии сущностей, часть тарифных и пользовательских пермиссий.
Поля объекта представляют собой отдельную пермиссию, где имя указывает на тип пермиссии, а значение представляет собой объект со значениями пермиссий в формате <тип пермиссии>: <значение>.
Пользовательские и тарифные пермиссии
| Название | Описание |
|---|---|
| admin | Является ли сотрудник админом |
| audit_dashboard | Просматривать аудит |
| company_crm | Просматривать показатели |
| customAttributes | Работа с доп. полями |
| dashboard | Просматривать показатели |
| dashboardMoney | Видеть остатки денег |
| viewCashFlow | Видеть движение денежных средств |
| pnl | Просматривать прибыльность |
| stock | Просматривать остатки по товарам |
| tariff_crm | Присутствует ли опция CRM на аккаунте |
При наличии соответствующей пермиссии объект содержит поле VIEW со значением ALL
Список пермиссий сущностей
Имеется три возможных типа значений пермиссий сущности: OPERATION, DICTIONARY, BASE.
Данные типы имеют следующие поля:
| типы значений пермиссий сущности | view | create | update | delete | approve | |
|---|---|---|---|---|---|---|
| OPERATION | + | + | + | + | + | + |
| DICTIONARY | + | + | + | + | + | — |
| BASE | + | + | + | + | — | — |
Описание пермиссий сущностей
| Название | Описание |
|---|---|
| view | Смотреть |
| create | Создавать |
| update | Редактировать |
| delete | Удалять |
| Печатать | |
| approve | Проводить |
Возможные значения полей view, create, update, delete, approve, print
| Название | На кого распространяется |
|---|---|
| OWN | Только свои |
| OWN_SHARED | Свои и общие |
| OWN_GROUP | Свои и отдела |
| OWN_GROUP_SHARED | Свои, отдела и общие |
| ALL | Все |
| Отсутствует | Ни на кого |
Пермиссии сущностей и документов, которые присутствуют в запросе
| Название | Возможные значения | Описание |
|---|---|---|
| accountAdjustment | DICTIONARY | Корректировка остатков на счете |
| bonusTransaction | OPERATION | Бонусные баллы |
| cashIn | OPERATION | Приходной ордер |
| cashOut | OPERATION | Расходной ордер |
| cashboxAdjustment | DICTIONARY | Корректировка остатков в кассе |
| commissionReportIn | OPERATION | Полученный отчет комиссионера |
| commissionReportOut | OPERATION | Выданный отчет комиссионер |
| company | DICTIONARY | Контрагенты |
| contract | DICTIONARY | Договоры |
| counterpartyAdjustment | DICTIONARY | Корректировка баланса контрагента |
| country | BASE | Страны |
| currency | BASE | Валюты |
| customEntity | BASE | Элементы пользовательских справочников |
| customerOrder | OPERATION | Заказ покупателям |
| demand | OPERATION | Отгрузка |
| employee | BASE | Сотрудники |
| enter | OPERATION | Оприходование |
| factureIn | OPERATION | Счета-фактуры полученные |
| factureOut | OPERATION | Счета-фактуры выданные |
| good | DICTIONARY | Товары и Услуги |
| internalOrder | OPERATION | Внутренние заказы |
| inventory | DICTIONARY | Инвентаризация |
| invoiceIn | OPERATION | Счет поставщику |
| invoiceOut | OPERATION | Счет покупателям |
| loss | OPERATION | Списание |
| move | OPERATION | Перемещение |
| myCompany | BASE | Юр. Лица |
| paymentIn | OPERATION | Входящий платеж |
| paymentOut | OPERATION | Исходящий платеж |
| prepayment | OPERATION | Предоплаты |
| prepaymentReturn | OPERATION | Возврат предоплаты |
| priceList | OPERATION | Прайс-лист |
| processing | BASE | Тех. операции |
| processingOrder | OPERATION | Заказ на производство |
| processingPlan | BASE | Тех. Карты |
| processingStage | BASE | Этапы производства |
| processingProcess | BASE | Тех. процессы |
| project | BASE | Проекты |
| purchaseOrder | OPERATION | Заказ поставщикам |
| purchaseReturn | OPERATION | Возврат поставщику |
| retailDemand | OPERATION | Продажи |
| retailDrawerCashIn | OPERATION | Внесения |
| retailDrawerCashOut | OPERATION | Выплаты |
| retailSalesReturn | OPERATION | Возвраты |
| retailShift | DICTIONARY | Смены |
| retailStore | BASE | Точка продаж |
| salesReturn | OPERATION | Возврат покупателя |
| supply | OPERATION | Приемки |
| task | Особый | Задачи |
| uom | BASE | Единицы измерения |
| warehouse | BASE | Склады |
| webhook | DICTIONARY | Вебхуки |
Пермиссии для задач
Пермиссии script для задач имеют следующие поля:
| Название | Описание | Возможные значения |
|---|---|---|
| view | Смотреть | Отсутствует, AUTHOR_OR_ASSIGNEE, ALL |
| create | Создавать | Отсутствует, ALL |
| update | Редактировать | Отсутствует, AUTHOR, AUTHOR_OR_ASSIGNEE, ALL |
| delete | Удалять | Отсутствует, AUTHOR, AUTHOR_OR_ASSIGNEE, ALL |
| done | Выполнять | Отсутствует, ASSIGNEE, AUTHOR_OR_ASSIGNEE, ALL |
Возможные значения полей view, create, update, delete, done для задач
| Название | На какие задачи распространяется |
|---|---|
| AUTHOR_OR_ASSIGNEE | Созданные пользователем и назначенные ему |
| ASSIGNEE | Назначенные |
| AUTHOR | Созданные пользователем |
| ALL | Возможность совершать действие над любыми задачами |
| Отсутствует | Нет прав ни на какие задачи |
Получить контекст сотрудника
Запрос на получение контекста запроса Cотрудника.
Серверные приложения
Для доступа к API может быть использован токен выданный Вендору при установке Серверного приложения пользователем МоегоСклада.
Получение контекста приложения
Возвращает параметры приложения, в рамках которого присходит запрос (по аналогии с контекстом Сотрудника).
Получение сущности установленного приложения
Возвращает параметры установленного приложения по id установленного на аккаунте приложения.
Параметры
| Параметр | Описание |
|---|---|
| id | string (required) Example: b58a6312-f958-11e9-ac12-000a00000020 id установленного на аккаунте приложения |
Фильтрация выборки с помощью параметра filter=updatedBy
Для фильтрации выборок сущностей по приложению укажите uid изменившего их приложения.
Uid приложения должен быть указан в виде:
.@
Пример запроса на получение списка входящих платежей:
https://online.moysklad.ru/api/remap/1.2/entity/paymentin?filter=updatedBy=test.moysklad@reqwy1
Фильтрация записей аудита с помощью параметра filter=uid
Для фильтрации аудита по приложению укажите uid приложения, которое изменяло сущности.
Uid приложения должен быть указан в виде:
.@
Пример запроса на получение списка записей:
https://online.moysklad.ru/api/remap/1.2/audit?filter=uid=test.moysklad@reqwy1
Фильтрация записей аудита с помощью параметра filter=application
Для фильтрации аудита по приложению укажите href приложения, которое изменяло сущности.
Href приложения должен быть указан в виде:
https://online.moysklad.ru/api/remap/1.2/entity/application/{id},
где id — UUID установленного на аккаунте приложения
Пример запроса на получение списка записей:
https://online.moysklad.ru/api/remap/1.2/audit?filter=application=https://online.moysklad.ru/api/remap/1.2/entity/application/46ea8005-2965-11e9-9ff4-34e80009ac49
Устаревшие версии JSON API
Версия API REMAP 1.1 устарела. Поддерживается и работает, но не развивается и не дополняется новыми возможностями.
Асинхронный обмен
В JSON API можно выполнить некоторые запросы асинхронно. Это позволяет проводить выгрузку больших коллекций,
не прибегая к листанию, если работа в реальном времени не критична.
Асинхронный обмен поддерживается не для всех запросов. Список запросов, которые могут быть выполнены асинхронно:
- Отчет Остатки
- Отчет Прибыльность
- Отчет Деньги
- Отчет Показатели продаж и заказов
- Отчет Показатели контрагентов (кроме выборочных показателей)
- Отчет Показатели
- Получение списка Контрагентов
- Получение Ассортимента
После выполнения запроса в асинхронном режиме результат доступен в течение 1 часа.
На количество задач в очереди и число одновременно выполняющихся асинхронных задач установлены ограничения.
На данный момент в процессе асинхронного выполнения запроса могут возникать дубли позиций коллекции,
если параллельно с подготовкой результата добавляются новые элементы.
Кроме того, элементы могут отсутствовать, если параллельно с обработкой Асинхронной задачи удаляются связанные с задачей сущности
(например, удаление товара в процессе подготовки Отчета Остатки).
Выполнение запроса в асинхронном режиме
Чтобы выполнить запрос в асинхронном режиме, нужно в параметрах строки запроса указать async=true.
Указание параметров строки запроса offset и limit, свойственных для синхронных запросов, является ошибкой.
Параметры
| Параметр | Описание |
|---|---|
| async | booleantrue — будет создана Асинхронная задача.false (по умолчанию) — запрос будет выполнен в синхронном режиме |
Результатом выполнения запроса будет создание Асинхронной задачи, которая будет помещена в очередь. В ответе будут содержаться заголовки, содержащие URL статуса и результата задачи.
| Параметр | Описание |
|---|---|
| Location | URL результата выполнения Асинхронной задачи. |
| Content-Location | URL статуса Асинхронной задачи. |
Асинхронная задача
Асинхронная задача содержит в себе информацию о создателе задачи, ее текущем статусе, наличии ответа и другую информацию.
Атрибуты сущности
| Название | Тип | Описание |
|---|---|---|
| accountId | UUID | ID учетной записиОбязательное при ответе Только для чтения |
| deletionDate | DateTime | Дата, после которой результат выполнения задачи станет недоступен. Содержится в ответе, если поле state имеет значение DONEТолько для чтения |
| errors | Object | json ошибки апи, если поле state имеет значение API_ERRORТолько для чтения |
| id | UUID | ID Асинхронной задачиОбязательное при ответе Только для чтения |
| meta | Meta | Метаданные Асинхронной задачиОбязательное при ответе |
| owner | Meta | Пользователь или приложение, которые создали Асинхронную задачуОбязательное при ответе Только для чтения |
| request | String | URL запроса, по которому создана Асинхронная задачаОбязательное при ответе Только для чтения |
| resultUrl | String | Ссылка на результат выполнения задачи. Содержится в ответе, если поле state имеет значение DONEТолько для чтения |
| state | Enum | Статус выполнения Асинхронной задачи. Подробнее тутОбязательное при ответе Только для чтения |
Статус выполнения Асинхронной задачи
| Значение | Описание |
|---|---|
| PENDING | Задача находится в очереди |
| PROCESSING | Задача находится в обработке, результат еще не готов |
| DONE | Задача выполнена успешно |
| ERROR | Задача не была выполнена в результате внутренней ошибки. В этом случае нужно попробовать запустить задачу заново |
| CANCEL | Задача была отменена |
| API_ERROR | Задача была завершена с ошибкой апи |
Статусы Асинхронных задач
Запрос на получение списка статусов выполнения Асинхронной задачи.
Результат содержит статусы Асинхронных задач за последнюю неделю.
Доступна фильтрация по полям state, request, deletionDate.
Получение статуса Асинхронной задачи
Запрос на получение статуса выполнения Асинхронной задачи.
Параметры
| Параметр | Описание |
|---|---|
| id | string (required) Example: 498b8673-0308-11e6-9464-e4de00000089 id Асинхронной задачи. |
Получение результата выполнения Асинхронной задачи
Response 200
Успешный запрос. Результат — файл с результатом выполнения Асинхронной задачи в формате json.Пример полученного отчета
{
"context": {
"employee": {
"href": "https://online.moysklad.ru/api/remap/1.2/context/employee",
"type": "employee",
"mediaType": "application/json"
}
},
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/report/stock/bystore?async=true",
"type": "stockbystore",
"mediaType": "application/json",
"size": 2
},
"rows": [
{
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/product/c02e3a5c-007e-11e6-9464-e4de00000006?expand=supplier",
"metadataHref": "https://online.moysklad.ru/api/remap/1.2/entity/product/metadata",
"type": "product",
"mediaType": "application/json"
},
"stockByStore": [
{
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/store/86c857d6-0302-11e6-9464-e4de00000072",
"metadataHref": "https://online.moysklad.ru/api/remap/1.2/entity/store/metadata",
"type": "store",
"mediaType": "application/json"
},
"name": "Не основной склад",
"stock": -30,
"reserve": 0,
"inTransit": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/store/850ee995-f504-11e5-8a84-bae500000160",
"metadataHref": "https://online.moysklad.ru/api/remap/1.2/entity/store/metadata",
"type": "store",
"mediaType": "application/json"
},
"name": "Основной склад",
"stock": 0,
"reserve": 0,
"inTransit": 0
}
]
},
{
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/product/cc99c055-fa34-11e5-9464-e4de00000069?expand=supplier",
"metadataHref": "https://online.moysklad.ru/api/remap/1.2/entity/product/metadata",
"type": "product",
"mediaType": "application/json"
},
"stockByStore": [
{
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/store/86c857d6-0302-11e6-9464-e4de00000072",
"metadataHref": "https://online.moysklad.ru/api/remap/1.2/entity/store/metadata",
"type": "store",
"mediaType": "application/json"
},
"name": "Не основной склад",
"stock": 0,
"reserve": 0,
"inTransit": 0
},
{
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/store/850ee995-f504-11e5-8a84-bae500000160",
"metadataHref": "https://online.moysklad.ru/api/remap/1.2/entity/store/metadata",
"type": "store",
"mediaType": "application/json"
},
"name": "Основной склад",
"stock": 4,
"reserve": 0,
"inTransit": 0
}
]
}
]
}
Запрос на получение результата выполнения Асинхронной задачи.
Параметры
| Параметр | Описание |
|---|---|
| id | string (required) Example: 498b8673-0308-11e6-9464-e4de00000089 id Асинхронной задачи. |
Если статус задачи имеет значение DONE и время жизни результата не истекло, ответом на запрос будет перенаправление на ссылку загрузки результата выполнения Асинхронной задачи.
С момента получения ссылка действительна 5 минут.
Большинство HTTP-клиентов осуществляют перенаправление автоматически, но если ваш клиент этого не делает,
то результат выполнения запроса будет иметь статус 302 FOUND с заголовком Location, в котором и содержится ссылка на результат.
После наступления даты, указанной в поле deletionDate, результат становится недоступен.
Если статус задачи имеет значение API_ERROR, то в json ответе на запрос получения результата задачи будет указана ошибка,
аналогичная той, которую вернул синхронный вызов ресурса.
Вебхуки Асинхронной задачи
Настроить вебхуки для асинхронной задачи можно аналогично остальным сущностям, но есть ряд исключений:
- для асинхронных задач нельзя настроить вебхук на событие удаления, так как удаление асинхронных задач происходит автоматически
- для асинхронных задач в вебхуках появляется новое событие
PROCESSED. Оно означает, что задача завершилась и можно узнать ее статус - вебхук на обновление приходит, когда меняется статус асинхронной задачи
При формировании запроса на создание вебхука в поле entityType нужно указать тип async — асинхронная задача.
На указанный в поле url адрес при срабатывании вебхука будет приходить сообщение, у которого в meta в поле href указан url
на получение статуса асинхронной задачи.
Отмена Асинхронной задачи
Response 204
Успешная отмена задачи
Запрос на отмену находящейся в очереди PENDING или в процессе обработки PROCESSING Асинхронной задачи.
Параметры
| Параметр | Описание |
|---|---|
| id | string (required) Example: 498b8673-0308-11e6-9464-e4de00000089 id Асинхронной задачи. |
Ошибки
В данном разделе приведены коды ошибок JSON API и их описание
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 1000 | Элемент URI не является идентификатором | Вероятнее всего вы пытаетесь обратиться к несуществующему ресурсу. Проверьте указанный вами URI, проверьте правильно ли вы указали ключевое слово сущности и полностью ли вы скопировали ID. |
| 1001 | Не указан идентификатор метаданных | При обращении к пользовательскому справочнику в URI должен быть указан корректный {id} метаданных данного справочника. Его можно уточнить, сделав запрос к метаданным настроек компании companysettings/metadata в массиве customEntities. |
| 1002 | Неопознанный путь: {путь} | Не удалось определить ресурс, по которому был сделан запрос. Проверьте URI по которому совершается запрос. |
| 1003 | Отсутствуют метаданные для типа {тип} | Для данного ресурса нельзя получить метаданные. Еще раз проверьте документацию по сущности данного типа и убедитесь в наличии ресурса «Метаданные <наименование_сущности>» |
| 1004 | Ошибка при формировании результата: {текст ошибки} | При разборе переданного объекта произошла ошибка. Проверьте корректность переданных данных. |
| 1005 | Неизвестный тип: {тип} | Тип сущности, указанный в URI, не может быть найден. Проверьте корректность ключевого слова. |
| 1006 | Создание объектов с указанным идентификатором запрещено | При создании сущности не нужно указывать в URI запроса id сущности. Запрос на создание должен происходить по тому же URI, по которому происходит запрос на получение списка сущностей данного типа. |
| 1007 | Неизвестное поле: {имя поля} | При обновлении сущности указанное поле не было найдено. Проверьте правильность написания имени поля, а также убедитесь что данное поле присутствует среди атрибутов сущностей этого типа. |
| 1008 | Ошибка при загрузке объекта с типом ‘{тип}’ и идентификатором ‘{id}’ | Не удалось загрузить сущность с данным id. Проверьте корректность id. Убедитесь что сущность с данным id присутствует среди списка сущностей данного типа (возможно сущность с данным id была удалена). |
| 1009 | Редактирование объектов типа ‘{тип}’ не поддерживается | Сущность которую вы пытаетесь обновить — только для чтения. Изменение ее атрибутов не предусмотрено. |
| 1010 | Удаление объектов типа ‘{тип}’ не поддерживается | Нельзя удалить сущность данного типа. Проверьте, есть ли среди операций данного типа сущностей операция удаления. |
| 1011 | Создание объектов типа ‘{тип}’ не поддерживается | Нельзя создать сущность данного типа. Проверьте, есть ли среди операций данного типа сущностей операция создания. |
| 1012 | Не указан идентификатор объекта | Для операций обновления и удаления необходимо указывать id сущности, над которой производится операция. |
| 1013 | Удаление вложенных объектов не поддерживается | Невозможно удалить вложенные сущности, такие как счета контрагентов. Если вы хотите обнулить значение поля: попробуйте передать null в качестве значения данного поля в запроса не обновление. В случае с позициями документов — вы можете передать пустой массив. Это будет эквивалентно удалению сразу всех позиций из документа. |
| 1014 | Неверное значение ‘{значение}’ параметра фильтрации ‘{имя параметра}’ | Вы указали значение неподдерживаемого типа для данного параметра (например передали int вместо boolean). Возможно ошибка в неправильном формате даты и времени. |
| 1015 | Указана неверная версия в url: {url} | Проверьте необходимую версию API в url по которому вы делаете запрос. online.moysklad.ru/api/1.x/... Версии API различаются между собой по количеству доступных ресурсов, а также по способу обработки данных и именно поэтому являются важным элементом идентификации того или иного ресурса. |
| 1016 | Доступ запрещен: у вас нет прав на просмотр данного объекта | Администратор учетной записи ограничил ваши права на просмотр сущностей данного типа. Свяжитесь с ним для выяснения подробностей. |
| 1017 | Доступ запрещен: у вас нет прав на редактирование данного объекта | Администратор учетной записи ограничил ваши права на редактирование сущностей данного типа. Свяжитесь с ним для выяснения подробностей. |
| 1018 | Доступ запрещен: у вас нет прав на удаление данного объекта | Администратор учетной записи ограничил ваши права на удаление сущностей данного типа. Свяжитесь с ним для выяснения подробностей. |
| 1019 | Чтение поля ‘{имя поля}’ не поддерживается | Невозможно чтение поля данного типа. |
| 1020 | Родительский объект с типом ‘{тип}’ и идентификатором ‘{id}’ не существует | Неверный id родительской сущности. |
| 1021 | Объект с типом ‘{тип}’ и идентификатором ‘{id}’ не найден | Не удалось загрузить сущность данного типа с данным id. Проверьте корректность id. Убедитесь что сущность с данным id присутствует среди списка сущностей данного типа (возможно сущность с данным id была удалена) |
| 1022 | Ошибка при создании объекта | Ошибка в процессе создания сущности данного типа. |
| 1023 | Ошибка сохранения объекта: дочерний объект с типом ‘{тип}’ и идентификатором ‘{id}’ уже используется и не может быть удален | Невозможно удалить объект во вложенной коллекции т.к. он уже где-то используется. Например, может возникнуть при удалении позиции из документа, по которому есть возврат, в котором присутствует данная позиция. |
| 1024 | Ошибка сохранения объекта: изменять стандартные объекты запрещено | Вы пытаетесь изменить сущность, которая создается по умолчанию в сервисе МойСклад сразу после регистрации учетной записи. Это делать запрещено. (Например изменение стандартных стран и единиц измерения) |
| 1025 | Ошибка удаления объекта: удалять стандартные объекты запрещено | Удаление стандартных объектов, таких как стандартные единицы измерения, валюты, страны и т.п. не поддерживается. |
| 1026 | Обновление объектов типа ‘{тип}’ не поддерживается | Обновление объектов указанного типа не поддерживается в JSON API. |
| 1027 | Запрос не содержит объектов | Тело запросов на создание/обновление должно представляться в виде объекта либо массива JSON. |
| 1028 | Объект уже используется и не может быть удален | Сущность используется в сущностях и документах, перечисленных в ошибке, поэтому ее нельзя удалить. Например нельзя удалить товар, который используется в качестве позиции в каком-либо документе. |
| 1029 | Шаблоны для типа ‘{тип}’ не поддерживаются | Невозможно создать предзаполненную сущность данного типа. |
| 1030 | Поле для фильтрации ‘{имя поля}’ может быть указано только один раз | Убедитесь, что каждое поле используется в параметрах фильтрации лишь единожды. |
| 1031 | Ошибка генерации шаблона: невозможно создать шаблон объекта на основе указанных полей | Невозможно создать предзаполненную сущность данного типа на основе другой. |
| 1032 | Ошибка фильтрации: характеристика ‘{имя/id характеристики}’ не существует | У данной модификации нет характеристики с указанным id. Проверьте правильность введенного id и список характеристик для данной модификации. |
| 1034 | Ошибка фильтрации: {текст ошибки} | Ошибка в процессе обработки фильтров. Проверьте переданные фильтры на валидность. Подробнее о параметрах фильтрации вы можете прочесть в соответствующем разделе документации или в документации по сущности, к которой вы пытаетесь применять фильтры. |
| 1035 | Ошибка фильтрации: неверный формат даты параметра фильтрации | Проверьте значение даты и времени. Оно должно соответствовать формату yyyy-MM-dd HH:mm:ss |
| 1036 | Ошибка при формировании метаданных | Описание Внутренняя ошибка сервиса. Попробуйте повторить запрос. |
| 1037 | Неверно указан Content-Type запроса | Описание Возможно ресурс, к которому вы обращаетесь, требует form-data вместо JSON (или наоборот). |
| 1038 | Ошибка в адресе запроса | Описание Проверьте, указываете ли вы валидный адрес запроса. |
| 1039 | Операция {HTTP метод} не поддерживается для данного ресурса | Описание Проверьте метод, с которым вы обращаетесь к ресурсу. Убедитесь, что в документации ресурса этот метод описан и его можно применить. |
| 1040 | Неверно заданы параметры запроса | Описание Один или несколько параметров запроса заданы некорректно. Проверьте формат параметров согласно документации. |
| 1041 | Неверное значение ‘{значение}’ параметра фильтрации ‘{имя параметра}’, допустимые значения: ‘{список допустимых значений}’ | Значение параметра должно входить в список допустимых значений. |
| 1042 | Неверное значение ‘{значение}’ параметра сортировки ‘{имя параметра}’, допустимые значения: ‘{список допустимых значений}’ | Значение параметра должно входить в список допустимых значений. |
| 1043 | Ваш тарифный план не позволяет работать с CRM | Ваш тариф не подходит для работы с CRM. |
| 1044 | Превышен максимальный размер запроса | Максимальный размер запроса 10 МБ. |
| 1045 | Доступ запрещен: у вас нет прав на создание данного объекта | Администратор учетной записи ограничил ваши права на создание сущностей данного типа. Свяжитесь с ним для выяснения подробностей. |
| 1046 | Дочерняя сущность не может изменять свою родительскую сущность | Возможно вы попробовали подставить позицию(и) из одного документа в другой (Попробуйте удалить meta, id, accountId из документа и позиции(й)). |
| 1047 | Вы не можете обновить поле syncId в запросе на обновление сущности | Поле syncId может быть указано только при создании сущности. Его нельзя изменить в запросе на обновление. |
| 1048 | Превышено ограничение на количество попыток проверки имени и пароля | Превышено количество попыток аутентификации с некорректными данными. Попробуйте повторить запрос позднее с корректными логином и паролем или токеном. |
| 1052 | Неверный формат UUID | Проверьте сгенерированные вами UUID на корректность. |
| 1056 | Ошибка аутентификации: {текст ошибки аутентификации} | Проверьте указанные для аутентификации данные. Возможно для данного ресурса требуется другой вид аутентификации. |
| 1058 | Не удалось декодировать параметры запроса из URL | Проверьте запрос. Вероятно, в строке присутствуют параметры, которые не были urlencoded. |
| 1059 | Некорректный сервер в идентификаторе объекта: ‘{идентификатор}’ | Идентификатор объекта содержит сервер, отличный от online.moysklad.ru. |
| 1060 | Некорректный тип данных в meta сущности, поле type | Тип данных указанный в поле type метаданных сущности не совпадает с ожидаемым типом. |
| 1061 | Отсутствует доступ к API для данного пользователя | Отсутствует доступ к API для данного пользователя — обратитесь к администратору аккаунта. |
| 1062 | Неверное значение заголовка ‘Accept’. Поддерживается только значение ‘application/json;charset=utf-8’ | Значение заголовка ‘Accept’ может быть только application/json;charset=utf-8. |
| 1063 | Ошибка сортировки: неизвестное поле ‘{название поля}’ или сортировка для данного поля не поддерживается | Сортировка для данного поля не поддерживается. Возможно, поле не входит в список поддерживаемых полей. |
| 1064 | Доступ запрещен: у вас нет прав на печать данных объектов | Администратор учетной записи ограничил ваши права на печать сущностей данного типа. Свяжитесь с ним для выяснения подробностей. |
| 1065 | Ошибка сохранения объекта: объект уже изменен/удален в параллельном запросе | Ошибка возникает при попытке изменить объект из нескольких параллельных запросов к API. |
| 1066 | Ошибка удаления объекта: объект нельзя переместить в корзину | Удаление в корзину возможно только для документов. Проверьте, является ли удаляемый объект документом. |
| 1067 | Ошибка удаления объекта: использование корзины отключено | Отключена опция для удаления документов в корзину — обратитесь к администратору аккаунта. |
| 1068 | Точка продаж отключена. Обратитесь к администратору аккаунта | Убедитесь, что Ваш тарифный план поддерживает работу с точками продаж. |
| 1069 | Ошибка запроса: несовместимые параметры запроса: ‘{несовместимые параметры}’ | Не все параметры запроса могут быть применены одновременно, они перечисленны в тексте ошибки: ‘{несовместимые параметры}’. Следует исключить параметры из запроса, учитывая совместимость. |
| 1070 | Ошибка: ваш тарифный план не позволяет вам работать с данным ресурсом | На вашем тарифном плане работа с указанным ресурсом недоступна. |
| 1071 | Превышено ограничение на количество попыток регистрации | Вы попытались зарегистрироваться слишком много раз. |
| 1072 | Превышено ограничение на количество регистраций с указанного адреса | Вы попытались зарегистрироваться слишком много раз. |
| 1073 | Превышено ограничение на одновременное количество запросов | От вас поступает слишком много параллельных запросов в единицу времени. |
| 1074 | Сервис временно недоступен, ведутся технические работы | На сервере проводятся технические работы. |
| 1075 | Доступ запрещен: у вас нет прав на редактирование поля {имя поля} | Вы попытались изменить поле, для которого требуется более высокий уровень доступа. |
| 1076 | Ошибка при работе с файлами: у файла отсутствует имя | Поле filename у Файла должно быть заполнено. |
| 1077 | Ошибка при работе с файлами: у файла отсутствует контент | Поле content у Файла должно быть заполнено. |
| 1078 | Ошибка при работе с файлами: невозможно преобразовать поле content в изображение | Ошибка при преобразовании файла с расширением jpg или png в формате base64 в изображение. |
| 1079 | Ошибка при работе с файлами: размер файла превышает максимально допустимый(10 мб) | Максимальный размер файла не может превышать 10 мб. |
| 1080 | Ошибка при работе с файлами: число файлов не может быть больше 100 | Максимальное количество файлов, загруженных для одного объекта, не может превышать 100 штук. |
| 1081 | Ошибка при работе с файлами: недостаточно места в хранилище | Место в хранилище, выделенное для вашего аккаунта, закончилось. |
| 1082 | Ошибка при работе с файлами: нельзя загрузить больше 10 файлов за раз | Максимальное количество файлов загружаемых одним запросом не может превышать 10 штук. |
| 1083 | Ошибка при формировании результата: {текст ошибки} | При формировании ответа произошла ошибка на стороне сервера. Попробуйте повторить запрос заново. |
| 1084 | Неверное значение ‘{значение}’ параметра запроса ‘{параметр}’, допустимые значения: ‘{список допустимых значений}’ | Вы указали неверное значение для данного параметра. Проверьте соответствие переданного значения допустимым. |
| 1085 | Используемый тип авторизации не содержит информацию о пользователе | Необходим иной способ авторизации, содержащий в себе информацию о пользователе. Например, basic или токен |
| 1090 | Дополнительный справочник {название справочника} используется в: {названия документов} и не может быть удален | Дополнительный справочник используется как дополнительное поле в документах, перечисленных в ошибке. |
| 1999 | Неизвестная ошибка | Произошла непредвиденная ошибка. Пожалуйста, обратитесь в поддержку сервиса МойСклад подробно изложив условия при которых эта ошибка произошла. |
Ошибки формата
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 2000 | Ошибка формата: отсутствует начало объекта | В данном месте ожидалось начало объекта. Проверьте тело запроса. |
| 2001 | Ошибка формата: входящий запрос не соответствует формату JSON | Данные должны быть отправлены в формате JSON. Если это так, а ошибка все-таки возникает — попробуйте добавить Header Content-Type со значением application/json. |
| 2002 | Ошибка формата: неименованное внутреннее поле типа массив | Проверьте указали ли вы наименование поля типа массив. Возможно присутствуют лишние открывающиеся/закрывающиеся скобки в теле запроса. |
| 2003 | Ошибка формата: неименованное внутреннее поле типа объект | Проверьте указали ли вы наименование поля типа «объект». Возможно присутствуют лишние открывающиеся/закрывающиеся скобки в теле запроса. |
| 2004 | Ошибка формата: вложенные массивы недопустимы | В рамках JSON API не обрабатываются массивы массивов. Проверьте тело запроса на корректность. |
| 2005 | Ошибка формата: входящий JSON должен начинаться либо с объекта, либо с массива | Отсутствует открывающаяся фигурная/квадратная скобка в начале тела запроса. |
| 2006 | Ошибка формата: слишком большая вложенность объектов | Максимальная глубина вложенности в JSON API — 10. Скорректируйте тело запроса и убедитесь, что это ограничение не нарушается. |
| 2007 | Ошибка формата: слишком большое число вложенных объектов | В JSON API в массиве может содержаться не более 1000 объектов. |
| 2008 | Ошибка формата: запрос на шаблон не должен содержать массив | С помощью запроса по ресурсу {entity_name}/new можно создать только 1 шаблон. Передача массива значений не поддерживается. |
| 2009 | Ошибка формата: запрос на создание/обновление одной сущности не должен содержать массив | При обновлении отдельной сущности подразумевается, что в теле запроса будет передано ее новое представление (одно). В теле запроса должен быть один корневой объект. |
| 2010 | Ошибка формата: отсутствует href для meta поля ‘{доп. сообщение}’ | В переданном объекте метаданных отсутствует поле href. Проверьте тело запроса. |
| 2011 | Ошибка формата: отсутствует type для meta поля ‘{доп. сообщение}’ | В переданном объекте метаданных отсутствует поле type. Проверьте тело запроса. |
| 2012 | Ошибка формата: неизвестный type для meta поля ‘{доп. сообщение}’ | В переданном объекте метаданных указан неизвестный тип. Проверьте тело запроса. Возможно вы указываете неверное ключевое слово для сущности. Проверьте документацию по данной сущности и убедитесь в правильности передаваемого type. |
| 2013 | Ошибка формата: неправильное значение href для meta поля ‘{доп. сообщение}’ | Переданный href указывает на несуществующий объект. Убедитесь в корректности ссылки. Ошибка может быть в версии API, типе ресурса (entity/pos/report), ключевом слове сущности/(отчета), id сущности. |
| 2014 | Ошибка формата: отсутствует meta для поля ‘{имя поля}’ | Для полей типа метаданных (ссылок на другие связанные объекты) необходимо значение в виде объекта, содержащего meta. |
| 2015 | Ошибка формата: отсутствует id для поля ‘{имя поля}’ | При передаче вложенных сущностей в виде полей необходимо указывать id этих сущностей. |
| 2016 | Ошибка формата: значение поля ‘{имя поля}’ не соответствует типу {тип поля} | Для указанного поле передано значение неверного типа. Исправьте тело запроса. |
| 2017 | Ошибка формата: неизвестная ошибка | Не удалось однозначно классифицировать ошибку. Убедитесь что формат передаваемых вами данных соответствует требуемому. Посмотрите примеры запросов в документации по используемой вами сущности. |
| 2018 | Ошибка формата: отсутствует поле для meta |
Вы не указали обязательное поле объекта meta. |
| 2021 | Ошибка формата: в объектах типа ‘<тип>’ полю ‘<наименование поля>’ не может быть присвоен объект типа <тип объекта> | Для сущностей данного типа у указанного поля не может быть выставлено указанное значение. Например, нельзя полю agent отгрузки выставить значение типа employee, тогда как тому же полю входящего платежа можно выставить значение типа employee. |
| 2022 | Ошибка формата: слишком большое число элементов вложенной коллекции | Вложенная коллекция может иметь в составе не более 1000 элементов. |
| 2024 | Ошибка формата: href указывает на сущность неправильного типа ‘<тип>’, требуется ‘<тип>’ | Переданная ссылка href указывает на сущность неправильного типа. |
| 2027 | Ошибка формата: href указывает на сущность неправильного типа ‘<тип>’, допустимые значения: ‘<допустимые типы>’ | Переданная ссылка href указывает на сущность неправильного типа. |
| 2028 | Ошибка формата: Доп поле ‘{имя доп. поля}’ сущности с id ‘{id}’ содержит не числовое значение | В получаемом объекте содержится доп поле с некорректным значением |
Общие ошибки валидации
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 3000 | Ошибка сохранения объекта: поле ‘{имя поля}’ не может быть пустым или отсутствовать | Необходимое поле не может содержать пустого значения или отсутствовать. Все необходимые поля можно посмотреть в документации по сущности, с которой вы работаете, под заголовком «Атрибуты сущности». Такие поля помечены как Необходимое. |
| 3001 | Ошибка сохранения объекта: поле ‘{имя поля}’ не может быть изменено | Вы пытаетесь изменить поле являющееся полем только для чтения. Все read-only поля можно посмотреть в документации по сущности, с которой вы работаете, под заголовком «Атрибуты сущности». Такие поля помечены как Только для чтения. |
| 3002 | Ошибка сохранения объекта: поле ‘{имя поля}’ не может иметь отрицательное значение | Данное поле принимает только числовые значения больше либо равные нулю. |
| 3003 | Ошибка сохранения объекта: поле ‘{имя поля}’ должно быть больше нуля | Данное поле принимает только числовые значения больше нуля. Эта ошибка также возвращается при указании значений, которые при округлении до 4-го знака после запятой будут равны нулю (т.е. для значений < 0.00005). |
| 3004 | Ошибка сохранения объекта: поле ‘{имя поля}’ не соответствует полю связанного объекта | Поле возврата не соответствует полю документа-основания. Невозможно изменить значения полей agent, currency, vatIncluded в возвратах на несоответствующие значениям этих же полей в документе-основании. |
| 3005 | Ошибка сохранения объекта: неверное значение ‘{значение}’ поля ‘{имя поля}’. Допустимые значения: {список значений} | Вы пытаетесь присвоить несуществующее значение полю типа «перечисление»(enum). Проверить все возможные значения этого поля вы можете в документации по данной сущности в разделе «Атрибуты сущности». |
| 3006 | Ошибка сохранения объекта: нарушено ограничение уникальности параметра ‘{имя параметра}’ | У указанного поля/параметра должно быть уникальное значение в системе. Например, если включена проверка на уникальность номеров операций, name у разных документов не может быть одинаковым. |
| 3007 | Ошибка валидации сохраняемого объекта: ‘{объект}’ | Ошибка при обмене. Проверьте, соблюдает ли все условия передаваемый вами объект. |
| 3008 | Ошибка сохранения объекта: значение поля ‘{имя поля}’ превышает максимально допустимое значение | Значение числового поля превышает максимально допустимое значение: 9 999 999 999. |
| 3009 | Ошибка валидации: поле ‘{имя поля}’ не может быть пустым или отсутствовать | Необходимое поле не может содержать пустого значения или отсутствовать. |
| 3010 | Ошибка валидации: нельзя привязать документ из корзины к платежу | Документ из корзины не может быть привязан к платежу. |
| 3011 | Ошибка валидации штрихкода: невозможно добавить к сущности штрихкод длиной более 255 символов | Исправьте длину штрихкода и попробуйте повторить запрос. |
| 3012 | Ошибка валидации: для поля ‘{имя поля}’ массив элементов не должен содержать атомарный тип или null | Нельзя передавать атомарный тип или null в составе массива. |
| 3013 | Ошибка валидации: для поля ‘{имя поля}’ массив элементов не должен содержать сущности с одинаковыми идентификаторами | Нельзя передавать сущности с одинаковыми идентификаторами в составе массива. |
| 3014 | Ошибка валидации штрихкода: неверный формат GTIN: <текст ошибки> | Ошибка валидации штрихкода типа GTIN. Тексты ошибок:
|
| 3015 | Ошибка валидации: Ошибка валидации: некорректный адрес E-mail: ‘{адрес e-mail}’ | Ошибка валидации email поля. На вход должен подаваться валидный email |
| 3016 | Ошибка валидации: Поле ‘{имя поля}’ должно соответствовать формату ‘{ожидаемый формат поля}’ | Ошибка валидации поля. Входящее поле должно соответствовать ожидаемому формату |
| 3017 | Ошибка валидации: Сумма накоплений должна быть больше предыдущей | Ошибка валидации поля levels. В накопительных скидках сумма каждого накопления должна быть больше предыдущих |
| 3018 | Ошибка валидации: Скидка должна быть больше предыдущей | Ошибка валидации поля levels. В накопительных скидках значение скидки должно быть больше предыдущих |
| 3019 | Ошибка валидации: Суммы должны различаться | Ошибка валидации поля levels. В накопительных скидках значение скидки должно отличаться от предыдущих |
| 3020 | Ошибка валидации: Другая бонусная программа уже активна’ | Ошибка при активации бонусной программы. Невозможно активировать бонусную программу, если другая уже активна |
| 3021 | Ошибка валидации: Если в скидке указано использовать специальную цену, то необходимо заполнить поле specialPrice. Иначе необходимо заполнить поле discount. | Ошибка валидации специальных цен. Данная скидка должна содержать поля specialPrice или discount, если указан соответствующий флаг |
| 3022 | Ошибка валидации: Превышен лимит по количеству скидок | Ошибка при активации скидки. В системе не может быть больше 10 активных скидок одновременно |
| 3023 | Ошибка валидации: Ошибка валидации: не заполнено обязательное поле ‘{имя поля}’ у объекта ‘{имя объекта}’ | У объекта в json’е не указано обязательное поле |
| 3024 | Ошибка валидации: Ошибка валидации: неверное значение ‘{значение поля}’ поля ‘{имя поля}’ для {название объекта}. Допустимые значения: {список_значений} | У поля указано не валидное значение |
| 3025 | Ошибка валидации: Скидка ‘{тип скидки}’ с именем ‘{имя скидки}’ не применима для групп данного контрагента | Контрагент не входит в группы, которые указаны в данной скидке |
| 3026 | Ошибка валидации: Скидка ‘{тип скидки}’ с именем ‘{имя скидки}’ указана более одного раза | Скидка с одним и тем же типом передана в json’е более одного раза |
| 3027 | Ошибка валидации: Неверное значение заголовка {заголовок}. Было передано значение ‘{значение}’. Допустимые значения: ‘{значения}’ | Было передано невалидное значение указанного в тексте ошибки заголовка |
| 3028 | Ошибка валидации: Значение поля ‘{первое поле}’ конфликтует со значением поля ‘{второе поле}’. Требуется {описание конфликта} | Были переданы несовместимые значения указанных в тексте ошибки полей. В описании ошибки указано, что послужило причиной конфликта |
| 3030 | Ошибка валидации заголовка ‘{название заголовка}’: {описание ошибки} | Было передано некорректное значение в заголовке |
Коды ошибок для Точек продаж
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 4000 | Указанная точка продаж не активна | Для выполнения операции необходимо активировать точку продаж. |
| 4001 | Ошибка сохранения объекта: превышен допустимый лимит активных точек продаж по вашему тарифу | Число активных точек продаж с учетом сохраняемых превышает лимит по тарифу. |
| 4002 | Ошибка сохранения точки продаж: для типа ‘minionToMasterType’ = CHOSEN в списке ‘masterRetailStores’ должна присутствовать хотя бы одна точка продаж | В случае, если связь (поле minionToMasterType) между облачной кассой и кассой, которая фискализирует чеки, указывается CHOSEN, то в списке masterRetailStores должна присутствовать хотя бы одна точка продаж. |
Коды ошибок для Отчетов комиссионера
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 5000 | Неверный тип договора для отчета комиссионера. Могут быть использованы только договоры типа ‘Договор комиссии'(Comission). | При создании / обновлении отчета комиссионера обязательно указывать договор, который принадлежащит указанному контрагенту и имеет тип ‘Договор комиссии’. |
| 5001 | Неверно указан период отчета комиссионера: конец периода не может быть раньше начала. | Проверьте указанные даты. Дата в поле commissionPeriodStart должна быть раньше даты в поле commissionPeriodEnd. |
| 5002 | Указанный договор заключен с контрагентом, отличным от указанного в поле agent | При создании / обновлении отчета комиссионера обязательно указывать договор, который принадлежащит указанному контрагенту и имеет тип ‘Договор комиссии’. |
| 5003 | Указанный договор заключен с юрлицом, отличным от указанного в поле organization | Организация должна соответствовать организации, указанной в договоре. |
Коды ошибок для Характеристик модификаций
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 10000 | Ошибка сохранения характеристики модификации: поля ‘id’ и ‘name’ не могут быть пустыми | При обновлении характеристик модификации необходимо указывать вышеуказанные поля. Исправьте тело запроса. |
| 10001 | Ошибка сохранения характеристики модификации: поле ‘id’ ссылается на несуществующую характеристику | По переданному id не удалось найти соответствующую характеристику. Убедитесь в правильности id и повторите запрос. |
| 10002 | Ошибка сохранения характеристик модификации: характеристики с указанными полями ‘name’ уже существуют | Указанные в запросе имена характеристик уже существуют. Проверьте правильность написания полей ‘name’ или запросите существующие характеристики. |
Коды ошибок для Статусов
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 11000 | Ошибка инициализации статуса: отсутствует информация о родительской сущности | Не удалось найти документ, к которому должен быть привязан данный статус. Проверьте id документа, а также, в случае обновления, убедитесь, что документ с данным id не был удален. |
| 11001 | Ошибка инициализации статуса: статус с именем ‘{Наименование статуса}’ не найден | Проверьте в метаданных сущностей данного типа, что статус с передаваемым именем существует, и исправьте запрос. |
Коды ошибок для Розничных смен (POS)
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 12000 | Ошибка открытия розничной смены: розничная смена находится в корзине | Данный syncId уже был использован для открытия другой смены. Данная смена уже была удалена. Для открытия новой смены сгенерируйте новый syncId. |
| 12001 | Ошибка открытия розничной смены: розничная смена закрыта | Данный syncId уже был использован для открытия другой смены. Данная смена уже была закрыта. Переоткрыть ее невозможно. Для открытия новой смены сгенерируйте новый syncId. |
| 12002 | Ошибка закрытия розничной смены: розничная смена удалена | По переданному id смены не было найдено соответствующего объекта. Смена с данным id либо не существовала, либо была удалена. Проверьте правильность переданного id смены. |
| 12003 | Ошибка закрытия розничной смены: розничная смена находится в корзине | Смена с указанным id находится в корзине. Проверьте правильность указанного вами id смены. |
| 12004 | Ошибка закрытия розничной смены: розничная смена закрыта | Смена с указанным id находится уже была закрыта. Повторное закрытие смены невозможно. Проверьте правильность указанного вами id смены. |
| 12005 | Ошибка открытия розничной смены: не найдена точка продаж | При открытии смены не была найдена точка продаж с указанным id. Проверьте id точки продаж, на которой должна быть открыта новая смена. |
| 12006 | Ошибка открытия розничной смены: параметр ‘retailShift’ отсутствует или имеет неверный формат | Убедитесь в наличии параметра ‘retailShift’. |
| 12011 | Ошибка открытия розничной смены: Точка продаж не активна | При открытии смены не была найдена активная точка продаж с указанным id. Проверьте активность точки продаж по указанному id, на которой должна быть открыта новая смена. |
| 12026 | Значение ‘{наименование поля}’ не должно превышать значение установленное в ‘{наименование поля}’ | При запросе значение ‘{наименование поля}’ превышало значение установленного в значении ‘{наименование поля}’. Проверьте значение ‘{наименование поля}’. |
Коды ошибок для Отчетов Остатков
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 13000 | Пустой идентификатор операции | Вы запросили отчет Остатки по операции, не указав id операции. Убедитесь что id передается в качестве параметра. |
| 13001 | Операция с указанным идентификатором не найдена | Не удалось найти операцию с указанным operation.id. Проверьте передаваемый вами id, а также убедитесь что операция с данным id не была удалена. |
| 13002 | Операция не может быть выполнена для указанного типа ‘{тип документа}’ документа | Отчет Остатки по операциям доступен только для операций типа Отгрузка, Розничная продажа, Заказ покупателя. |
| 13003 | Отсутствует доступ к отчету Остатки | У пользователя отсутствует доступ к отчету Остатки. |
Коды ошибок для Доп. поля
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 14000 | Ошибка сохранения дополнительного поля: поле ‘{наименование поля}’ не относится к реестру ‘{тип сущности}’ | В своем запросе пытаетесь использовать дополнительные поля другого типа сущности. Сделайте запрос метаданных по данному типу сущности и используйте дополнительные поля которые придут в ответ. |
| 14001 | Ошибка сохранения дополнительного поля: обновление дополнительных полей типа ‘Файл’ не поддерживается | Поле типа файл обновить нельзя. |
| 14002 | Ошибка сохранения дополнительного поля: родительская сущность не поддерживает дополнительные поля | Сущности данного типа не могут иметь дополнительных полей. Уточнить список типов сущностей, которые могут иметь дополнительные поля можно в разделе Работа с дополнительными полями |
| 14003 | Ошибка сохранения дополнительного поля: идентификатор метаданных указывает на несуществующий объект | Не удалось найти доп поле с указанным id. Проверьте список доп полей и их id с помощью ресурса метаданных сущности. |
| 14004 | Ошибка сохранения дополнительного поля: для объекта типа ‘пользовательский справочник’ необходимо указать поле meta или name | Хотя бы одно из вышеуказанных полей не должно быть пустым. |
| 14005 | Ошибка сохранения дополнительного поля типа ‘Файл’: размер файла превышает максимально допустимый (10 мб) | Невозможно загрузить в качестве значения дополнительного поля файл размером более 10 мб. |
| 14006 | Ошибка сохранения дополнительного поля типа ‘Файл’: отсутствует имя файла | Поле filename у значения дополнительного поля типа Файл должно быть заполнено. |
| 14007 | Ошибка сохранения дополнительного поля типа ‘Файл’: отсутствует поле content | Поле content у значения дополнительного поля типа Файл должно быть заполнено. |
| 14008 | Ошибка сохранения дополнительного поля типа ‘Файл’: недостаточно места в хранилище для сохранения файла | Место в хранилище, выделенное для вашего аккаунта, закончилось. |
| 14009 | Ошибка сохранения дополнительного поля типа ‘{наименование типа поля}’: отсутствует поле value | Поле value у значения дополнительного поля типа ‘{наименование типа поля}’ должно быть заполнено. |
| 14010 | Доступ запрещен: создавать, изменять и удалять дополнительные поля может только пользователь с правами администратора | Cоздавать, изменять и удалять дополнительные поля может только пользователь с правами администратора. |
| 14011 | Ошибка удаления дополнительного поля: неверный формат meta удаляемого дополнительного поля | По переданной meta не удалось идентифицировать дополнительное поле для удаления. |
| 14012 | Ошибка сохранения дополнительного поля: невозможно сделать обязательным поле, которое очищается в рамках сценария | Дополнительное поле в сценарии со значением Очистить поле не может стать обязательным. Если требуется присвоить обязательность — необходимо изменить действие в сценарии. |
Коды ошибок для Модификаций
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 15000 | Ошибка сохранения модификации: модификация с данным набором характеристик уже существует для данного товара | Невозможно иметь 2 модификации товара, у которых наборы значений характеристик будут совпадать. Убедитесь что это условие не нарушается. Иначе: используйте уже существующую модификацию. |
| 15001 | Ошибка сохранения модификации: должны быть заданы характеристики | При создании/обновлении модификации переданный массив характеристик не может отсутствовать или быть пустым. |
| 15002 | Ошибка сохранения модификации: нельзя создать модификацию услуги | Поддерживаются только модификации товаров. Убедитесь в правильности URI по которому происходит запрос. |
| 15003 | Ошибка сохранения модификации: нельзя создать модификацию алкогольного товара | Поддерживаются только модификации обычных товаров. Убедитесь в правильности URI по которому происходит запрос. |
| 15004 | Ошибка сохранения модификации: названия характеристик не должны повторяться | Нельзя создать модификацию с одинаковыми характеристиками |
Коды ошибок для Товаров
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 16000 | Ошибка сохранения товара: свойства алкогольной продукции не могут быть отрицательными | Алкогольные поля «код алкогольной продукции», «крепость» и «объем» должны принимать значение строго большее 0. |
| 16001 | Ошибка сохранения товара: весовой товар не может использовать учет по серийным номерам | Товар не может одновременно быть весовым и использовать учет по серийным номерам. Это — взаимоисключающие признаки. |
| 16002 | Ошибка сохранения товара: нельзя отключить серийный учет | Если серийный учет однажды включен, то его уже нельзя отключить. В ином случае вы можете создать новый товар. |
| 16008 | Ошибка сохранения товара: для использования упаковок нужно указать единицу измерения товара | Для использования упаковок должна быть задана единица измерения товара |
| 16009 | Ошибка сохранения товара: значение поля ppeType не найдено в справочнике | Указанный код товара СИЗ не найден в справочнике |
| 16010 | Ошибка сохранения товара: если указано, что товар облагается налогом, то необходимо заполнить поле vat. Иначе vatEnabled для товара должен иметь значение false | При передаче поля vatEnabled = true для товара нужно указывать также значение НДС. |
| 16011 | Ошибка сохранения товара: разливной товар не может учитываться по серийным номерам. | Товар не может быть одновременно на разлив и с учетом по серийным номерам. |
| 16012 | Ошибка сохранения товара: товар не может быть разливным и весовым одновременно. | Товар не может быть одновременно весовым и на разлив. |
| 16013 | Ошибка сохранения товара: весовой товар не может иметь признак средства индивидуальной защиты. | Товар не может быть одновременно на разлив и иметь признак средства индивидуальной защиты. |
| 16014 | Ошибка сохранения товара: разливной товар не может иметь признак средства индивидуальной защиты. | Разливной товар не может иметь признак средства индивидуальной защиты. |
| 16015 | Ошибка сохранения товара: неверно указан тип маркировки «{тип маркировки}» для разливного товара. | Разливной товар может сочетаться только с типами маркировки MILK, PERFUMERY. |
| 16102 | Ошибка сохранения товара: товар с типом маркировки «{тип маркировки}» не может иметь модификаций | У маркированного товара типа «{тип маркировки}» не может быть модификаций |
| 16103 | Ошибка сохранения товара: маркированный товар не может учитываться по серийным номерам. | Товар не может быть одновременно маркированным и учитываться по серийным номерам |
| 16104 | Ошибка сохранения товара: маркированный товар не может быть алкогольным. | Товар не может быть одновременно маркированным и алкогольным |
| 16105 | Ошибка сохранения товара: маркированный товар не может быть весовым . | Весовой товар может сочетаться только с типом маркировки MILK. |
| 16106 | Ошибка сохранения товара: неизвестный тип маркировки товара | Тип маркировки товара может быть только одним из следующих: NOT_TRACKED, TOBACCO, SHOES, LP_CLOTHES, LP_LINENS, PERFUMERY, ELECTRONICS, TIRES, MILK, WATER, OTP |
| 16107 | Ошибка сохранения товара: поле ТН ВЭД не может быть указано для: «Табачная продукция» | У табачной продукции не может быть кода ТН ВЭД |
| 16108 | Ошибка сохранения товара: значение поля ТН ВЭД не найдено в справочнике | Указанный код ТН ВЭД не существует в классификаторе ТН ВЭД ЕАЭС |
| 16109 | Ошибка сохранения товара: поле ТН ВЭД не может быть указано для немаркированной продукции | Поле ТН ВЭД может присутствовать только у маркированных товаров |
| 16110 | Ошибка сохранения товара: <Текст ошибки> | Произошла ошибка сохранения маркированного товара |
| 16111 | Ошибка сохранения товара: значение поля ТН ВЭД не соответствует типу маркированной продукции | Тип маркированной продукции определенный по ТН ВЭД не соответсвует выбранному пользователем |
| 16112 | Ошибка сохранения товара: тип маркировки «<Тип маркировки товара>» не поддерживает частичное выбытие. | Тип маркировки товара не поддерживает частичное выбытие |
| 16113 | Ошибка сохранения товара: маркированный товар не может быть средством индивидуальной защиты. | Маркированный товар не может быть средством индивидуальной защиты. |
Коды ошибок для Документов
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 17000 | Ошибка сохранения документа: счет организации не принадлежит указанной организации | Убедитесь что вы указываете подходящий счет. Если вы обновляете поле organization вместе с ним также должно обновляться поле organizationAccount. |
| 17001 | Ошибка сохранения документа: счет контрагента не принадлежит указанному контрагенту | Убедитесь что вы указываете подходящий счет. Если вы обновляете поле agent вместе с ним также должно обновляться поле agentAccount. |
| 17002 | Ошибка сохранения позиции документа: серийный номер не может быть пустым | Серийный номер не может быть пустой строкой. |
| 17003 | Ошибка сохранения позиции документа: количество зарезервированных товаров не может превышать общее количество | Количество зарезервированного товара позиции документа не может превышать общее количество товара по документу. |
| 17004 | Ошибка сохранения позиции документа: количество товаров в ожидании не может превышать общее количество | Количество ожидаемого товара позиции документа не может превышать общее количество товара по документу. |
| 17005 | Ошибка сохранения связанного документа: отсутствует ссылка на документ-основание | При сохранении связанного документа необходима ссылка на документ-основание (например при сохранении возврата необходима ссылка на продажу). |
| 17006 | Ошибка сохранения связанного документа: несовместимые типы документов — ‘<тип1>’ и ‘<тип2>’ | В качестве связи вы указали документ несоответствующего типа. |
| 17007 | Ошибка сохранения позиции документа: НДС не может быть больше 100 | Процент НДС может принимать значения от 0 до 100. |
| 17008 | Ошибка сохранения позиции документа: скидка не может быть больше 100 | Процент скидки может принимать значения от 0 до 100. |
| 17009 | Ошибка сохранения документа: дата ‘{тип документа}’ не попадает в открытый для редактирования период | Данный документ относится к закрытому периоду. Редактирование документа невозможно. |
| 17010 | Ошибка сохранения документа: вы не можете проводить документы со складом-приемником из другого отдела | В метаданных документа запрещено проводить документы со складом-приемником из другого отдела. |
| 17011 | Ошибка сохранения документа: вы не можете проводить документы со складом-источником из другого отдела | В метаданных документа запрещено проводить документы со складом-источником из другого отдела. |
| 17012 | Ошибка сохранения документа: вы не можете сохранять документы со складом-приемником из другого отдела | В метаданных документа запрещено сохранять документы со складом-приемником из другого отдела. |
| 17013 | Ошибка сохранения документа: вы не можете сохранять документы со складом-источником из другого отдела | В метаданных документа запрещено сохранять документы со складом-источником из другого отдела. |
| 17014 | Ошибка сохранения документа: вы не можете снять проведение у документа типа <тип>, по которому был проведен возврат | Нельзя снять проведение у данного документа, поскольку для него уже был проведен возврат. |
| 17016 | Ошибка сохранения документа: комплект не может быть в составе позиции документа типа {тип_документа} | Комплект не может быть позицией в следующих документах: заказ поставщику, счет поставщика, приемка, возврат поставщику, выданный отчет комиссионера, полученный отчет комиссионера, списание, оприходование, перемещение, инвентаризация, тех. карта, тех. операция, внутренний заказ. |
| 17018 | Ошибка сохранения документа: количество комплектов должно быть целым числом | Количество комплектов в позиции должно быть целым числом |
| 17020 | Ошибка сохранения позиции документа: товар упаковки и товар позиции отличаются | Для данной позиции документа товар из упаковки и указанный товар отличаются |
| 17021 | Ошибка сохранения позиции документа: если указано, что позиция облагается налогом, то необходимо заполнить поле vat. Иначе vatEnabled для позиции должен иметь значение false | При передаче поля vatEnabled = true в позиции нужно указывать также значение НДС |
| 17022 | Ошибка сохранения документа: {вид ассортимента} не может быть в составе позиции документа типа {тип_документа} | Добавляемый вид ассортимента не может быть позицией в этом типе документа |
| 17101 | Ошибка сохранения документа: для товара <наименование товара> не установлен признак маркированной продукции. Измените товар для сохранения кодов маркировки | Установите для товара признак маркированной продукции ‘trackingType’ соответствующей категории |
| 17102 | Ошибка сохранения документа: неверный формат кода маркировки <значение КМ / КМ ТУ / КМ ПУ> | Код маркировки для всех категорий маркированной продукции должен соответствовать формату:
Исключения:
|
| 17103 | Ошибка сохранения документа: в документе несколько одинаковых кодов <значение КМ / КМ ТУ / КМ ПУ> | Среди кодов маркировки есть дублирующиеся. Удалите дубликаты кодов маркировки для сохранения позиции |
| 17104 | Ошибка сохранения документа: код маркировки <КМ> не может содержать вложенные коды | Допустимо сохранять список кодов маркировки trackingcode, список потребительских упаковок consumerpack, список транспортных упаковок transportpack, список кодов маркировки trackingcode вложенных в транспортные упаковки transportpack или потребительские упаковки consumerpack, список потребительских упаковок consumerpack вложенных в транспортные упаковки transportpack. Сохранение других вложенных структур не поддерживается |
| 17105 | Ошибка сохранения документа: код маркировки транспортной упаковки <КМ ТУ> не может содержать вложенные коды транспортных упаковок | Допустимо сохранять список кодов маркировки trackingcode или список потребительских упаковок consumerpack вложенных в транспортные упаковки transportpack. Не поддерживается сохранение транспортных упаковок вложенных в транспортные упаковки |
| 17106 | Ошибка сохранения документа: код маркировки потребительской упаковки не может содержать вложенные коды | Допустимо сохранять список кодов маркировки trackingcode вложенных в транспортные упаковки transportpack. Не поддерживается сохранение кодов маркировки trackingcode вложенных в потребительские упаковки consumerpack |
| 17107 | Ошибка сохранения документа: код маркировки транспортной упаковки <КМ ТУ> не может одновременно содержать вложенные коды товаров и потребительских упаковок | Допустимо сохранять список кодов маркировки trackingcode или список потребительских упаковок consumerpack вложенных в транспортные упаковки transportpack. Не поддерживается их одновременное сохранение для одной транспортной упаковки |
| 17107 | Позиция документа типа <тип> не может содержать коды маркировки | Позиции документа указанного типа не могут иметь коды маркировки |
Коды ошибок для Продаж/Отгрузок
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 18000 | Ошибка сохранения продажи: сумма ‘cashSum’, ‘noCashSum’, ‘qrSum’, ‘prepaymentCashSum’, ‘prepaymentNoCashSum’ и ‘prepaymentQrSum’ не соответствует сумме по документу | Сумма полей cashSum, noCashSum, qrSum, prepaymentCashSum и prepaymentNoCashSum, prepaymentQrSum должна быть равна значению поля sum или отличаться менее чем на 10 единиц. В случае создания документа и указании вышеупомянутых полей в теле запроса, ответственность за подсчет sum ложится на пользователя. sum считается как общая сумма по всем позициям документа. |
| 18002 | Ошибка сохранения документа: отгрузка по комиссионному договору не может содержать комплект в составе позиций | В отгрузку нельзя добавить комплект, если для нее указан договор типа «Комиссионный»». |
| 18005 | В случае заполненного поля ‘qrSum’ поля ‘cashSum’, ‘noCashSum’, ‘prepaymentCashSum’ и ‘prepaymentNoCashSum’ должны быть пустыми | Смешанная оплата по QR-коду и карте или по QR-коду и наличными запрещена. |
| 18006 | В случае заполненного поля ‘prepaymentQrSum’ поля ‘cashSum’, ‘noCashSum’, ‘prepaymentCashSum’ и ‘prepaymentNoCashSum’ должны быть пустыми | В случае предоплаты по QR-коду, оплата возможно только по QR-коду. |
Коды ошибок для Возвратов
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 19000 | Ошибка сохранения возврата: розничная смена уже закрыта | Нельзя сохранить возврат в закрытую розничную смену. Убедитесь что используете идентификатор активной смены. |
| 19001 | Ошибка сохранения розничного возврата: поля ‘cashSum’ и ‘noCashSum’ являются обязательными для возврата без основания | Поля ‘cashSum’ и ‘noCashSum’ являются обязательными для возврата без основания. Убедитесь, что они заполнены. |
| 19002 | Ошибка сохранения розничного возврата: сумма ‘cashSum’, ‘noCashSum’ и ‘qrSum’ не соответствует сумме по документу | Сумма полей cashSum, noCashSum и qrSum должна быть равна значению поля sum или отличаться менее чем на 10 единиц. В случае создания документа и указании вышеупомянутых полей в теле запроса, ответственность за подсчет sum ложится на пользователя. sum считается как общая сумма по всем позициям документа. |
| 19003 | Ошибка сохранения розничного возврата: возврат возможен только по QR-коду | Возникает в случае, если продажа была осуществлена по QR-коду, а возврат осуществляется за наличные или по карте. При создании такого возврата поля ‘cashSum’ и ‘noCashSum’ должны отсутствовать. |
| 19004 | Ошибка сохранения розничного возврата: возврат по QR-коду поддержан только для операций, оплаченных по QR-коду | Возникает в случае, если продажа была осуществлена за наличные или по карте, а возврат осуществляется по QR-коду. При создании такого возврата поле ‘qrSum’ должно отсутствовать. |
Коды ошибок для Приемок
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 20000 | Ошибка сохранения приемки: нельзя указать накладные расходы с договором комиссии | Если к приемке привязан договор типа «Договор комиссии», то нельзя указать какое-либо значение в поле overhead. |
Коды ошибок для Перемещений
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 21000 | Ошибка сохранения перемещения: нельзя провести перемещение со склада на этот же склад | Убедитесь, что в полях sourceStore и targetStore указываете склады с разными идентификаторами. |
| 21001 | Ошибка сохранения перемещения: нельзя провести перемещение в одну и ту же ячейку | Убедитесь, что в документе перемещения с одного и того же склада в полях sourceSlot и targetSlot в позициях указываете ячейки с разными идентификаторами. |
Коды ошибок для Платежей
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 22000 | Ошибка сохранения платежа: распределенная сумма превышает сумму платежа | Сумма, указанная в linkedSum больше чем sum платежа. |
| 22001 | Ошибка сохранения платежа: платеж содержит повторяющиеся привязанные документы | Вы пытаетесь привязать платеж к документу более одного раза. |
| 22002 | Ошибка сохранения платежа: некорректная статья расходов: ‘{категория расходов}’ | Платежу нельзя присвоить данную статью расходов. |
Коды ошибок для Групп товаров
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 23000 | Ошибка сохранения группы: нельзя указывать в качестве родительской группы саму группу | Группа не может в качестве родительской ссылаться на саму себя. |
| 23001 | Ошибка сохранения группы: нельзя указывать в качестве родительской группы вложенную группу | Группа не может в качестве родительской группы ссылаться на группу, которая является ее дочерней группой. |
Коды ошибок для Инвентаризаций
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 24001 | Ошибка создания шаблона списания: инвентаризация не требует проведения списания | Инвентаризация не содержит недостачи, либо все необходимые списания уже созданы. |
| 24002 | Ошибка создания шаблона оприходования: инвентаризация не требует проведения оприходования | Инвентаризация не содержит избытка, либо все необходимые оприходования уже созданы. |
| 24003 | Ошибка сохранения инвентаризации: услуга не может быть позицией инвентаризации | Услуга не может быть позицией инвентаризации. |
| 24004 | Ошибка сохранения инвентаризации: инвентаризация не может содержать дублирующихся позиций | Товар/Услуга/Модификация/Серия/Комплект может быть добавлен(а) в инвентаризацию только единожды. |
Коды ошибок для Технологических операций
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 25001 | Ошибка сохранения технологической операции: позиции операции не соответствуют позициям тех. карты | Проверьте соответствие продуктов и материалов тех. операции и тех. карты. |
| 25002 | Ошибка сохранения технологической операции: состав позиций не может быть изменен | Состав продуктов и материалов тех. операции не может быть изменен. |
Коды ошибок для Заказов на производство
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 26001 | Ошибка сохранения заказа на производство: материалы заказа не соответствуют материалам тех. карты | Проверьте соответствие материалов заказа на производство и тех. карты. |
| 26002 | Ошибка сохранения заказа на производство: новые товары не могут быть добавлены в заказ | Проверьте заказ на наличие новых товаров. |
Коды ошибок для Прайс-листов
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 27000 | Ошибка сохранения описания таблицы, ‘{описание ошибки}’ | На создание таблицы Прайс-листа налагаются следующие ограничения: для описанного столбца не может отсутствовать или быть пустым название, в пределах одного Прайс-листа столбцы должны быть уникальные по названию. |
| 27001 | Ошибка сохранения позиции, для указанного имени столбца не найден столбец в описании таблицы | Значение ячеек в позициях Прайс-листа соотносятся со столбцами по названию. Нельзя указывать для ячейки название несуществующих в определении Прайс-листа столбцов. |
| 27002 | Ошибка сохранения позиции, нельзя в прайс-листе указывать повторяющиеся позиции | Нельзя в прайс-листе указывать повторящиеся позиции, например, товар или его модификацию дважды. |
| 27003 | Ошибка сохранения позиции, нельзя в прайс-листе указывать серии | Нельзя в прайс-листе указывать серии, только товары, услуги и модификации. |
Коды ошибок для Контрагентов
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 28000 | Ошибка сохранения контрагента: неизвестный тип цены: ‘<Тип цены>’ | Неизвестный тип цены. Список допустимых можно запросить в метаданных товаров. |
Коды ошибок для Комплектов
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 29000 | Ошибка сохранения комплекта: некорректное число компонентов | Поддерживается от одного до пятидесяти компонентов в одном комплекте. |
| 29001 | Ошибка сохранения комплекта: дополнительные расходы и состав компонентов не могут быть изменены, так как комплект уже используется | Уберите зависимые комплекты из документов. |
| 29002 | Ошибка сохранения комплекта: комплект содержит повторяющиеся компоненты | Проверьте состав компонентов комплекта и попробуйте снова. |
| 29003 | Ошибка сохранения комплекта: компонент комплекта не может быть комплектом, серией, алкогольным товаром или товаром на серийном учете | Проверьте состав компонентов комплекта и попробуйте снова. |
Коды ошибок для Веб-хуков
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 30000 | Ошибка сохранения webhook: неподдерживаемый тип сущности ‘{тип}’ | В веб-хуках можно использовать любые типы сущностей, доступные через Remap API, кроме вложенных. Например, product или demand. |
| 30001 | Ошибка сохранения webhook: неизвестный HTTP-метод ‘{метод}’. Допустимый: POST | В веб-хуках можно указывать только поддерживаемые HTTP методы. Допустимым сейчас является POST. |
| 30002 | Ошибка сохранения webhook: неизвестное действие ‘{действие}’. Допустимые: CREATE, UPDATE, DELETE | В веб-хуках можно указывать только доступные действия: CREATE, UPDATE, DELETE. |
| 30003 | Ошибка сохранения webhook: webhook с данным набором параметров уже существует | В веб-хуках на тройку (сущность, действие, адрес) может быть установлен только один веб-хук. |
| 30004 | Необходимы права администратора для работы с webhook | Управление веб-хуками доступно только пользователям с правами администратора. |
| 30005 | Ошибка сохранения webhook: значение поля url не является корректным адресом запроса | Значение поля url не является корректным адресом запроса. Проверьте адрес запроса на соответствие формату http, https адреса запроса. |
| 30006 | Ваш тарифный план не позволяет создавать или обновлять веб-хуки | Создание и обновление веб-хуков доступно на всех тарифах кроме бесплатного. |
| 30007 | Нельзя создать больше ‘5’ веб-хуков одинакового типа на одну сущность | Нельзя создать новых веб-хуков на данный тип сущности и действия сверх данного ограничения. Удалите старые веб-хуки или перенастройте на новые url. |
| 30008 | Ошибка сохранения webhook: тип сущности ‘{тип}’ не поддерживает действие ‘{действие}’. Допустимые: {действия} | Для данного типа сущности определен не стандартный набор действий, поэтому некоторые действия данный тип не поддерживает |
| 30009 | «Ошибка сохранения webhook: указание значения поля ‘diffType’ не поддерживается для действия ‘{действие}’. Допустимые: {действия} | Указание типа вывода списка изменений ‘diffType’ доступно для определенных типов действий. Если действие не поддерживается, то поле ‘diffType’ указывать не нужно |
| 30010 | Ошибка сохранения webhook: длина url адреса больше 255 символов | Количество символов в url адресе должно быть меньше 256. |
Коды ошибок для Валют
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 31000 | Валюту учета нельзя удалить | Валюту учета нельзя удалить. |
Коды ошибок для Договоров
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 32001 | Ошибка сохранения договора: невозможно изменить тип договора на комиссионный. По данному договору существует отгрузка, в составе позиций которой присутствует комплект | Проверьте, чтобы по данному договору не было отгрузок комплектов и попробуйте снова. |
| 32002 | Ошибка сохранения договора: невозможно изменить тип договора на комиссионный. Договор, используемый в документах с компонентами комплектов, не может быть комиссионным | Проверьте, чтобы по данному договору не было документов с компонентами комплектов и попробуйте снова. |
Коды ошибок для Печатных форм
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 33000 | Ошибка формирования печатной формы: не найден шаблон печатной формы | Шаблон, указанный при формировании печатной формы не существует. Проверьте корректность указанного шаблона для печати. |
| 33001 | Ошибка формирования печатной формы: неизвестный формат | Проверьте, что указанный формат входит в список перечисленных: xls, pdf, html, ods. |
| 33002 | Ошибка формирования печатной формы: ‘<текст ошибки>’ | Текст ошибки указывает на проблемы, возникшие при печати документа. |
| 33003 | Ошибка формирования печатной формы: отсутствует ссылка на шаблон для печати | Для того, чтобы сгенерировать печатную форму, необходимо отправить шаблон. |
| 33004 | Ошибка формирования печатной формы: отсутствует поле count для шаблона печатной формы | При печати комплектов необходимо указывать поле count — число копий печатной формы в комплекте. |
| 33005 | Ошибка формирования печатной формы: указаны оба поля для ссылок на шаблон: template и templates. | Возможно указать только одно из полей запроса template или templates. |
| 33006 | Ошибка формирования печатной формы: поле count для шаблона печатной формы может принимать только целые значения в диапазоне от 1 до 10 | Поле count должно быть в интервале [1, 10]. |
| 33007 | Ошибка формирования печатной формы: отсутствует ссылка на юрлицо | Для того, чтобы сгенерировать печатную форму для товара, необходимо отправить ссылку на юрлицо. |
| 33008 | Ошибка формирования печатной формы: отсутствует количество ценников/термоэтикеток | Для того, чтобы сгенерировать печатную форму для товара, необходимо отправить количество. |
| 33009 | Ошибка формирования печатной формы: отсутствует тип цены | Для того, чтобы сгенерировать печатную форму для товара, необходимо отправить тип цены. |
| 33010 | Ошибка формирования печатной формы комплекта документов: для указанной сущности не было передано подходящих шаблонов печатной формы. | Чтобы напечатать комплект документов, нужно передать хотя бы 1 подходящий для данной сущности шаблон печатной формы. |
| 33011 | Ошибка формирования печатной формы комплекта документов: сущность для печати комплекта должна быть документом | Невозможно напечатать комплект документов для сущности, не являющейся документом. |
| 33012 | Печать для типа ‘{тип}’ не поддерживается | Печать не поддерживается для данного типа. |
Коды ошибок для Публикаций
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 34000 | Публикации для типа ‘{тип}’ не поддерживаются | Публикации доступны только для следующих типов: Заказ покупателя, Счет покупателю, Отгрузка, Заказ поставщику, Счет поставщика, Приемка, Входящий платеж, Приходный ордер, Исходящий платеж, Расходный ордер, Внутренний заказ, Перемещение, Оприходование, Списание, Счет-фактура выданный, Счет-фактура полученный, Возврат поставщику, Возврат покупателя, Выплата денег, Внесение денег, Розничный возврат, Розничная продажа, Договор, Розничная смена, Заказ на производство, Полученный отчет комиссионера, Выданный отчет комиссионера, Инвентаризация, Тех. Операция. |
| 34001 | Не удалось создать публикацию. Проверьте корректность шаблона. | Во время генерации документа возникла ошибка. Проверьте корректность передаваемого шаблона. |
| 34002 | Ошибка создания публикации документов: ваш тариф не позволяет создавать публикацию документов на основе пользовательского шаблона печатной формы | Ваш тарифный план не позволяет использовать при публикации документов пользовательские шабоны. |
| 34003 | Ошибка: нельзя работать с публикацией сущности так как к ней отсутствует доступ на ‘<чтение, запись>’. | Работа пользователя с публикациями документов возможна, если есть право на чтение и право печати сущности данного типа. |
Коды ошибок для Счет-фактур
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 35000 | Ошибка формирования счета-фактуры: передано более 1 документа-основания в коллекции | Счет-фактура может быть создан только на основании одного документа. Проверьте, что был передан один массив связанных документов с одним документом-основанием. |
| 35001 | Ошибка формирования счета-фактуры: документ уже внесен в счет-фактуру | Счет-фактура уже создан на основании переданного документа. |
Коды ошибок для Шаблонов
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 36000 | Ошибка формирования шаблона: передано более 1 документа-основания для формирования шаблона | Не удалось сформировать предзаполненную сущность из-за того что передано более 1 документа-основания. |
| 36001 | Ошибка формирования шаблона: ‘описание ошибки’ | Не удалось сформировать предзаполненную сущность из-за невалидных данных. |
Коды ошибок для Задач
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 37000 | Ошибка: вы не можете работать с задачами, т.к. в вашем тарифном плане отсутствует опция CRM | Вы не можете создавать, редактировать и удалять задачи без тарифной опции CRM. |
| 37001 | Ошибка: вы не можете редактировать или удалить задачу, созданную другим сотрудником | Пользователь, не являющийся администратором, может изменять или удалять только задачи, которые создал он сам, либо менять статус готовности у задачи, на которую он назначен ответственным. |
| 38000 | Необходимы права администратора для работы с аудитом | Просмотр изменений доступен только пользователям с правами администратора. |
Коды ошибок Показателей
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 39000 | Ошибка: не указан обязательный параметр для запроса показателей: {параметр} | Параметры momentFrom,momentTo, interval — обязательные. |
| 39001 | Ошибка: показатели, разбитые по часам, для промежутка большего, чем месяц, на поддерживаются. | Укажите меньший промежуток времени. |
| 39002 | Некорректное значение параметра фильтрации ‘interval’. Допустимые значения: ‘hour’, ‘day’, ‘month’. | Значение параметра ‘interval’ должно входить в список допустимых значений. |
Коды ошибок для Пользовательских справочников
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 41000 | Ошибка: пользовательский справочник с идентификатором ‘{идентификатор}’ не найден | Пользовательский справочник с указанным идентификатором не найден |
| 41001 | Ошибка: ваш тариф не позволяет работать с пользовательскими справочниками | Для тарифов «Бесплатный», «Бесплатный 2014» и «Индивидуальный» не поддерживается работа с пользовательскими справочниками. |
Коды ошибок для Типов цен
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 42000 | Ошибка валидации: превышено максимальное количество типов цен | Превышено максимальное количество типов цен (100). |
| 42001 | Ошибка сохранения: нельзя удалить все типы цен | При редактировании списка типа цен необходимо указать хотя бы один. |
Коды ошибок для Сотрудников
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 43001 | Ошибка сохранения сотрудника: у изображения отсутствует контент | При передаче изображения в запросе на изменение сотрудника необходимо указывать поле content |
| 43002 | Ошибка сохранения сотрудника: невозможно преобразовать поле content в изображение | Содержимым поля content должно быть изображение закодированное в формате base64 с расширением jpg или png. |
| 43003 | Ошибка сохранения сотрудника: Недостаточно места в хранилище. | Место в хранилище, выделенное для вашей учетной записи закончилось. |
| 43004 | Ошибка сохранения сотрудника: размер изображения превышает максимально допустимый(3 мб) | Попробуйте уменьшить размер изображения. |
| 43005 | Ошибка сохранения сотрудника: у изображения отсутствует имя файла | При загрузке изображения необходимо указать непустое имя файла в поле filename. |
| 43006 | Ошибка сохранения сотрудника: неверный формат ИНН | Проверьте, чтобы формат ИНН соответствовал формату ИНН физического лица. |
| 43007 | Ошибка обновления прав сотрудника: нельзя изменить права у сотрудника, у которого нет доступа к сервису | Нельзя изменить права у сотрудника, у которого нет доступа к сервису. |
| 43008 | Ошибка обновления прав сотрудника: нельзя изменить логин сотрудника | При изменении прав нельзя изменять логин доступа сотрудника к сервису МойСклад |
| 43009 | Ошибка обновления прав сотрудника: логин пользователя должен оканчиваться на ‘{формат логина}’ | Не верный формат логина доступа сотрудника к сервису МойСклад |
| 43010 | Ошибка обновления прав сотрудника: нельзя указывать пользовательские права для данной роли | Задавать права можно только для пользовательской роли. |
| 43011 | Ошибка обновления прав сотрудника: для пермиссии {тип пермиссии} задано дочернее значение пермиссии {название пермиссии}, но не указано родительское значение пермиссии {название пермиссии} | Нельзя задавать значение пермиссии, не указывая значения для родительской пермиссии. |
| 43012 | Ошибка обновления прав сотрудника: для пермиссии {тип пермиссии} для {название пермиссии} задано значение {значение пермиссии}, которое шире, чем значение {значение пермиссии} для {название пермиссии} | Указаны несовместимые типы для дочерней и родительской пермиссии. |
| 43013 | Ошибка обновления прав сотрудника: нельзя изменить роль, на аккаунте должен быть хотя бы один администратор | Необходимо, чтобы на аккаунте всегда был хотя бы один сотрудник с ролью ‘Администратор аккаунта’ |
| 43014 | Ошибка обновления прав сотрудника: ваш тарифный план не позволяет настраивать права доступа сотрудникам | Настраивать права для индивидуальных ролей или создавать кастомные роли можно только на определенных тарифах |
| 43015 | Ошибка обновления прав сотрудника: не найдена роль с идентификатором {идентификатор роли} | Не была найдена кастомная роль с указанным идентификатором. |
| 43016 | Ошибка сброса пароля сотрудника: у пользователя не указан или указан некорректный email | У сотрудника, для которого был запрошен сброс пароля, не указан корректный email. |
| 43017 | Ошибка сброса пароля сотрудника: у сотрудника нет прав на вход в сервис | Нельзя сбросить пароль у неактивного пользователя. |
| 43018 | Ошибка сброса пароля сотрудника: {название причины} | Если не получилось отправить пароль по почте, то выводится сообщение о причине |
| 43019 | Ошибка деактивации доступа сотрудника: у данного сотрудника нет доступа к сервису | Нельзя деактивировать сотрудника, который никогда не был активным. |
| 43020 | Ошибка деактивации доступа сотрудника: нельзя деактивировать свою учетную запись | Нельзя деактивировать свою учетную запись. |
| 43021 | Ошибка активации доступа сотрудника: у пользователя не указан или указан некорректный email | У сотрудника нет или указан некорректный email. |
| 43022 | Ошибка активации доступа сотрудника: логин ‘{логин пользователя}’ уже используется | При активации сотрудника указан логин, который уже используется у другого сотрудника. |
| 43023 | Ошибка активации доступа сотрудника: у сотрудника не задан логин для входа | Для активации пользователя, который ранее не был активным, не задан логин. |
| 43024 | Ошибка активации доступа сотрудника: на аккаунте достигнуто максимальное число активных сотрудников | По тарифу уже максимальное число активных сотрудников. |
| 43025 | Ошибка активации доступа сотрудника: у данного сотрудника уже есть доступ к сервису | Нельзя активировать активного сотрудника. |
| 43026 | Ошибка изменения доступа сотрудника: активировать, деактивировать доступ сотрудника к сервису или сбрасывать пароль может только администратор | Изменять активность может только администратор. |
| 43027 | Ошибка валидации прав сотрудника: пермиссия {тип пермиссии} должна иметь значение {значение пермиссии} для {название пермиссии} | Для указанных типов пермиссий должны быть заданы пермиссии с определенными типами. |
| 43028 | Ошибка обновления прав сотрудника: для пермиссии {тип пермиссии} для {название пермиссии} значение должно совпадать со значением для {название родительской пермиссии} ({значение родительской пермиссии}) или иметь значение NO | Указаны несовместимые типы для дочерней и родительской пермиссии. |
| 43029 | Ошибка обновления прав сотрудника: для пермиссии {тип пермиссии} для {название пермиссии} ({значение пермиссии}) задано несовместимое с {название родительской пермиссии} ({значение родительской пермиссии}) значение | Указаны несовместимые типы для дочерней и родительской пермиссии. Например, значения OWN_SHARED и OWN_GROUP не могут быть указаны одновременно в рамках одной сущности. |
Коды ошибок для Скачивания изображений
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 44000 | Метод POST не поддерживается для URL |
HTTP метод POST не поддерживается для запроса на скачивание изображения. |
| 44001 | Метод PUT не поддерживается для URL |
HTTP метод PUT не поддерживается для запроса на скачивание изображения. |
| 44002 | Метод DELETE не поддерживается для URL |
HTTP метод DELETE не поддерживается для запроса на скачивание изображения. |
Коды ошибок для Тарифных ограничений
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 47000 | Тарифное ограничение: {описание ограничения} | Сработало тарифное ограничение для текущего тарифа. |
Коды ошибок для Изображений
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 51001 | Ошибка при работе с изображением: у изображения отсутствует контент | При передаче изображение в составе товара в запросе на создание товара необходимо указывать поле content |
| 51002 | Ошибка при работе с изображением: невозможно преобразовать поле content в изображение | Содержимым поля «content» должно быть изображение закодированное в формате base64 с расширением jpg или png. |
| 51003 | Ошибка при работе с изображением: Недостаточно места в хранилище. | Место в хранилище, выделенное для вашей учетной записи закончилось. |
| 51004 | Ошибка при работе с изображением: размер изображения превышает максимально допустимый(3 мб) | Попробуйте уменьшить размер изображения. |
| 51005 | Ошибка при работе с изображением: у изображения отсутствует имя файла | При загрузки изображения необходимо указать непустое имя файла в поле filename. |
| 51006 | Ошибка при работе с изображением: число изображений у товара не может быть больше 10 | У товара не может быть больше 10 изображений. |
| 51007 | Ошибка при работе с изображением: файловое хранилище недоступно. | Внутренняя ошибка на сервере. Попробуйте повторить запрос позже. |
Коды ошибок для Серверных приложений
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 55000 | Просмотр уведомлений приложениями не поддерживается | Работа с уведомлениями возможно только при авторизации от лица пользователя |
| 55001 | Редактирование уведомлений приложениями не поддерживается | Работа с уведомлениями возможно только при авторизации от лица пользователя |
| 55002 | Удаление уведомлений приложениями не поддерживается | Работа с уведомлениями возможно только при авторизации от лица пользователя |
| 55003 | Просмотр подписок на уведомления приложениями не поддерживается | Работа с уведомлениями возможно только при авторизации от лица пользователя |
| 55004 | Создание и редактирование подписок на уведомления приложениями не поддерживается | Работа с уведомлениями возможно только при авторизации от лица пользователя |
| 55005 | Доступ к контексту приложения невозможен для данной авторизационной сущности | Вы запрашиваете endpoint /context/application от лица пользователя |
| 55006 | Доступ к контексту пользователя невозможен для данной авторизационной сущности | Вы запрашиваете endpoint /context/employee от лица приложения |
Коды ошибок для автозаполнения
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 56000 | Ошибка заполнения шаблона: При указании параметра запроса ‘{параметр}’ со значением ‘{переданное значение}’ требуется указать значение поля ‘{имя поля}’ | Проверьте заполнение указанного поля. Для автозаполнения требуется указать начения неоторых полей: при значении fill = discount, price требуется заполнение поля agent, при значении fill = vat — organization. |
Коды ошибок для отделов
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 60000 | Доступ запрещён: создавать, изменять и удалять отделы может только пользователь с правами администратора | |
| 60001 | Ошибка сохранения отдела: отдел с таким названием уже существует | каждый отдел должен иметь уникальное название |
| 60002 | Ошибка сохранения отдела: индекс за пределами диапазона | индекс не должен быть больше количества отделов или меньше 0 |
| 60003 | Ошибка удаления отдела: нельзя удалить все отделы | после удаления должен остаться хотя бы один отдел |
Коды ошибок для асинхронного обмена
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 61000 | Ошибка при создании асинхронной задачи: эндпоинт не поддерживает асинхронный обмен | Запрос не поддерживает асинхронное выполнение. Список доступных запросов можно уточнить в разделе Асинхронный обмен |
| 61001 | Ошибка при создании асинхронной задачи: нельзя указывать параметры ‘offset’ и ‘limit’ для асинхронного запроса | Если вы хотите выполнить асинхронный запрос, не указывайте параметры ‘offset’ и ‘limit’ |
| 61002 | Ошибка при создании асинхронной задачи: превышено ограничение на количество одновременно выполняемых асинхронных операций | Дождитесь выполнения одной из поставленных в очередь задач |
| 61003 | Ошибка при запросе результата асинхронной задачи: результат задачи был удален | После наступления даты, указанной в поле deletionDate, результат становится недоступен. Нужно создать новую задачу |
| 61004 | Ошибка при запросе результата асинхронной задачи: задача завершилась ошибкой | Задача не была передана в обработку в результате внутренней ошибки и имеет статус ERROR. Попробуйте создать задачу заново. Если ошибка повторяется, обратитесь в поддержку |
| 61005 | Ошибка при запросе результата асинхронной задачи: задача была отменена | Задача была отменена и имеет статус CANCEL. Нужно создать новую задачу |
| 61006 | Ошибка при запросе результата асинхронной задачи: результат еще не готов | Задача находится в обработке и имеет статус PROCESSING. Дождитесь выполнения асинхронной задачи |
| 61007 | Ошибка при отмене асинхронной задачи: задача уже завершена | Можно отменять только задачи со статусами PENDING и PROCESSING |
Коды ошибок для Расширенной бонусной программы
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 62000 | Ошибка: вы не можете создавать бонусные операции с отложенным начислением, т.к. в вашем тарифном плане отсутствует опция расширенной бонусной программы | Для создания отложенных бонусных операций необходима подключённая опция «Расширенная бонусная программа» |
| 62001 | Ошибка: вы не можете редактировать дату начисления бонусной операции, т.к. в вашем тарифном плане отсутствует опция расширенной бонусной программы | Для изменения даты начисления бонусной операции необходима подключённая опция «Расширенная бонусная программа» |
| 62002 | Ошибка валидации: поле ‘{параметр}’ не может быть указано для бонусной операции списания | Переданный параметр доступен для редактирования только для бонусных операций начисления |
| 62003 | Ошибка валидации: поле ‘{параметр}’ может быть изменено только для отложенной бонусной операции | Переданный параметр доступен для редактирования только для отложенных бонусных операций |
Коды ошибок для Сохраненного фильтра
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 63000 | Ошибка применения сохраненного фильтра: сохраненный фильтр несовместим с параметрами запроса filter, search и order | Был передан параметр filter, search и order или применено несколько сохраненных фильтров |
| 63001 | Ошибка применения сохраненного фильтра: указанный сохраненный фильтр несовместим с текущим эндпоинтом | Был применен сохраненный фильтр, который нельзя получить на текущем энжпоинте по пути /entity/[entityType]/namedfilter |
| 63002 | Ошибка применения сохраненного фильтра: неверный формат ссылки на сохраненный фильтр | Корректный формат ссылки должен иметь тип URL |
| 63003 | Ошибка применения сохраненного фильтра: указанная ссылка на сохраненный фильтр содержит несовместимые фильтр и эндпоинт | Переданная ссылка содержит id фильтра, который нельзя получить на переданном в ссылке эндпоинте |
| 63004 | Ошибка получения сохраненных фильтров: неверное значение ‘{значение}’ параметра запроса ‘owner’ | Значение параметра запроса ‘owner’ не удовлетворяет формату href |
| 63005 | Ошибка получения сохраненных фильтров: приложения могут получать сохраненные фильтры только с указанным параметром запроса ‘owner’ | Приложения могут получать сохраненные фильтры других пользователей, поэтому нужно указывать параметр ‘owner’ |
Коды ошибок для Каналов продаж
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 64000 | Ошибка обновления Канала продаж: вы не можете изменить тип для Канала продаж, созданного автоматически | Канал продаж созданный автоматически имеет неизменяемый тип, доступный только для чтения |
Коды ошибок для Ячеек и Зон склада
| Код ошибки | Сообщение | Описание |
|---|---|---|
| 67000 | Ячейка с идентификатором ‘{параметр}’ не относится к указанному складу ‘{параметр}'» | Нельзя указывать ячейку от другого склада |
| 67001 | Нельзя указывать ячейку для ‘{параметр}’ | Нельзя задавать ячейку для позиций документа типа Комплект или Услуга |
| 67002 | Указанная зона ‘{параметр}’ не является зоной склада ‘{параметр}’ ячейки | Нельзя задавать ячейке зону другого склада |
| 67003 | Превышено максимальное число зон у склада | Нарушено ограничение на количество зон на аккаунте |
| 67004 | Зона ‘{параметр}’ не является зоной склада ‘{параметр}’ | Для заданного склада нельзя менять зону другого склада |
| 67005 | Ячейка ‘{параметр}’ не является ячейкой склада ‘{параметр}’ | Для заданного склада нельзя менять ячейку другого склада |
|
|||
| anshnine
03.07.20 — 12:32 |
Всем добрый день. Собственно вопрос в заголовке. Сертификат есть , действует еще 180 дней. Так же в окне сообщений пишут о необходимости проверки соедения с оператором учетной записи. В настройках учетки во вкладке сертификат нажал проверить . Там все проверки прошли. Отправка приглашения любого контрагента заканчивается этой ошибкой.Заранее спасибо за помощь |
||
| anshnine
1 — 03.07.20 — 13:12 |
http://prntscr.com/tb1tpq |
||
| anshnine
2 — 06.07.20 — 07:05 |
Никто не знает в чем может быть дело ? |
||
| anshnine
3 — 06.07.20 — 15:45 |
ап |
||
| asady
4 — 06.07.20 — 16:17 |
(0) перейди в журнал регистрации по ссылке и запость сюда сообщение об ошибке |
||
|
anshnine 5 — 07.07.20 — 07:22 |
(4) http://prntscr.com/td4zf8 |
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
|
Lonika |
|
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 3 раз |
Сам сертификат работает, например, могу войти в сервис отправки электронной отчетности (это тоже сервис nalog.ru). На стадии проверки «В хранилище сертификатов «Личные» установлен КСКПЭП, выданный юридическому лицу аккредитованным удостоверяющим центром, и успешно создана электронная подпись с использованием КСКПЭП юридического лица» среди доступных к выбору подписей выбираю необходимый сертификат и получаю ошибку «Не удается обнаружить токен или смарт-карту» Версия КриптоПро 5.0.12266 КС1. При проверке в КриптоПро-Сертификаты захожу в папку «Сертификаты текущий пользователь», затем вкладка «Личное», вкладка «Реестр», вкладка «Сертификаты». Нахожу там сертификат своего ООО, выбираю его. Пути сертификации: Минкомсвязь России — Федеральная налоговая служба — мое ООО. Состояние сертификата: сертификат действителен. При тестировании контейнера закрытого ключа к КриптоПро ошибок не обнаружено. Ранее заходила с данным сертификатом в ЛК В Диспетчере устройств мой рутокен лайт отображается в списке устройств для чтения смарт-карт В Панели управления Рутокен на вкладке Настройки Количество считывателей Рутокен S стоит цифра 3. Дата изменения: пользователем 3 октября 2022 г. 8:37:11(UTC) |
![]() |
|
|
Андрей * |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
Здравствуйте. Через панель управления КриптоПро CSP (да, в сообщении указано, что контейнер успешно тестируется, но по сертификату может быть выдаст информацию, например, что он связан с другим контейнером).. |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
|
|
Lonika
оставлено 03.10.2022(UTC) |
|
Lonika |
|
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 3 раз |
Автор: Андрей * Здравствуйте. Через панель управления КриптоПро CSP (да, в сообщении указано, что контейнер успешно тестируется, но по сертификату может быть выдаст информацию, например, что он связан с другим контейнером).. Проверка завершена успешно ошибок не обнаружено поставщик E=uc@nalog.ru, ОГРН=1047707030513, ИНН=007707329152, C=RU, S=77 Москва, L=г. Москва, STREET=»ул. Неглинная, д. 23″, OU=УЦ ЮЛ, O=Федеральная налоговая служба, CN=Федеральная налоговая служба Данные самого сертификата (наименование, ИНН ЮЛ и т.п.) я тоже удалила для этого сообщения. Во вкладке КриптоПро «Сервис» нажимаю «Установить личный сертификат» и в этой вкладке мне предлагается выбрать расположение сертификата. У меня нет никакой кнопки «найти контейнер автоматически». «Далее» нажать не получается пока не выбрано расположение. Отредактировано пользователем 3 октября 2022 г. 9:00:43(UTC) |
![]() |
|
|
Андрей * |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
В сообщении не вижу строчки, что сертификат установлен в личное хранилище, установите сертификат из самого контейнера или из файла. Вы можете открыть сертификат в консоли управления и на вкладке Состав есть кнопка для выгрузки в файл, далее установить через КриптоПро CSP |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
|
|
Lonika
оставлено 03.10.2022(UTC) |
|
Lonika |
|
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 3 раз |
Автор: Андрей * В сообщении не вижу строчки, что сертификат установлен в личное хранилище, установите сертификат из самого контейнера или из файла. Вы можете открыть сертификат в консоли управления и на вкладке Состав есть кнопка для выгрузки в файл, далее установить через КриптоПро CSP Я не могу выгрузить в файл закрытый ключ! Это сертификат, выданный УЦ ФНС, его нельзя ведь выгрузить в файл. Кнопка «Да, экспортировать закрытый ключ» неактивна, я не могу ее нажать. |
![]() |
|
|
Андрей * |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
Автор: Lonika Автор: Андрей * В сообщении не вижу строчки, что сертификат установлен в личное хранилище, установите сертификат из самого контейнера или из файла. Вы можете открыть сертификат в консоли управления и на вкладке Состав есть кнопка для выгрузки в файл, далее установить через КриптоПро CSP Я не могу выгрузить в файл закрытый ключ! Это сертификат, выданный УЦ ФНС, его нельзя ведь выгрузить в файл. Кнопка «Да, экспортировать закрытый ключ» неактивна, я не могу ее нажать. В моем сообщении не было ничего про закрытый ключ. Всё что нужно, это посмотреть, есть ли связь сертификата с контейнером. Это можно проверить утилитами или указав сертификат (файл.cer), найти контейнер и установить связь. То, что где то работает, не означает, что используется доступ через сертификат. К примеру, плагин, может работать и с хранилищем и с контейнерами (читать оттуда сертификат), а в личном может отсутствовать ссылка. Можете посмотреть, есть ли ссылка на закрытый ключ при просмотре сертификата через Личные в реестре? |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
|
|
Lonika
оставлено 04.10.2022(UTC) |
|
Андрей * |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
Как пример выше, Вы выбрали сертификат или выбрали контейнер через Обзор, при тестировании? |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
|
Lonika |
|
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 3 раз |
Автор: Андрей * В моем сообщении не было ничего про закрытый ключ. Всё что нужно, это посмотреть, есть ли связь сертификата с контейнером. Это можно проверить утилитами или указав сертификат (файл.cer), найти контейнер и установить связь. То, что где то работает, не означает, что используется доступ через сертификат. К примеру, плагин, может работать и с хранилищем и с контейнерами (читать оттуда сертификат), а в личном может отсутствовать ссылка. Можете посмотреть, есть ли ссылка на закрытый ключ при просмотре сертификата через Личные в реестре? К сожалению, я тогда не понимаю, что мне нужно сделать. |
![]() |
|
|
Lonika |
|
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 3 раз |
Автор: Андрей * Как пример выше, Вы выбрали сертификат или выбрали контейнер через Обзор, при тестировании? Я провела две проверки и результат одинаковый. Первая: Сервис-Протестировать-Обзор и выбрала нужный считыватель Рутокен Лайт. Вторая: Сервис-Протестировать-По сертификату и выбрала нужный сертификат. |
![]() |
|
|
barbos |
|
|
Статус: Новичок Группы: Участники
|
Аналогичная проблема, все что выше просили. все сделала. Связь есть. все работает, но при попытке входа в ЛК Налоговой на последнем шаге: Не удается обнаружить токен Отредактировано пользователем 12 октября 2022 г. 14:04:07(UTC) |
![]() |
|
| Пользователи, просматривающие эту тему |
|
Guest (2) |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Как посмотреть ошибки автосинхронизации
При настройке автосинхронизации для приложений на базе SAML могут возникать следующие ошибки:
-
Ошибки этапа настройки
-
Ошибки выполнения автосинхронизации
-
Ошибки на уровне ресурсов
Ниже описано, как их устранить.
Примечание. Если вам не удается устранить ошибку с помощью инструкций из этой статьи, обратитесь в службу поддержки.
Ошибки этапа настройки
Ошибка кода авторизации
Такая ошибка может появиться, если код авторизации не удалось заменить на токен обновления. Причиной может послужить неправильный код авторизации или длительный промежуток времени с момента авторизации до нажатия кнопки Сохранить изменения. Чтобы устранить эту ошибку, повторите авторизацию и сохраните изменения.
| Сообщение об ошибке | Решение |
|---|---|
| Не удалось сгенерировать токен авторизации. | Повторите попытку и сохраните изменения. |
Ошибка устаревшей страницы
Эта ошибка возникает, если страница браузера не обновлялась, в то время как настройки были изменены в другом окне браузера или другим пользователем. При этом появляются следующие сообщения:
| Сообщение об ошибке | Решение |
|---|---|
| Данные на странице устарели. Конфигурация синхронизации настроена. | Чтобы переопределить существующие настройки, обновите страницу. |
| Данные на странице устарели. Конфигурация синхронизации отсутствует. | Чтобы переопределить существующие настройки, обновите страницу. |
| Данные на странице устарели. Активировать ненастроенную конфигурацию синхронизации нельзя. | Чтобы переопределить существующие настройки, обновите страницу. |
| Данные на странице устарели. Удалить ненастроенную конфигурацию синхронизации нельзя. | Чтобы переопределить существующие настройки, обновите страницу. |
Временная ошибка страницы
Временные ошибки обычно устраняются сами собой. Обновите страницу или повторите попытку немного позже.
| Сообщение об ошибке | Решение |
|---|---|
| Не удалось загрузить настройки синхронизации. | Обновите страницу. |
| Не удалось загрузить предварительные настройки синхронизации. | Обновите страницу. |
| Не удалось загрузить статус синхронизации. | Обновите страницу. |
| Не удалось активировать синхронизацию. | Повторите попытку. |
| Не удалось удалить настройки синхронизации. | Повторите попытку. |
| Не удалось создать настройку синхронизации. | Повторите попытку и сохраните изменения. |
| Не удалось обновить настройку синхронизации. | Повторите попытку и сохраните изменения. |
| Не удалось загрузить настраиваемые атрибуты. | Повторите попытку. |
| Не удалось обновить сопоставление атрибутов. | Повторите попытку. |
| Не удалось обновить настройки группы для автосинхронизации. | Повторите попытку. |
| Не удалось обновить конфигурацию отключения. | Повторите попытку. |
| Конфигурация удалена, но запретить доступ клиента API не удалось. |
При удалении конфигурации отменяются разрешения, которые позволяют приложению обращаться к вашим данным в сервисах Google. Эту ошибку можно устранить вручную: нажмите Управлять доступом клиента API в разделе Безопасность. Если вы планируете позже восстановить конфигурацию, ничего не делайте. |
| Не удалось обновить настройки синхронизации. | Обновите страницу. |
| Ошибка аутентификации. | Учетные данные для аутентификации (например, токен владельца) указаны неверно. Задайте правильные учетные данные. |
| Введенный вами URL конечной точки системы кросс-доменного управления учетными данными (SCIM) недействителен. | URL конечной точки недействителен. Введите правильный URL. |
| Не удалось включить синхронизацию. | Переведите ползунок Автосинхронизация в положение Активный. |
| Не удалось удалить настройки синхронизации. |
|
| Не удалось загрузить атрибуты целевого поставщика услуг. |
|
| Не удалось загрузить набор атрибутов целевого ресурса. | Проверьте URL конечной точки, указанный при настройке автосинхронизации, и повторите сопоставление атрибутов облачного каталога с атрибутами целевого приложения. |
Ошибки выполнения автосинхронизации
Ошибки выполнения автосинхронизации возникают из-за проблем с доступом к API, авторизацией и конфигурацией.
Ошибки внутренних сервисов Google
| Код ошибки | Описание и решение |
|---|---|
| 17003 17006 17008 |
Описание Не удалось пройти аутентификацию во внутренних сервисах Google. Причина Аннулированы разрешения у следующего идентификатора клиента синхронизации пользователей: 910835873219-es01p47a1ks618hgp59q26cnc6sv33r3.apps.googleusercontent.com Решение Убедитесь, что у данного идентификатора есть разрешения на доступ к следующим областям: https://www.googleapis.com/auth/admin.directory.user.readonly, В разделе Безопасность консоли администратора нажмите Управлять доступом клиента API и перейдите в раздел Расширенные настройки. Проверьте доступ идентификатора к указанным областям и при необходимости добавьте их. |
| 17007 |
Описание Не удалось предоставить доступ приложениям, которые поддерживают автосинхронизацию с делегированием прав на уровне домена. Не удалось делегировать права на уровне домена сервису автосинхронизации. Без этих прав сервис автосинхронизации не сможет читать каталог Google. Причины Причина 1: аннулированы разрешения у идентификатора клиента синхронизации пользователей. Решения В разделе Безопасность консоли администратора нажмите Управлять доступом клиента API и перейдите в раздел Расширенные настройки. Добавьте идентификатор клиента и области действия: Идентификатор клиента: Области действия: https://www.googleapis.com/auth/admin.directory.user.readonly, Вы также можете удалить приложение, с которым возникла проблема, а затем добавить его снова. Причина 2: непредвиденные системные ошибки. Решение Как правило, эта проблема решается автоматически. Если она не решилась через несколько часов, добавьте идентификатор клиента и области действия или удалите и повторно добавьте приложение, как описано выше в инструкциях для причины 1. |
Ошибки токена авторизации
| Код ошибки | Описание и причина | Решение |
|---|---|---|
| 17010 |
Недостаточно учетных данных для вызова конечной точки SCIM. Причина: токен авторизации аннулирован. |
Повторите попытку авторизации. Для этого нажмите Автосинхронизация и в настройках выберите Авторизовать повторно. |
| 17013 |
Ошибка получения токена доступа у поставщика услуг. Причина: токен авторизации аннулирован. |
Если проблема не решится автоматически, повторите попытку авторизации. Для этого нажмите Автосинхронизация и в настройках выберите Авторизовать повторно. |
Ошибки доступа к токену
| Код ошибки | Описание и причина | Решение |
|---|---|---|
| 17002 17011 |
Не удалось создать токен доступа. Причина: сейчас некоторые внутренние сервисы Google недоступны. |
Проблема должна устраниться автоматически. |
| 17009 | Не удалось создать токен доступа из токена обновления. | Повторите попытку авторизации. Для этого нажмите Автосинхронизация и в настройках выберите Авторизовать повторно. |
Общие ошибки
| Код ошибки | Описание и причина | Решение |
|---|---|---|
| 1200x |
Внутренняя ошибка |
Проблема должна устраниться автоматически. |
| 25001 | Сервер или сервис Google временно недоступны. | Настройте автосинхронизацию ещё раз. |
| 25002 |
Сервер или сервис Google временно недоступны. Причина: у клиента не установлено приложение. |
Установите приложение и настройте автосинхронизацию ещё раз. |
| 25005 | Сервер или сервис Google временно недоступны. | Проблема должна устраниться автоматически. |
| 25016 | Сервер или сервис Google временно недоступны. | Настройте автосинхронизацию ещё раз. |
| 50001 | Внутренняя ошибка | Проблема должна устраниться автоматически. |
| 50003 | Внутренняя ошибка | Проблема должна устраниться автоматически. |
| 50005 | Удаленная группа присутствует в фильтрах групп. | Удалите данную группу из области синхронизации. |
| 50006 | Внутренняя ошибка | Проблема должна устраниться автоматически. |
Ошибки на уровне ресурсов
Если в разделе «Автосинхронизация» на странице настроек приложения SAML есть ошибки, нажмите Скачать список. В скачанном файле будут перечислены операции создания, удаления или изменения, которые завершились сбоем, а также приведены коды и описания всех ошибок.
Эти ошибки влияют только на конкретные ресурсы, указанные в файле.
| Код ошибки | Описание ошибки | Решение |
|---|---|---|
| 45003 |
Приложение на базе системы кросс-доменного управления учетными данными (SCIM) не принимает запрос на обновление, создание или удаление ресурса. Подробное описание ошибки содержится в файле, который можно скачать. Возможные причины:
|
После устранения ошибки сохраните изменения и повторите попытку. |
| 45004 |
Произошла ошибка при передаче данных между поставщиком услуг и Google в качестве поставщика идентификационной информации. Текст ошибки: «Внутренняя ошибка – превышена квота». Возможные причины:
|
Обратитесь к поставщику услуг. |
| 45005 | Конечная точка системы кросс-доменного управления учетными данными (SCIM) недоступна. Проверьте данные в консоли администратора. | После устранения ошибки сохраните изменения и повторите попытку. |
| 45006 |
Приложение на базе системы кросс-доменного управления учетными данными (SCIM) не принимает запрос на обновление, создание или удаление ресурса. Подробное описание ошибки содержится в файле, который можно скачать. Возможные причины:
|
После устранения ошибки сохраните изменения и повторите попытку. |
| 45016 |
Приложение на базе системы кросс-доменного управления учетными данными (SCIM) не принимает запрос на обновление, создание или удаление ресурса, поскольку обязательное поле не заполнено. Подробное описание ошибки содержится в файле, который можно скачать. |
После устранения ошибки сохраните изменения и повторите попытку. |
Эта информация оказалась полезной?
Как можно улучшить эту статью?
Не удаётся обнаружить токен или смарт-карту
Страницы 1
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
#1 2021-07-27 11:29:18
- Kenjikan
- Посетитель
- Неактивен
Не удаётся обнаружить токен или смарт-карту
Добрый день.
Пытаюсь зарегистрироваться в ЛК налоговой для ЮЛ.
Все проверки на сайте прошёл, но при переходе в ЛК получаю сообщение «Не удаётся обнаружить токен или смарт-карту»
Сам рутокен в панели управления виден, КриптоПро установлен и лицензирован.
#2 Ответ от Николай Киблицкий 2021-07-27 11:39:41
- Николай Киблицкий
- Техническая поддержка
- Неактивен
Re: Не удаётся обнаружить токен или смарт-карту
Здравствуйте.
Эта ошибка возникает в приложении Рутокен Коннект, установленном на компьютер, если не выполняются условия для успешного входа или выбран неверный вариант входа.
Для решения, воспользуйтесь инструкцией по ссылке.
#3 Ответ от Kenjikan 2021-07-27 12:25:40
- Kenjikan
- Посетитель
- Неактивен
Re: Не удаётся обнаружить токен или смарт-карту
Добрый день, Николай.
К сожалению, предложенное вами решение привело к тому, что проверка готовности стала выдавать ошибку на этапе «Проверка защищённого соединения с сервером Личного кабинета юридического лица».
То есть, при установленном РутокенКоннект или включенном сайте lkul.nalog.ru проверку я прохожу, но сайт не определяет Рутокен.
Если отключить сайт ЛКЮЛ или удалить РутокенКоннект (или плагин) я просто не прохожу финальную фазу проверки.
#4 Ответ от Николай Киблицкий 2021-07-27 12:37:08
- Николай Киблицкий
- Техническая поддержка
- Неактивен
Re: Не удаётся обнаружить токен или смарт-карту
Расширение Рутокен Коннект должно использоваться для входа на сайт nalog.ru только если используется модель Рутокен ЭЦП 2.0 с записанным на него сертификатом формата PKCS#11 (как для ЕГАИС).
Если используется другая модель Рутокен и/или на Рутокене содержится сертификат формата «КриптоПро CSP», то на портале lkul.nalog.ru, необходимо выбирать вход: «Диагностика подключения по сертификату ключа проверки ЭП».
#5 Ответ от Андрей777 2021-09-08 22:11:03
- Андрей777
- Посетитель
- Неактивен
Re: Не удаётся обнаружить токен или смарт-карту
Добрый день, регистрируюсь на сайте налоговой для входа в ЛК Юрлица, прохожу «Диагностика подключения по сертификату ключа проверки ЭП», прохожу проверку на сайте, но не могу зайти в ЛК (токен не обнаружен). Использую рутокен S. Рутокен работает, система видит его.
#6 Ответ от Николай Киблицкий 2021-09-09 10:41:06
- Николай Киблицкий
- Техническая поддержка
- Неактивен
Re: Не удаётся обнаружить токен или смарт-карту
Здравствуйте, Андрей777.
Если у вас установлена программа Рутокен Коннект, вам необходимо удалить ее и соответствующее расширение из браузера.
#7 Ответ от Fedor 2022-09-29 10:01:39
- Fedor
- Посетитель
- Неактивен
Re: Не удаётся обнаружить токен или смарт-карту
Добрый день!
Клиенты пытаются войти в личный кабинет налоговой, http://lkul.nalog.ru.
Вчера все прекрасно заходило, сегодня выдает ошибку (Не удается обнаружить токен или смарт карту). Носитель ЭЦП ESMART token, сам носитель в подключенных к порту USB определяется. В панели управления рутокеном носитель не определяется. Не понятно почему сегодня выходит ошибка, вчера все прекрасно работало.
Можете помочь с таким вопросом?
Спасибо.
#8 Ответ от Николай Киблицкий 2022-09-29 13:08:21
- Николай Киблицкий
- Техническая поддержка
- Неактивен
Re: Не удаётся обнаружить токен или смарт-карту
Здравствуйте Fedor.
Судя по ошибке у вас установлен Рутокен Коннект который вам нужно удалить, если вы не используете Рутокен ЭЦП 2.0.
Сообщений 8
Страницы 1
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
Я пытаюсь получить доступ к API метода получения с помощью токена, и я проверяю документ аутентификации токена Django rest framework, и я следил за тем же, я не мог найти ошибку, в то время как логин с токеном суперпользователя генерируется успешно и с помощью этого токена пытается получить доступ к API, но получить ошибку, как указано ниже. если кто-нибудь подскажет мне, в чем я допустил ошибку.
Not Found: /hello/ 'Authorization : token 52de5dee105764e92d5d6c644919b4aafec489ab'
[05/Jul/2020 12:36:15] "GET /hello/%20'Authorization%20:%20%20token%2052de5dee105764e92d5d6c644919b4aafec489ab' HTTP/1.1" 404 2429
Not Found: /hello/ 'Authorization: Token 52de5dee105764e92d5d6c644919b4aafec489ab'
[05/Jul/2020 12:39:05] "GET /hello/%20'Authorization:%20Token%2052de5dee105764e92d5d6c644919b4aafec489ab' HTTP/1.1" 404 2419
Not Found: /hello/ "Authorization: Token 52de5dee105764e92d5d6c644919b4aafec489ab"
[05/Jul/2020 12:39:43] "GET /hello/%20%22Authorization:%20Token%2052de5dee105764e92d5d6c644919b4aafec489ab%22 HTTP/1.1" 404 2413
#Setting.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication', # <-- And here
],
}
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken',
'atoken',
]
#URLS.PY
from django.contrib import admin
from django.urls import path
from rest_framework.authtoken.views import obtain_auth_token
from atoken import views
urlpatterns = [
path('admin/', admin.site.urls),
path('api-token-auth/', obtain_auth_token),
path('hello', views.HelloView.as_view(), name='hello'),
]
#VIEWS.PY
class HelloView(APIView):
permission_classes = (IsAuthenticated,)
def get(self, request):
content = {'message': 'Hello, World!'}
return Response(content)
#While login with superuser got the token mentioned bellow
{
"token": "52de5dee105764e92d5d6c644919b4aafec489ab"
}
#so Added in the usr like bellow `enter code here`
http://127.0.0.1:8000/hello/ 'Authorization: token 52de5dee105764e92d5d6c644919b4aafec489ab'
http://127.0.0.1:8000/hello/ "Authorization: Token 52de5dee105764e92d5d6c644919b4aafec489ab"
#Tried both single and double quotes but same error.
3 ответа
Из документа DRF TokenAuthentication
Для аутентификации клиентов ключ токена должен быть включен в HTTP-заголовок авторизации .
Обычный HTTP-вызов через URL-адрес браузера не отправляет на сервер никаких дополнительных заголовков. Итак, вы должны указать заголовки.
Попробуйте API с помощью команды curl
curl -X GET http://127.0.0.1:8000/hello -H 'Authorization: Token 52de5dee105764e92d5d6c644919b4aafec489ab'
0
Arakkal Abu
5 Июл 2020 в 10:36
В пути к URL-адресу отсутствует косая черта. Обновите его следующим образом:
path('hello/', views.HelloView.as_view(), name='hello')
0
Ayush Bansal
5 Июл 2020 в 10:36
Ваша игра может не получить токен от Origin из-за некорректной установки игры и клиента Origin. Более того, ограничения со стороны ваших UAC, ISP или антивирусных / межсетевых экранов также могут стать причиной обсуждаемой ошибки. Пострадавший пользователь сталкивается с ошибкой, когда он пытается играть в игру. Сообщается, что эта проблема возникает в играх Titanfall и Apex Legends.
Не удалось получить токен из источника
Прежде чем перейти к решениям, перезагрузите систему и сетевое оборудование. Кроме того, убедитесь, что в вашем районе нет отключения интернета. Если вы столкнулись с проблемой при запуске игры из ярлыка, попробуйте сыграть в игру из клиента Origin. Кроме того, будет хорошей идеей изменить свой пароль на Origin и затем проверить, решена ли проблема. Кроме того, попробуйте подключиться к другому дата-центру игры. Закройте клиент Origin и игру через диспетчер задач, а затем проверьте, нет ли в игре ошибки. Наконец, выйдите из клиента Origin и повторите вход, чтобы убедиться, что игра работает нормально.
Решение 1. Запустите клиент Origin и игру от имени администратора.
В последних сборках Windows Microsoft значительно усилила меры безопасности и конфиденциальности. Одной из таких мер является защита жизненно важных системных ресурсов через UAC. Вы можете столкнуться с обсуждаемой ошибкой, если Origin / game не смогли получить доступ к важному системному ресурсу из-за защиты UAC. В этом контексте запуск клиента Origin и игры с правами администратора может решить проблему.
- Щелкните правой кнопкой мыши на клиенте Origin и выберите «Запуск от имени администратора».
Запустите Origin от имени администратора
- Теперь запустите игру и проверьте, нет ли в игре ошибки.
- Если нет, то выйдите из игры / Origin и убейте все связанные с ней процессы через диспетчер задач.
- Теперь откройте каталог установки игры. Обычно это: C: Program Files (x86) Origin Games
Откройте папку Origin Games
- Затем откройте папку с проблемной игрой, например Titanfall.
- Теперь щелкните правой кнопкой мыши на исполняемый файл игры, например Titanfall.exe, а затем нажмите Запуск от имени администратора.
Запустите игру Exe от имени администратора
- Теперь проверьте, нет ли в игре ошибки.
Решение 2. Обновите Windows, системные драйверы, Origin Client и игру
Вы можете столкнуться с обсуждаемой ошибкой, если используете устаревшую версию Windows, системные драйверы, клиент Origin и саму игру. В этом случае обновление всего этого может решить проблему.
- Обновите Windows до последней сборки.
- Обновите системные драйверы до последней сборки. Если проблема начала возникать после обновления драйвера видеокарты, откатите драйвер до предыдущей версии.
- Убедитесь, что автоматическое обновление игры и автоматическое обновление источника не отключены (в разделе «Обновление клиента» в настройках приложения).
Автоматическое обновление игр и оригиналов включено
- Затем перейдите в библиотеку «Моя игра» в клиенте Origin.
- Теперь щелкните правой кнопкой мыши игру, а затем нажмите «Обновить игру».
Обновление Apex Legends
- Дождитесь завершения процесса обновления, а затем запустите игру, чтобы убедиться, что в игре нет ошибок.
Решение 3. Оптимизируйте настройки графики для игры
Вы можете столкнуться с обсуждаемой ошибкой, если настройки графики вашей системы не оптимизированы для игры. В этом контексте оптимизация графических настроек вашего ПК вручную с помощью настроек может решить проблему. Для иллюстрации обсудим процесс для GeForce Experience.
- Выход из Origin и игра.
- Откройте GeForce Experience и перейдите на вкладку «Игры».
- В левой части окна выберите проблемную игру, а затем в правой части окна нажмите кнопку «Оптимизировать».
Оптимизируйте игру в GeForce Experience
- Теперь запустите игру и проверьте, работает ли она нормально.
Решение 4. Включите / отключите функцию Origin в игре
Клиент Origin имеет функцию Origin In-Game, которая позволяет пользователю общаться с друзьями, транслировать игру и т. Д. Однако в некоторых случаях это было причиной проблемы при включении, тогда как в других случаях включение опции решил проблему. В этом контексте включение / отключение функции Origin в игре может решить проблему.
- Запустите клиент Origin и откройте меню Origin. Затем нажмите «Настройки приложения».
- Теперь перейдите на вкладку «Происхождение в игре», а затем отключите «Происхождение в игре», выключив переключатель. Если он уже включен, отключите его.
Включить / выключить Origin в игре
- Теперь запустите игру и проверьте, исправлена ли ошибка.
Решение 5. Разрешите Origin и игру через антивирус / брандмауэр
Вы можете столкнуться с обсуждаемой ошибкой, если ваши антивирусные / брандмауэрные приложения блокируют доступ к жизненно важному ресурсу, необходимому для работы Origin / игры. В этом случае разрешение Origin / игры через ваши антивирусные программы / приложения брандмауэра или временное отключение ваших антивирусных программ / приложений брандмауэра может решить проблему.
Предупреждение. Действуйте на свой страх и риск, поскольку отключение или разрешение приложений через антивирусные программы / брандмауэры может подвергать вашу систему таким угрозам, как вирусы, трояны и т. Д.
- Временно отключите антивирус
- Временно отключите приложение брандмауэра. Следите за Защитником Windows; если он выполняет роль антивируса / брандмауэра, отключите его или добавьте исключение для Origin / игры через брандмауэр Windows. При добавлении исключения не забудьте добавить для входящих правил, а также для исходящих правил. При добавлении правил придерживайтесь любого протокола. Чтобы настроить правила брандмауэра, следуйте инструкциям официальная статья, Если вы используете другой инструмент, например Dyn Internet Guide, для блокировки вредоносных сайтов и других вещей, разрешите через него respawn.com и cloudapp.net.
- Затем запустите Origin / игру, чтобы проверить, решена ли проблема.
Решение 6. Используйте VPN-клиент для подключения к Интернету
Чтобы контролировать веб-трафик и защищать своих пользователей, интернет-провайдеры используют различные методы и методы. И иногда во время этого процесса ваш интернет-провайдер может заблокировать важный ресурс для работы в Origin / игре и, таким образом, вызвать проблему под рукой. В этом контексте решение другой сети (вы можете использовать точку доступа вашего мобильного телефона) или использование VPN может решить проблему.
- Выйдите из игры / Origin и убейте все связанные с ней процессы через диспетчер задач.
- Скачайте и установите VPN-клиент. Затем запустите VPN и подключитесь к предпочтительному местоположению.
- Теперь запустите Origin / игру и проверьте, решена ли проблема с токеном.
Решение 7. Очистите кэш DNS вашей системы
Ваша система использует кэш DNS для ускорения загрузки. Вы можете столкнуться с ошибкой под рукой, если кэш DNS вашей системы поврежден. В этом случае очистка кэша вашей системы может решить проблему.
- На панели задач вашей системы нажмите поле поиска Windows и введите Командная строка. В показанном списке результатов щелкните правой кнопкой мыши командную строку и выберите «Запуск от имени администратора».
- Теперь введите следующие команды одну за другой и нажимайте клавишу Enter после каждой: ipconfig / flushdns ipconfig / registerdns ipconfig / release ipconfig / renew
FlushDNS
- Затем выйдите из командной строки.
- Теперь запустите Origin / game и проверьте, была ли проблема решена.
Решение 8. Используйте Google DNS
DNS используется для перевода понятных человеку доменных имен в IP-адреса. Вы можете столкнуться с обсуждаемой ошибкой, если у вашего DNS-сервера возникли проблемы с переводом доменного имени. В этом контексте использование открытого DNS-сервера, такого как Google DNS, может решить проблему.
- Выйдите из игры / Origin и убейте все связанные с ней процессы через диспетчер задач.
- Измените свой DNS-сервер, чтобы открыть DNS, как Google DNS.
Настройка DNS-сервера Google
- Теперь запустите Origin / игру и проверьте, решена ли проблема.
Решение 9: очистить кэш источника
Как и многие другие приложения, клиент Origin использует кэш для ускорения работы и повышения производительности. Вы можете столкнуться с проблемой, если кэш вашего клиента Origin поврежден по какой-либо причине. В этом контексте очистка кэша клиента Origin может решить проблему. Для выяснения, мы обсудим процесс для ПК с Windows.
- Выйдите из игры / клиента Origin и убейте все связанные процессы через диспетчер задач.
- Одновременно нажмите клавиши Windows + R и выполните следующую команду:% ProgramData% / Origin
- Теперь найдите папку LocalContent. Затем удалите все файлы / папки, кроме папки LocalContent.
Не удалять папку LocalContent
- Снова нажмите клавиши Windows + R и выполните:% AppData%
Введите% AppData% и нажмите Enter
- Теперь найдите и удалите папку Origin.
- Еще раз нажмите клавиши Windows + R и выполните:% USERPROFILE% AppData Local
- Теперь удалите папку Origin в папке Local и перезагрузите систему.
- После перезагрузки запустите Origin / игру и проверьте, нормально ли работает игра.
Решение 10. Включите протокол NetBIOS через TCP / IP
NetBIOS через TCP / IP — это сетевой протокол, используемый устаревшими приложениями для связи по сетям TCP / IP. Вы можете столкнуться с обсуждаемой ошибкой, если протокол NetBIOS через TCP / IP не включен. Некоторые пользователи столкнулись с проблемой, когда указанный протокол был включен. В этом контексте включение / отключение протокола NetBIOS через TCP / IP может решить проблему.
- На панели задач вашей системы нажмите на поле поиска Windows и введите Панель управления. Затем в списке результатов нажмите на панель управления.
Открытая панель управления
- Теперь нажмите на Сеть и Интернет.
Сеть и Интернет — Панель управления
- Затем нажмите на Центр управления сетями и общим доступом.
Центр управления сетями и общим доступом — Панель управления
- Теперь в левой части окна нажмите «Изменить параметры адаптера».
Смените настройки адаптера
- Теперь щелкните правой кнопкой мыши ваше сетевое подключение и выберите Свойства.
- Затем нажмите «Протокол Интернета версии 4 (TCP / IPv4)» и нажмите кнопку «Свойства».
Открытие свойств интернет-протокола версии 4
- Теперь нажмите на кнопку «Дополнительно».
- Теперь перейдите на вкладку WINS и отметьте опцию Включить NetBIOS через TCP / IP. Если опция уже включена, отключите ее.
Включить NetBIOS через TCP IP
- Теперь примените изменения и запустите Origin / игру, чтобы проверить, нет ли в игре ошибки.
- Если нет, то отключите облачное хранилище в настройках приложения клиента Origin и проверьте, решена ли проблема.
Решение 11. Используйте новую учетную запись пользователя Windows для игры
Вы можете столкнуться с ошибкой получения токена из источника, если профиль пользователя вашей учетной записи Windows имеет какие-то неполные или неверные пользовательские настройки внутри. В этом случае создание новой учетной записи администратора Windows и ее воспроизведение могут решить проблему.
- Создайте и настройте новую учетную запись администратора Windows.
- Теперь запустите Origin / игру через эту учетную запись, а затем проверьте, решена ли проблема.
Решение 12. Ремонт игры
Файлы игры могут стать нестабильными со временем по разным причинам, таким как внезапное отключение питания. Вы можете столкнуться с ошибкой под рукой, если файлы игры, необходимые для работы игры, повреждены. В этом случае использование встроенного инструмента Origin-клиента для восстановления файлов игры может решить проблему. Этот инструмент проверит игру на соответствие файловой версии сервера и, если обнаружатся какие-либо несоответствия, отсутствующие / поврежденные файлы будут заменены новыми файлами.
- Откройте клиент Origin и перейдите в My Game Library.
- Теперь щелкните правой кнопкой мыши по игре и нажмите «Восстановить».
Восстановите файлы игры
- Затем дождитесь завершения процесса ремонта.
- Теперь запустите игру и проверьте, нет ли в игре ошибки.
Решение 13. Переустановите Origin клиент и игру
Если до сих пор вам ничего не помогло, то, скорее всего, установка Origin не завершена или имеет плохие модули и вызывает проблему под рукой. Возможно, вам придется деинсталляция (создайте резервную копию папок Origin из установочного каталога и папки ProgramData, а затем удалите их) и переустановите игру. Возможно, вам придется отключить Origin In-Game после переустановки клиента Origin. Если проблема не устранена даже тогда, попробуйте сбросить настройки маршрутизатора до заводских настроек по умолчанию.
Не удаётся обнаружить токен или смарт-карту
Сообщений 6
#1 Тема от Kenjikan 2021-07-27 11:29:18
Не удаётся обнаружить токен или смарт-карту
Пытаюсь зарегистрироваться в ЛК налоговой для ЮЛ.
Все проверки на сайте прошёл, но при переходе в ЛК получаю сообщение «Не удаётся обнаружить токен или смарт-карту»
Сам рутокен в панели управления виден, КриптоПро установлен и лицензирован.
#2 Ответ от Николай Киблицкий 2021-07-27 11:39:41
Re: Не удаётся обнаружить токен или смарт-карту
Здравствуйте.
Эта ошибка возникает в приложении Рутокен Коннект, установленном на компьютер, если не выполняются условия для успешного входа или выбран неверный вариант входа.
Для решения, воспользуйтесь инструкцией по ссылке.
#3 Ответ от Kenjikan 2021-07-27 12:25:40
Re: Не удаётся обнаружить токен или смарт-карту
Добрый день, Николай.
К сожалению, предложенное вами решение привело к тому, что проверка готовности стала выдавать ошибку на этапе «Проверка защищённого соединения с сервером Личного кабинета юридического лица».
То есть, при установленном РутокенКоннект или включенном сайте lkul.nalog.ru проверку я прохожу, но сайт не определяет Рутокен.
Если отключить сайт ЛКЮЛ или удалить РутокенКоннект (или плагин) я просто не прохожу финальную фазу проверки.
#4 Ответ от Николай Киблицкий 2021-07-27 12:37:08
Re: Не удаётся обнаружить токен или смарт-карту
Расширение Рутокен Коннект должно использоваться для входа на сайт nalog.ru только если используется модель Рутокен ЭЦП 2.0 с записанным на него сертификатом формата PKCS#11 (как для ЕГАИС).
Если используется другая модель Рутокен и/или на Рутокене содержится сертификат формата «КриптоПро CSP», то на портале lkul.nalog.ru, необходимо выбирать вход: «Диагностика подключения по сертификату ключа проверки ЭП».
#5 Ответ от Андрей777 2021-09-08 22:11:03
Re: Не удаётся обнаружить токен или смарт-карту
Добрый день, регистрируюсь на сайте налоговой для входа в ЛК Юрлица, прохожу «Диагностика подключения по сертификату ключа проверки ЭП», прохожу проверку на сайте, но не могу зайти в ЛК (токен не обнаружен). Использую рутокен S. Рутокен работает, система видит его.
#6 Ответ от Николай Киблицкий 2021-09-09 10:41:06
Re: Не удаётся обнаружить токен или смарт-карту
Здравствуйте, Андрей777.
Если у вас установлена программа Рутокен Коннект, вам необходимо удалить ее и соответствующее расширение из браузера.
Источник
Не удается обнаружить токен или смарт карту что делать
После прохождения проверки условий подключения по сертификату ключа проверки ЭЦП и выбора сертификата в личном кабинете юридического лица на сайте nalog.ru через Yandex браузер возникает одно из двух сообщений:
«Не удается обнаружить токен или смарт-карту. Подключите Рутокен в любой USB-порт компьютера или к картридеру» или «На Рутокене нет сертификатов. Для доступа к сайту запишите на Рутокен сертификат«.

Эти ошибки возникают в приложении Рутокен Коннект, установленном на компьютер, если не выполняются условия для успешного входа или выбран неверный вариант входа.
Необходимо определить нужно ли расширение Рутокен Коннект и какой вариант входа нужно использовать.
Расширение Рутокен Коннект должно использоваться для входа на сайт nalog.ru только если используется модель Рутокен ЭЦП 2.0 с записанным на него сертификатом формата PKCS#11 (как для ЕГАИС).
Проверка условий подключения должна завершиться успешно.
2. Если используется другая модель Рутокен и/или на Рутокене содержится сертификат формата «КриптоПро CSP», то выбран правильный вариант:
нужно выполнить одно из трех действий:
a) Удалите адрес lkul.nalog.ru:443 из настроек Рутокен Коннект


b) Или удалите Адаптер Рутокен Коннект

с) Или удалите приложение Рутокен Коннект

После выполнения одного из трех действий повторите Проверку условий подключения по сертификату ЭЦП.
Источник
Не удается обнаружить токен или смарт карту что делать
После прохождения проверки условий подключения по сертификату ключа проверки ЭЦП и выбора сертификата в личном кабинете юридического лица на сайте nalog.ru через Yandex браузер возникает одно из двух сообщений:
«Не удается обнаружить токен или смарт-карту. Подключите Рутокен в любой USB-порт компьютера или к картридеру» или «На Рутокене нет сертификатов. Для доступа к сайту запишите на Рутокен сертификат«.
RU1074 > image2019-9-5_16-7-19.png» data-location=»База знаний > RU1074 > image2019-9-5_16-7-19.png» data-image-height=»662″ data-image-width=»852″>
RU1074 > image2019-9-5_16-8-6.png» data-location=»База знаний > RU1074 > image2019-9-5_16-8-6.png» data-image-height=»614″ data-image-width=»847″>
Эти ошибки возникают в приложении Рутокен Коннект, установленном на компьютер, если не выполняются условия для успешного входа или выбран неверный вариант входа.
Необходимо определить нужно ли расширение Рутокен Коннект и какой вариант входа нужно использовать.
Расширение Рутокен Коннект должно использоваться для входа на сайт nalog.ru только если используется модель Рутокен ЭЦП 2.0 с записанным на него сертификатом формата PKCS#11 (как для ЕГАИС).
Проверка условий подключения должна завершиться успешно.
2. Если используется другая модель Рутокен и/или на Рутокене содержится сертификат формата «КриптоПро CSP», то выбран правильный вариант:
нужно выполнить одно из трех действий:
a) Удалите адрес lkul.nalog.ru:443 из настроек Рутокен Коннект
RU1074 > image2019-9-5_17-32-40.png» data-location=»База знаний > RU1074 > image2019-9-5_17-32-40.png» data-image-height=»198″ data-image-width=»443″>
RU1074 > image2019-9-5_17-37-4.png» data-location=»База знаний > RU1074 > image2019-9-5_17-37-4.png» data-image-height=»379″ data-image-width=»847″>
b) Или удалите Адаптер Рутокен Коннект
RU1074 > image2019-9-5_17-41-56.png» data-location=»База знаний > RU1074 > image2019-9-5_17-41-56.png» data-image-height=»198″ data-image-width=»343″>
с) Или удалите приложение Рутокен Коннект
RU1074 > image2019-9-5_18-2-17.png» data-location=»База знаний > RU1074 > image2019-9-5_18-2-17.png» data-image-height=»339″ data-image-width=»584″>
После выполнения одного из трех действий повторите Проверку условий подключения по сертификату ЭЦП.
Источник
Как исправить ошибку, если сертификат ЭЦП не виден на носителе
Иногда при работе с электронной цифровой подписью (ЭЦП) выходит ошибка о том, что ПК не видит сертификат подписи на носителе или о том, что при создании подписи была допущена ошибка. Причина может быть в неустановленном или переставшем работать драйвере, в неисправности токена или в неисправности программной части компьютера.

Почему не виден сертификат ЭЦП на носителе
Обычно проблема решается простой перезагрузкой компьютера и объясняется сбоем в работе программных компонентов. Но иногда для исправления ошибки нужно переустановить драйвера или обратиться в службу технической поддержки пользователей.
Причина 1: драйвер не установлен или устройство отображается в диспетчере устройств с восклицательным знаком
Если на носителе Рутокен ЭЦП не найдено ни одного сертификата, а в диспетчере устройств носитель отображается с восклицательным знаком, то проблема кроется в драйвере.
Для исправления ситуации нужно извлечь носитель ЭЦП из компьютера и скачать последнюю версию драйвера. Скачивание нужно производить только с официальных ресурсов:
После установки драйвера нужно снова подключить носитель. Если ошибка повторяется, проверьте корректность работы токена. Для этого подключите его к другому ПК. Если носитель определился системой, то на неисправном компьютере удалите драйвер и установите его заново.
Причина 2: долгое опознание носителя на Windows 7
При работе в ОС Windows 7 драйверы могут долго назначаться. Решение проблемы — дождитесь окончания процесса или обновите версию ОС.
Причина 3: USB-порт работает некорректно
Убедитесь, что проблема в USB-порте, а не в носителе ЭЦП, для этого переключите токен к другому порту. Если носитель определился системой, то перезагрузите ПК. Обычно это помогает справиться с проблемой и запустить работу всех USB-портов. Если перезагрузка не помогла, то желательно обратиться в техническую поддержку для устранения неисправности.

Причина 4: носитель неисправен
Если при переключении носителя к другому ПК или USB-порту флешку компьютер не видит, то проблема в носителе. Чтобы устранить неисправность, обратитесь в сервисный центр для выпуска нового токена.
Почему выходит ошибка при создании подписи
Ошибка создания подписи обычно имеет в расшифровке два значения:
Неисправность работы подписи связана с некорректной работой криптопровайдера, неустановленными или необновленными сертификатами.
Решение проблемы зависит от типа ошибки и обычно не требует обращения в техническую поддержку.
Устранение ошибки ненайденного элемента ЭЦП
Переустановите криптопровайдер на неисправном ПК с официального портала КриптоПро (https://www.cryptopro.ru/downloads). После этого очистите кэш и временные файлы в используемом браузере, а также кэш Java. Затем удалите личные сертификаты и сертификаты главного удостоверяющего центра. Используйте КриптоПро и заново установите новые в соответствии с именем контейнера. После установки корневых сертификатов:
Если после проделанной работы ошибка сохраняется, то нужно обратиться в сервисный центр.
Устранение ошибки с построением цепочки сертификатов
Обычно ошибку вызывает отсутствие сертификатов доверенных корневых центров. Чтобы устранить неисправность, нужно открыть список сертификатов и найти проблемный. Он будет иметь отметку о проблеме в проверке отношений:

Затем пользователь скачивает с официальной страницы сертификат Минкомсвязи РФ и сертификат удостоверяющего центра, имеющего проблемы в работе. Устанавливают их в раздел «Корневые сертификаты», а пошаговый процесс выглядит так:
В нужном сертификате нажать «Установить».

В мастере импорта сертификатов нажать «Далее» и в новом окне поставить галочку напротив «Поместить все сертификаты в следующем хранилище». Нажать «Обзор».

В открывшемся списке выбрать «Доверенные корневые центры» и нажать последовательно «ОК» и «Далее».

Нажать «Готово», а затем подтвердить установку.

Дождаться установки и перезагрузить ПК. Если после этого подписание сопровождается ошибкой, то необходимо обратиться за помощью в техническую поддержку.
Ошибки в работе носителя электронной подписи могут быть вызваны как неисправностью самого носителя, так и неисправностями в программном обеспечении. Перезагрузите ПК и переключите токен в другой порт, чтобы убедиться в его исправности. Если проблема вызвана тем, что токен поврежден, то необходимо обратиться в сервисный центр компании, выпустившей USB. При ошибке, возникающей во время подписания документа, нужно убедиться в корректной работе всех сертификатов и криптопровайдера и при необходимости провести их полную переустановку.
Источник
Ошибки Рутокен

Из нашей статьи вы узнаете:
После установки драйверов и во время использования цифровой подписи потенциально могут возникнуть ошибки. Причины часто кроются в программных ошибках, неправильных действиях пользователя. На практике большинство проблем можно решить самостоятельно, без обращения за помощью в удостоверяющий центр или к специалистам по обслуживанию компьютерной техники. Рассмотрим основные ошибки, с которыми приходится сталкиваться пользователям и которые реально решить своими силами.
Ошибка: Сертификат ненадежен/Не удалось проверить статус отзыва
Ошибку можно заметить на вкладке «Сертификаты» непосредственно в панели управления Рутокен. Проблема возникает во время установки ЭЦП и связана с неполной настройкой. Речь про отсутствие специального корневого доверенного сертификата, который выдает удостоверяющий центр.
Первым шагом к устранению ошибки остается обновление комплекта драйверов. Если проблема не исчезла или последние у вас имеют актуальную версию, выполните действия по следующему алгоритму:
Если в открывшемся дереве вы видите лишь ваш личный сертификат, то надо установить еще один, который был выдан в удостоверяющем центре, и сделать доверенным.
Ошибка: Rutoken перестает определяться (Windows 10)
Потенциально могут возникать периодические ошибки из-за недоступности сертификатов, невозможности запустить панель управления. Одновременно светодиод на токене горит, а сам Рутокен имеется в Диспетчере устройств. Подобная ситуация может быть связана со спецификой работы материнской платы компьютера, когда при переходе из энергосберегающего режима в штатный не происходит «пробуждения» токена. Выходом здесь станет его отключение либо повторное подключение Рутокена (для этого достаточно достать USB-токен из разъема и подключить опять).
В случае если ошибка не исчезла, обратитесь за консультацией в удостоверяющий центр, где вы оформили ЭЦП и приобрели Рутокен.
Ошибка: Панель управления не видит Рутокен ЭЦП 2.0
Для решения проблемы выполните следующие действия:
Если ничего не помогло и ошибка осталась, обращайтесь в удостоверяющий центр «Астрал». Мы предлагаем услуги по генерации ЭЦП любых типов на выгодных условиях, а также комплексное техническое сопровождение. Для решения проблем мы готовы проконсультировать по телефону либо найти выход с помощью удаленного подключения к вашему компьютеру. Получить дополнительную информацию можно по телефону либо оставив заявку на сайте. Мы оперативно ответим и предоставим консультацию.
Источник




1 пользователь поблагодарил Андрей * за этот пост.