Работа со сменами
Открытие смены на кассе
Вернет данные созданной смены в теле ответа и 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 | Обратиться в тех. поддержку |