МойСклад 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
}