МойСклад FiscalAPI
Мы предлагаем инструмент, который помогает проводить фискализацию продаж.
Он связывает Кассу МойСклад с внешними фискальными сервисами.
В основе решения — публичный API для фискализации, с помощью которого МойСклад будет передавать операции на фискализацию в стороннее решение.
Что нужно сделать, чтобы поддержать интеграцию
Подключение внешнего сервиса фискализации продаж в сервисе МойСклад происходит через решение, которое необходимо разработать и опубликовать в нашем каталоге решений. Для этого вам нужно:
- Получить доступ к Личному кабинету разработчика
- Создать черновик серверного решения
- При создании приложения использовать VendorAPI.
В дескрипторе приложения, в блоке
<fiscalApi>, указать:endpointBase- базовый URL на стороне разработчика с имплементацией APIoperationTypes- какие операции будет фискализировать решение. Например, к операциям, подлежащим фискализации, относятся продажа и возврат и не относится внесение денег. Следовательно, необходимо указать только продажу и возврат как операции для фискализации. Внесение денег не будет отправляться на фискализациюpaymentTypes- список доступных способов оплаты, чтобы ограничить способ оплаты на кассе. Например, не принимается оплата по qr-коду
Пример дескриптора
<ServerApplication xmlns="https://apps-api.moysklad.ru/xml/ns/appstore/app/v2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://apps-api.moysklad.ru/xml/ns/appstore/app/v2
https://apps-api.moysklad.ru/xml/ns/appstore/app/v2/application-v2.xsd">
<vendorApi>
<endpointBase>https://example.com/dummy-app</endpointBase>
</vendorApi>
<fiscalApi>
<endpointBase>https://vendor.com/api/fiscal</endpointBase>
<operationTypes>
<retailDemand/>
</operationTypes>
<paymentTypes>
<cash/>
<card/>
<cashCard/>
</paymentTypes>
</fiscalApi>
<access>
<resource>https://online.moysklad.ru/api/remap/1.2</resource>
<scope>admin</scope>
</access>
</ServerApplication>
- Поддержать API: используя эту документацию, создать бизнес-логику работы с фискализацией на сервере
- Уметь принимать операции на фискализацию и возвращать статус фискализации и чек
- Создать Точку продаж и в разделе "Кассовые чеки" выбрать следующие значения:
- Формирование чеков — “Облачное”
- Касса для формирования облачных чеков — “Решение для обработки чеков”
- В выпадающем списке выбрать свое решение
- Установить приложение Кассы
- Протестировать и отправить решение на публикацию
Верификация запросов на фискализацию
При установке решения пользователем внутри МоегоСклада генерируется пара RSA-ключей. Все запросы на фискализацию подписываются приватным RSA-ключом. С помощью публичного ключа можно верифицировать запрос.
Так же при установке решения генерируется идентификатор регистрации пары "аккаунт-решение" в МоемСкладе.
Публичный ключ и идентификатор "аккаунт-решение" передаются удаленному сервису фискализации через VendorApi в блоке additional.
Ключ и идентификатор "аккаунт-решение" внутри запроса VendorApi на установку решения:
{
"additional": {
"fiscalApi": {
"token": "MIIBIjANBgkqhkiG9w0BAQEFAA...",
"id": "f5080160-acc6-4241-b8d3-6c5f9731fe5e"
}
}
}
Сценарий работы
- Пользователь устанавливает решение для фискализации из каталога решений МоегоСклада
- Пользователь указывает, для какой точки продаж установлено приложение фискализации
- Пользователь устанавливает кассу, синхронизирует настройки
- Пользователь создаёт операцию. Например, проводит продажу
- Операция передается в выбранное решение для фискализации
- Решение выполняет фискализацию и другие манипуляции с чеком, затем возвращает МоемуСкладу чек (файл в формате PDF, сжатый в zip-архив; этот архив передается закодированным в base64 строку)
- Касса печатает чек
Поддерживаемые операции
После установки решения и настройки точки продаж пользователем, МойСклад может отправлять к удаленному сервису фискализации следующие запросы:
- Открытие смены
- Создание продажи
- Возврат продажи
- Внесение денежных средств в кассу
- Выплата денежных средств из кассы
- Закрытие смены
Запросы осуществляются на определенный эндпоинт относительно базового адреса. Каждый из запросов содержит в заголовках идентификатор "аккаунт-решение".
Обработка ошибок
Если возникла ошибка при обработке запроса, она должна приходить с HTTP кодом, отличным от 200, 201 и 204
Структура ошибок
Ошибки представляют собой массив errors, содержащий объекты error, каждый из которых описывает отдельную ошибку.
Структура объекта error
- error
string- Заголовок ошибкиНеобходимое - parameter
string- Параметр, на котором произошла ошибка - code
integer- Код ошибкиНеобходимое - error_message
string- Сообщение, прилагаемое к ошибкеНеобходимое
Response
412 (application/json)
{
"errors": [
{
"error": "Неправильный или просроченный ключ доступа",
"code": 12017,
"error_message": "Измените данные в приложении"
}
]
}
Открытие смены
Запрос на фискализацию открытия смены
Параметры запроса
- retailShift
object- Данные о сменеНеобходимое- meta
objectНеобходимое- href
string- Ссылка на сменуНеобходимое - id
string- Идентификатор сменыНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- name
string- Номер сменыНеобходимое - retailStore
object- Данные о точке продаж, на которой была открыта сменаНеобходимое- meta
objectНеобходимое- href
string- Ссылка на точку продажНеобходимое - id
string- Идентификатор точки продажНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- cashier
objectНеобходимое- Данные кассира- meta
objectНеобходимое- href
string- Ссылка на кассираНеобходимое - id
string- Идентификатор кассираНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- firstName - Имя
- middleName - Фамилия
- lastName - Отчество
- meta
- openMoment
date- Дата открытия смены в форматеГГГГ-ММ-ДД ЧЧ:ММ:ССНеобходимое
PUT/1/openshiftRequest
Headers
Content-Type:application/json
X-Lognex-Fiscal-Signature: подпись
X-Lognex-Fiscal-Account-Id: идентификатор аккаунт-решение
Body
{
"retailShift": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retailshift/2b5eb22f-139e-11e6-9464-e4de00000073",
"id": "2b5eb22f-139e-11e6-9464-e4de00000073",
"type": "RetailShift",
"idType": "native"
}
},
"name": "0001",
"retailstore": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retailstore/e827ea09-1447-41b6-8118-13cf438e9145",
"id": "e827ea09-1447-41b6-8118-13cf438e9145",
"type": "RetailStore",
"idType": "native"
}
},
"cashier": {
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/employee/a4f36276-7b5a-11e6-8a84-bae500000004",
"id": "a4f36276-7b5a-11e6-8a84-bae500000004",
"type": "Employee",
"idType": "native"
},
"firstName": "Иван",
"middleName": "Иванович",
"lastName": "Иванов"
},
"openMoment": "2024-11-18 21:41:46"
}
Параметры ответа
| Параметр | Описание |
|---|---|
| fnNumber | string Номер ФН |
| kktRegNumber | string Регистрационный номер |
| fiscalDocNumber | string Номер фискального документа |
| fiscalDocSign | string Фискальный признак документа |
| receipt | string Чек в формате base64 |
| shiftNumber | string Номер смены |
| time | date Момент фискализации смены в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС |
Response
200 (application/json)Headers
Content-Type:application/json
Body
{
"fnNumber": "1234",
"kktRegNumber": "5678",
"fiscalDocSign": "9012",
"shiftNumber": "3456",
"fiscalDocNumber": "7890",
"time": "2024-11-18 21:41:46"
}
Продажа
Запрос на фискализацию продажи
Параметры запроса
- meta
object- Внешний уникальный идентификатор продажи в формате метаданныхНеобходимое- href
string- Ссылка на продажуНеобходимое - id
string- Идентификатор продажиНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- name
string- Номер продажиНеобходимое - cashier
objectНеобходимое- Данные кассира- meta
objectНеобходимое- href
string- Ссылка на кассираНеобходимое - id
string- Идентификатор кассираНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- firstName - Имя
- middleName - Фамилия
- lastName - Отчество
- meta
- retailStore
object- Данные о точке продаж, на которой была совершена продажаНеобходимое- meta
objectНеобходимое- href
string- Ссылка на точку продажНеобходимое - id
string- Идентификатор точки продажНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- retailShift
object- Данные о сменеНеобходимое- meta
objectНеобходимое- href
string- Ссылка на сменуНеобходимое - id
string- Идентификатор сменыНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- moment
date- Дата продажи в форматеГГГГ-ММ-ДД ЧЧ:ММ:ССНеобходимое - payments
object- Информация о платежахНеобходимое- cashSum
string- Сумма оплаты наличными - cardSum
string- Сумма оплаты картой - qrSum
string- Сумма оплаты QR-кодом - prepaymentCashSum
string- Сумма предоплаты наличными - prepaymentCardSum
string- Сумма предоплаты картой - prepaymentQrSum
string- Сумма предоплаты QR-кодом - advanceSum
string- Сумма аванса
- cashSum
- phone
stringНомер телефона для отправки электронного чека - email
stringАдрес электронной почты для отправки электронного чека - positions
array- Массив позиций документа- assortment
object- Реквизиты позиции в формате метаданныхНеобходимое- meta
objectНеобходимое- href
string- Идентификатор товара/услугиНеобходимое - id
string- Идентификатор товара/услугиНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- name
string- Название товараНеобходимое
- meta
- uom
object- Единица измерения- name
string- Название единицы измеренияНеобходимое - code
string- Код единицы измерения
- name
- quantity
number- Количество товара в позицииНеобходимое - price
string- Цена товараНеобходимое - discount
string- Процент скидки - pack
object- Упаковка товара- name
string- НазваниеНеобходимое - quantity
numberКоличество товара в упаковке -Необходимое
- name
- vat
number- Ставка НДС - vatEnabled
boolean- Включён ли НДС для позиции - marks
array- Массив кодов маркировки- cis
string- Код маркировки
- cis
- assortment
- vatEnabled
boolean- Флаг, указывающий, что документ содержит НДС - vatIncluded
boolean- Флаг, указывающий, включён ли НДС в цену - customerOrder
object- Заказ покупателя в МС- meta
objectНеобходимое - href
string- Ссылка на заказНеобходимое - id
string- Идентификатор заказаНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- meta
POST/1/retaildemandRequest
Headers
Content-Type:application/json
X-Lognex-Fiscal-Signature: подпись
X-Lognex-Fiscal-Account-Id: идентификатор аккаунт-решение
Body
{
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.0/entity/sale/saleId",
"id": "saleId",
"type": "RetailDemand",
"idType": "native"
},
"name": "12345",
"retailstore": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.0/entity/retailstore/retailStoreId",
"id": "retailStoreId",
"type": "RetailStore",
"idType": "native"
}
},
"retailShift": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retailshift/2b5eb22f-139e-11e6-9464-e4de00000073",
"id": "2b5eb22f-139e-11e6-9464-e4de00000073",
"type": "RetailShift",
"idType": "native"
}
},
"moment": "2024-11-20 14:30:00",
"payments": {
"cashSum": "1000",
"cardSum": "500"
},
"phone": "+79051234567",
"email": "example@example.com",
"positions": [
{
"assortment": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.0/entity/product/productId",
"id": "productId",
"type": "Product",
"idType": "native"
},
"name": "Товар 1"
},
"uom": {
"name": "шт",
"code": "unit1"
},
"quantity": 2.0,
"price": "500",
"discount": "10",
"pack": null,
"vat": 18.0,
"vatEnabled": true,
"marks": ["markCode1", "markCode2"]
}
],
"cashier": {
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/employee/a4f36276-7b5a-11e6-8a84-bae500000004",
"id": "a4f36276-7b5a-11e6-8a84-bae500000004",
"type": "Employee",
"idType": "native"
},
"firstName": "Иван",
"middleName": "Иванович",
"lastName": "Иванов"
},
"vatEnabled": true,
"vatIncluded": true,
"customerOrder": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.0/entity/customerorder/orderId",
"id": "orderId",
"type": "CustomerOrder",
"idType": "native"
}
}
}
Параметры ответа
| Параметр | Описание |
|---|---|
| fnNumber | string Номер ФН |
| kktRegNumber | string Регистрационный номер |
| fiscalDocNumber | string Номер фискального документа |
| fiscalDocSign | string Фискальный признак документа |
| receipt | string Чек в формате base64 |
| time | date Момент фискализации продажи в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС |
Response
200 (application/json)Headers
Content-Type:application/json
Body
{
"fnNumber": "1234",
"kktRegNumber": "5678",
"fiscalDocSign": "9012",
"fiscalDocNumber": "7890",
"time": "2024-11-18 21:41:46"
}
Возврат
Запрос на фискализацию возврата продажи
В составе запроса может быть указана ссылка на документ продажи
Параметры запроса
- meta
object- Внешний уникальный идентификатор возврата продажи в формате метаданныхНеобходимое- href
string- Ссылка на возврат продажиНеобходимое - id
string- Идентификатор возврата продажиНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- name
string- Номер возврата продажиНеобходимое - retailStore
object- Данные о точке продаж, на которой была совершена операция возврата продажиНеобходимое- meta
objectНеобходимое- href
string- Ссылка на точку продажНеобходимое - id
string- Идентификатор точки продажНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- retailShift
object- Данные о сменеНеобходимое- meta
objectНеобходимое- href
string- Ссылка на сменуНеобходимое - id
string- Идентификатор сменыНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- moment
date- Дата возврата продажи в форматеГГГГ-ММ-ДД ЧЧ:ММ:ССНеобходимое - demand
object- Данные розничной продажи для возврата- meta
objectНеобходимое- href
string- Ссылка на продажуНеобходимое - id
string- Идентификатор продажиНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- payments
object- Информация о платежахНеобходимое- cashSum
string- Сумма оплаты наличными - cardSum
string- Сумма оплаты картой - qrSum
string- Сумма оплаты QR-кодом
- cashSum
- phone
stringНомер телефона для отправки электронного чека - email
stringАдрес электронной почты для отправки электронного чека - positions
array- Массив позиций документа- assortment
object- Реквизиты позиции в формате метаданныхНеобходимое- meta
objectНеобходимое- href
string- Идентификатор товара/услугиНеобходимое - id
string- Идентификатор товара/услугиНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- name
string- Название товараНеобходимое
- meta
- uom
object- Единица измерения- name
string- Название единицы измеренияНеобходимое - code
string- Код единицы измерения
- name
- quantity
number- Количество товара в позицииНеобходимое - price
string- Цена товараНеобходимое - discount
string- Процент скидки - pack
object- Упаковка товара- name
string- НазваниеНеобходимое - quantity
numberКоличество товара в упаковке -Необходимое
- name
- vat
number- Ставка НДС - vatEnabled
boolean- Включён ли НДС для позиции - marks
array- Массив кодов маркировки- cis
string- Код маркировки
- cis
- assortment
- vatEnabled
boolean- Флаг, указывающий, что документ содержит НДС - vatIncluded
boolean- Флаг, указывающий, включён ли НДС в цену - customerOrder
object- Заказ покупателя в МС- meta
objectНеобходимое - href
string- Ссылка на заказНеобходимое - id
string- Идентификатор заказаНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- meta
POST/1/retaisalesreturnRequest
Headers
Content-Type:application/json
X-Lognex-Fiscal-Signature: подпись
X-Lognex-Fiscal-Account-Id: идентификатор аккаунт-решение
Body
{
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.0/entity/retailsalesreturn/retailsalesreturnId",
"id": "salesReturnId",
"type": "RetailSalesReturn",
"idType": "native"
},
"name": "12345",
"retailstore": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.0/entity/retailstore/retailStoreId",
"id": "retailStoreId",
"type": "RetailStore",
"idType": "native"
}
},
"retailShift": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retailshift/2b5eb22f-139e-11e6-9464-e4de00000073",
"id": "2b5eb22f-139e-11e6-9464-e4de00000073",
"type": "RetailShift",
"idType": "native"
}
},
"moment": "2024-11-20 14:30:00",
"demand": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.0/entity/retaildemand/retaildemandid",
"id": "e21d80cb-8344-43c6-8c47-bedf0b7b5822",
"type": "RetailDemand",
"idType": "native"
}
},
"payments": {
"cashSum": "1000",
"cardSum": "500"
},
"phone": "+79051234567",
"email": "example@example.com",
"positions": [
{
"assortment": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.0/entity/product/productId",
"id": "productId",
"type": "Product",
"idType": "native"
},
"name": "Товар 1"
},
"uom": {
"name": "шт",
"code": "unit1"
},
"quantity": 2.0,
"price": "500",
"discount": "10",
"pack": null,
"vat": 18.0,
"vatEnabled": true,
"marks": ["markCode1", "markCode2"]
}
],
"vatEnabled": true,
"vatIncluded": true,
"customerOrder": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.0/entity/customerorder/orderId",
"id": "orderId",
"type": "CustomerOrder",
"idType": "native"
}
}
}
Параметры ответа
| Параметр | Описание |
|---|---|
| fnNumber | string Номер ФН |
| kktRegNumber | string Регистрационный номер |
| fiscalDocNumber | string Номер фискального документа |
| fiscalDocSign | string Фискальный признак документа |
| receipt | string Чек в формате base64 |
| time | date Момент фискализации возврата продажи в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС ` |
Response
200 (application/json)Headers
Content-Type:application/json
Body
{
"fnNumber": "1234",
"kktRegNumber": "5678",
"fiscalDocSign": "9012",
"fiscalDocNumber": "7890",
"time": "2024-11-18 21:41:46"
}
Внесение средств
Запрос на фискализацию внесения денежных средств в кассу
Параметры запроса
- meta
object- Внешний уникальный идентификатор внесения в формате метаданныхНеобходимое- href
string- Ссылка на внесениеНеобходимое - id
string- Идентификатор внесенияНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- retailShift
object- Данные о сменеНеобходимое- meta
objectНеобходимое- href
string- Ссылка на сменуНеобходимое - id
string- Идентификатор сменыНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- retailStore
object- Данные о точке продаж, на которой была совершена операция внесенияНеобходимое- meta
objectНеобходимое- href
string- Ссылка на точку продажНеобходимое - id
string- Идентификатор точки продажНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- name
string- Номер внесенияНеобходимое - moment
date- Дата внесения денег в форматеГГГГ-ММ-ДД ЧЧ:ММ:ССНеобходимое - cashier
objectНеобходимое- Данные кассира- meta
objectНеобходимое- href
string- Ссылка на кассираНеобходимое - id
string- Идентификатор кассираНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- firstName - Имя
- middleName - Фамилия
- lastName - Отчество
- meta
- sum
string- Сумма внесения денег, умноженная на 100Необходимое
POST/1/retaildrawercashinRequest
Headers
Content-Type:application/json
X-Lognex-Fiscal-Signature: подпись
X-Lognex-Fiscal-Account-Id: идентификатор аккаунт-решение
Body
{
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retaildrawercashin/675b943f-a25b-433c-90e0-5c84c7b0c307",
"id": "675b943f-a25b-433c-90e0-5c84c7b0c307",
"type": "RetailDrawerCashIn",
"idType": "native"
},
"retailShift": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retailshift/2b5eb22f-139e-11e6-9464-e4de00000073",
"id": "2b5eb22f-139e-11e6-9464-e4de00000073",
"type": "RetailShift",
"idType": "native"
}
},
"cashier": {
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/employee/a4f36276-7b5a-11e6-8a84-bae500000004",
"id": "a4f36276-7b5a-11e6-8a84-bae500000004",
"type": "Employee",
"idType": "native"
},
"firstName": "Иван",
"middleName": "Иванович",
"lastName": "Иванов"
},
"name": "0001",
"retailstore": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retilstore/e827ea09-1447-41b6-8118-13cf438e9145",
"id": "e827ea09-1447-41b6-8118-13cf438e9145",
"type": "RetailStore",
"idType": "native"
}
},
"moment": "2024-11-18 21:41:46",
"sum": "340"
}
Параметры ответа
| Параметр | Описание |
|---|---|
| fnNumber | string Номер ФН |
| kktRegNumber | string Регистрационный номер |
| fiscalDocNumber | string Номер фискального документа |
| fiscalDocSign | string Фискальный признак документа |
| receipt | string Чек в формате base64 |
| time | date Момент фискализации внесения средств в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС |
Response
200 (application/json)Headers
Content-Type:application/json
Body
{
"fnNumber": "1234",
"kktRegNumber": "5678",
"fiscalDocSign": "9012",
"fiscalDocNumber": "7890",
"time": "2024-11-18 21:41:46"
}
Выплата средств
Запрос на фискализацию выплаты денежных средств из кассы
Параметры запроса
- meta
object- Внешний уникальный идентификатор выплаты в формате метаданныхНеобходимое- href
string- Ссылка на выплатуНеобходимое - id
string- Идентификатор выплатыНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- retailShift
object- Данные о сменеНеобходимое- meta
objectНеобходимое- href
string- Ссылка на сменуНеобходимое - id
string- Идентификатор сменыНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- retailStore
object- Данные о точке продаж, на которой была совершена операция выплатыНеобходимое- meta
objectНеобходимое- href
string- Ссылка на точку продажНеобходимое - id
string- Идентификатор точки продажНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- name
string- Номер выплатыНеобходимое - moment
date- Дата выплаты денег в форматеГГГГ-ММ-ДД ЧЧ:ММ:ССНеобходимое - cashier
objectНеобходимое- Данные кассира- meta
objectНеобходимое- href
string- Ссылка на кассираНеобходимое - id
string- Идентификатор кассираНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- firstName - Имя
- middleName - Фамилия
- lastName - Отчество
- meta
- sum
string- Сумма выплаты денег, умноженная на 100Необходимое
POST/1/retaildrawercashoutRequest
Headers
Content-Type:application/json
X-Lognex-Fiscal-Signature: подпись
X-Lognex-Fiscal-Account-Id: идентификатор аккаунт-решение
Body
{
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retaildrawercashin/675b943f-a25b-433c-90e0-5c84c7b0c307",
"id": "675b943f-a25b-433c-90e0-5c84c7b0c307",
"type": "RetailDrawerCashOut",
"idType": "native"
},
"retailShift": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retailshift/2b5eb22f-139e-11e6-9464-e4de00000073",
"id": "2b5eb22f-139e-11e6-9464-e4de00000073",
"type": "RetailShift",
"idType": "native"
}
},
"name": "0001",
"retailstore": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retilstore/e827ea09-1447-41b6-8118-13cf438e9145",
"id": "e827ea09-1447-41b6-8118-13cf438e9145",
"type": "RetailStore",
"idType": "native"
}
},
"cashier": {
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/employee/a4f36276-7b5a-11e6-8a84-bae500000004",
"id": "a4f36276-7b5a-11e6-8a84-bae500000004",
"type": "Employee",
"idType": "native"
},
"firstName": "Иван",
"middleName": "Иванович",
"lastName": "Иванов"
},
"moment": "2024-11-18 21:41:46",
"sum": "340"
}
Параметры ответа
| Параметр | Описание |
|---|---|
| fnNumber | string Номер ФН |
| kktRegNumber | string Регистрационный номер |
| fiscalDocNumber | string Номер фискального документа |
| fiscalDocSign | string Фискальный признак документа |
| receipt | string Чек в формате base64 |
| time | date Момент фискализации выплаты средств в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС |
Response
200 (application/json)Headers
Content-Type:application/json
Body
{
"fnNumber": "1234",
"kktRegNumber": "5678",
"fiscalDocSign": "9012",
"fiscalDocNumber": "7890",
"time": "2024-11-18 21:41:46"
}
Закрытие смены
Запрос на фискализацию закрытия смены
Параметры запроса
- retailShift
object- Данные о сменеНеобходимое- meta
objectНеобходимое- href
string- Ссылка на сменуНеобходимое - id
string- Идентификатор сменыНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- name
string- Номер сменыНеобходимое - retailStore
object- Данные о точке продаж, на которой была закрыта сменаНеобходимое- meta
objectНеобходимое- href
string- Ссылка на точку продажНеобходимое - id
string- Идентификатор точки продажНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- meta
- cashier
objectНеобходимое- Данные кассира- meta
objectНеобходимое- href
string- Ссылка на кассираНеобходимое - id
string- Идентификатор кассираНеобходимое - type
string- тип сущностиНеобходимое - idType
string- тип id (native или sync)Необходимое
- href
- firstName - Имя
- middleName - Фамилия
- lastName - Отчество
- meta
- closeMoment
date- Дата закрытия смены в форматеГГГГ-ММ-ДД ЧЧ:ММ:ССНеобходимое
PUT/1/closeshiftRequest
Headers
Content-Type:application/json
X-Lognex-Fiscal-Signature: подпись
X-Lognex-Fiscal-Account-Id: идентификатор аккаунт-решение
Body
{
"retailShift": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retailshift/2b5eb22f-139e-11e6-9464-e4de00000073",
"id": "2b5eb22f-139e-11e6-9464-e4de00000073",
"type": "RetailShift",
"idType": "native"
}
},
"name": "0001",
"retailstore": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/retailstore/e827ea09-1447-41b6-8118-13cf438e9145",
"id": "e827ea09-1447-41b6-8118-13cf438e9145",
"type": "RetailStore",
"idType": "native"
}
},
"cashier": {
"meta": {
"href": "https://online.moysklad.ru/api/remap/1.2/entity/employee/a4f36276-7b5a-11e6-8a84-bae500000004",
"id": "a4f36276-7b5a-11e6-8a84-bae500000004",
"type": "Employee",
"idType": "native"
},
"firstName": "Иван",
"middleName": "Иванович",
"lastName": "Иванов"
},
"closeMoment": "2024-11-18 21:41:46"
}
Параметры ответа
| Параметр | Описание |
|---|---|
| fnNumber | string Номер ФН |
| kktRegNumber | string Регистрационный номер |
| fiscalDocNumber | string Номер фискального документа |
| fiscalDocSign | string Фискальный признак документа |
| receipt | string Чек в формате base64 |
| shiftNumber | string Номер смены |
| time | date Момент фискализации смены в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС |
| chequesTotal | integer Количество чеков за смену |
| fiscalDocsTotal | integer Количество фискальных документов за смену |
Response
200 (application/json)Headers
Content-Type:application/json
Body
{
"fnNumber": "1234",
"kktRegNumber": "5678",
"fiscalDocSign": "9012",
"shiftNumber": "3456",
"fiscalDocNumber": "7890",
"time": "2024-11-18 21:41:46",
"chequesTotal": 10,
"fiscalDocsTotal": 8
}