Работа со сменами
Открытие смены на кассе
Вернет данные созданной смены в теле ответа и Uid для создания чековых операций в заголовке ответа.
Открытие смены возможно осуществить в автономном режиме, если у клиента есть лицензия нац. банка на такой режим. При автономном режиме работы в тело запроса добавляется поле Date. Если поле есть, то операция автономная, и если поля нет, то обычная.
POST /shifts
Данные на вход:
{
"IdKkm": 77505,
"Date": "2020-12-20T06:34:46+00:00"
}
Описание переменных
| Название переменной | Тип переменной | Описание переменной |
| IdKkm | int | Обязательный. Идентификатор ККМ, на которой нужно открыть смену |
| Date | string | Дата при автономном режиме работы |
Возвращает данные:
{
"Status": 200,
"Message": "ОК",
"Data": {
"Shift": {
"Id": 22,
"IdUser": 1,
"IdKkm": 78909,
"IdStatusShift": 1,
"DateOpen": "2019-04-19T09:01:29.222Z"
}
}
}
Описание переменных
| Название переменной | Тип переменной | Описание переменной |
| Shift | object | Данные созданной смены |
| Id | int | Идентификатор новой смены |
| IdUser | int | Идентификатор пользователя, открывшего смену |
| IdKkm | int | Идентификатор ККМ, на которой открыта смена |
| IdStatusShift | int | Идентификатор статуса смены |
| DateOpen | string | Дата открытия смены |
Описание значения поля IdStatusShift
"IdStatusShift": 1
| Значение статуса | Описание статуса |
| 1 | Смена открыта |
| 2 | Смена зарыта |
После 24 часов с момента открытия смены она переходит в статус просрочена. Для того чтобы продолжить работать, нужно закрыть смену и заново ее открыть.
Ошибки
| Status | Message | Способ устранения | Примечание |
| 401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
| 403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdKkm кассы, выбрать IdKkm кассы | |
| 403 | Forbidden: на данной ККМ уже открыта смена | Если пользователь пытается открыть смену на кассе, на которой смена уже открыта | |
| 403 | Forbidden: касса заблокирована | Связаться с тех. поддержкой | Если пользователь пытается открыть смену на заблокированной кассе |
| 424 | Forbidden: за данным пользователем уже числится открытая смена | Если пользователь пытается открыть смену, когда за ним уже числится открытая смена | |
| 500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Получить информацию о смене
GET /shifts/:IdShift
Возвращает данные:
{
"Status": 200,
"Message": "OK",
"Data": {
"BalanceClose": 0,
"BalanceOpen": 51690,
"Company": { object },
"DateClose": "0001-01-01T00:00:00Z",
"DateOpen": "2020-06-30T17:28:12.6624564Z",
"Id": 11344,
"IdCompany": 20,
"IdKkm": 2062,
"IdStatusShift": 1,
"IdUser": 1032,
"KKM": { object },
"ShiftIndex": 8,
"StatusShift": {
"Id": 1,
"Name": "open"
},
"User": {
"Id": 1032,
"IdShift": 11344,
"Lock": true,
"Name": "first cashier",
"PhoneLogin": "77078385387"
}
}
}
Описание переменных
| Название переменной | Тип переменной | Описание переменной |
| BalanceClose | int | Средства на момент закрытия смены |
| BalanceOpen | int | Средства на момент открытия смены |
| Company | object | Данные о компании (см. GET /company) |
| DateClose | string | Дата закрытия смены |
| DateOpen | string | Дата открытия смены |
| Shift | object | Объект cмены |
| Id | int | Идентификатор смены |
| IdCompany | int | Идентификатор компании |
| IdKkm | int | Идентификатор кассы |
| IdStatusShift | int | Идентификатор статуса смены |
| IdUser | int | Идентификатор пользователя (кассира) на смене |
| Kkm | object | Данные о ККМ (см. GET /kkms/:IdKkm) |
| ShiftIndex | int | Порядковый номер смены на кассе |
| StatusShift | object | Статус смены |
| Id | int | Идентификатор статуса смены |
| Name | string | Название идентификатора статуса смены |
| User | object | Информация о пользователе |
| Id | int | Идентификатор пользователя (кассира) |
| IdShift | int | Идентификатор открытой смены или последней открытой смены |
| Lock | bool | Признак блокировки сменой |
| Name | string | Имя пользователя |
| PhoneLogin | string | Номер пользователя |
Описание значения поля IdStatusShift
"IdStatusShift": 1
| Значение статуса | Описание статуса |
| 1 | Смена открыта |
| 2 | Смена зарыта |
После 24 часов с момента открытия смены она переходит в статус просрочена. Для того чтобы продолжить работать, нужно закрыть смену и заново ее открыть.
Ошибки
| Status | Message | Способ устранения |
| 401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен |
| 403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdShift смены |
| 500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Получить X-отчет
GET /shifts/:IdShift/x
Возвращает данные:
{
"Status": 200,
"Message": "OK",
"Data": {
"BalanceClose": "0.0000",
"BalanceOpen": "62184.0000",
"Count": 1,
"Kkm": { object },
"Operations": [ array ],
"OperatorCode": "",
"Total": {
"Expenses": {
"Amount": "0",
"Qty": 0
},
"Incomes": {
"Amount": "0",
"Qty": 0
},
"Purchases": {
"Amount": "0",
"Qty": 0
},
"Refunds": {
"Amount": "0",
"Qty": 0
},
"Sales": {
"Amount": "0",
"Qty": 0
}
},
"TotalAmount": "0",
"TotalCashReceivedAmount": "0",
"TotalChangeAmount": "0",
"TotalDiscountAmount": "0",
"TotalMarkupAmount": "0",
"TotalNdsAmount": "0"
}
}
Описание переменных
| Название переменной | Тип переменной | Описание переменной |
| BalanceClose | string | Средства на момент закрытия смены |
| BalanceOpen | string | Средства на момент открытия смены |
| Count | int | Общее кол-во операций |
| Kkm | object | Данные о ККМ, включая вложенный документ о юр. лице и балансах (см. GET /kkms/:IdKkm) |
| Operations | array | Массив списка операций (см. POST /kkms/:IdKkm/reports) |
| OperatorCode | string | |
| Total | object | Промежуточные итоги |
| Expenses | object | Служебный расход |
| Amount | string | Общая сумма операций |
| Qty | int | Кол-во операций |
| Incomes | object | Служебный приход |
| Purchases | object | Покупка |
| Refunds | object | Возврат |
| Sales | object | Продажа |
| TotalAmount | string | |
| TotalCashReceivedAmount | string | |
| TotalChangeAmount | string | |
| TotalDiscountAmount | string | |
| TotalMarkupAmount | string | |
| TotalNdsAmount | string |
Ошибки
| Status | Message | Способ устранения | Примечание |
| 401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
| 403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdShift смены | |
| 403 | Указан неверный идентификатор смены | Если идентификатор смены указан с ошибкой или если отчет запросил кассир, который не открывал эту смену | |
| 403 | Forbidden: касса заблокирована | Связаться с тех. поддержкой | |
| 410 | Данная смена уже закрыта | ||
| 500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Получить отчет по секциям
GET /shifts/:IdShift/sections/reports
Возвращает данные:
{
"Status": 200,
"Message": "OK",
"Data": {
"Sections": {
"3050": {
"Expenses": null,
"Incomes": null,
"Name": "first section",
"Purchases": "200.0000",
"Refunds": "100.0000",
"Sales": "400.0000"
},
"3051": {
"Expenses": null,
"Incomes": null,
"Name": "second section",
"Purchases": null,
"Refunds": null,
"Sales": null
},
...
}
}
}
Описание переменных
| Название переменной | Тип переменной | Описание переменной |
| Sections | object | Объект с информацией об отчетах по секциям |
| 3050 | object | Идентификатор секции (см. GET /kkms/:IdKkm/sections) |
| Expenses | string | Служебные расходы |
| Incomes | string | Служебные приходы |
| Name | string | Название секции |
| Purchases | string | Покупки |
| Refunds | string | Возвраты |
| Sales | string | Операции продажи |
Ошибки
| Status | Message | Способ устранения | Примечание |
| 401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
| 403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdShift смены | |
| 500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Создать Z-отчет и закрыть смену
Принимает Uid в заголовке запроса. Ожидает в теле запроса Id кассы.
Закрытие смены возможно осуществить в автономном режиме, если у клиента есть лицензия нац. банка на такой режим. При автономном режиме работы в тело запроса добавляется поле Date. Если поле есть, то операция автономная, и если поля нет, то обычная.
POST /shifts/:IdShift/z
Данные на вход:
{
"IdKkm": 77505
"Date": "2020-12-20T06:34:46+00:00"
}
Описание переменных
| Название переменной | Тип переменной | Описание переменной |
| IdKkm | int | Обязательный. Идентификатор ККМ, на которой нужно закрыть смену |
| Date | string | Дата при автономном режиме работы |
Возвращает данные:
{
"Status": 200,
"Message": "OK",
"Data": {
"Kkm": { object },
"OperatorCode": "1032",
"Total": {
"Sales": {
"Qty": 1,
"Amount": "500.0000"
},
"Purchases": {
"Qty": 1,
"Amount": "500.0000"
},
"Expenses": {
"Qty": 1,
"Amount": "3000.0000"
},
"Refunds": {
"Qty": 1,
"Amount": "500.0000"
},
"Incomes": {
"Qty": 1,
"Amount": "5000.0000"
}
},
"BalanceOpen": "82388.0000",
"BalanceClose": "83888.0000",
"DateOpen": "2020-07-16T10:39:56.4900144Z",
"DateClose": "2020-07-16T10:42:59.35454613Z",
"DateReportTaken": "2020-07-16T10:42:59.35454613Z",
"Count": 5,
"TotalAmount": "-0.0000",
"TotalCashReceivedAmount": "-0.0000",
"TotalChangeAmount": "0.0000",
"TotalDiscountAmount": "0.0000",
"TotalMarkupAmount": "0.0000",
"TotalNdsAmount": "0.0000",
"Operations": [ array ]
}
}
Описание переменных
| Название переменной | Тип переменной | Описание переменной |
| Kkm | object | Данные о ККМ, включая вложенный документ о юр. лице и балансах (см. GET /kkms/:IdKkm) |
| OperatorCode | string | |
| Total | object | Промежуточные итоги |
| Sales | object | Операции продажи |
| Qty | int | Кол-во операций |
| Amount | string | Общая сумма операций |
| Purchases | object | Покупки |
| Expenses | object | Служебные расходы |
| Refunds | object | Возвраты |
| Incomes | object | Служебные приходы |
| BalanceOpen | string | Средства на момент открытия смены |
| BalanceClose | string | Средства на момент закрытия смены |
| DateOpen | string | Дата открытия смены |
| DateClose | string | Дата закрытия смены |
| DateReportTaken | string | Дата получения отчета |
| Count | int | Общее кол-во операций |
| TotalAmount | string | |
| TotalCashReceivedAmount | string | |
| TotalChangeAmount | string | |
| TotalDiscountAmount | string | |
| TotalMarkupAmount | string | |
| TotalNdsAmount | string | |
| Operations | array | Массив списка операций (см. POST /kkms/:IdKkm/reports) |
Ошибки
| Status | Message | Способ устранения | Примечание |
| 401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
| 403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdKkm кассы, выбрать IdKkm кассы | |
| 403 | Forbidden: данный кассир не имеет прав для закрытия данной сессии | Закрыть смену кассиром который ее открывал | Если кассир пытается закрыть смену, которую открывал не он |
| 403 | Forbidden: данная смена уже закрыта | Проверить IdShift смены | Если смена уже была закрыта |
| 403 | Forbidden: смена с указанным id не найдена | Проверить IdSh\ift смены | Если идентификатор смены не найден БД (такая смена не открывалась) |
| 403 | Forbidden: касса заблокирована | Связаться с тех. поддержкой | Если касса была заблокирована из-за проблем отправки данных в ОФД |
| 452 | Некорректный Uid | Запросить новый Uid | |
| 500 | Internal Server Error | Обратиться в тех. поддержку |




