Смена: shift-v2
актуальнаяОткрыть и закрыть смену без кассы, получить данные X-отчёта. Команду исполняет сервер.
/gate/shift-v2HTTPтокен V2Смену можно не трогать вовсе: она откроется сама первым чеком или первой операцией с наличностью и закроется, когда этого потребует ГНС. Команда нужна, чтобы выпустить Z-отчёт тогда, когда нужно вам.
curl -X POST 'https://ofd.yaros.kg:8143/ofd-0.0.1/gate/shift-v2' \
-H 'Content-Type: application/json' \
-H 'token: <токен из get-token>' \
-d '{ "operation": "open" }'| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
operation | String | да | open, close, state строчными буквами |
fullResult | Boolean | нет | true добавит сырой ответ налоговой в gnsResult |
Ответ
{
"status": "OK",
"shiftNumber": "651",
"fdNumber": "7411",
"fpd": "192869451659514",
"gnsDate": "20261102T090501",
"shiftOpenTime": "20261102T090501",
"rnKKM": "0000000000000000",
"fnKKM": "0000000000000000",
"link": "https://ofd.yaros.kg:8143/ofd-0.0.1/gate/get-html-shift-open/<id копии>",
"shiftOpenLink": "https://ofd.yaros.kg:8143/ofd-0.0.1/gate/get-html-shift-open/<id копии>",
"balance": { "KGS": 18288.24, "USD": 439.77 }
}{
"status": "OK",
"shiftNumber": "550",
"fdNumber": "5848",
"fpd": "1234567890",
"gnsDate": "20261102T183012",
"shiftOpenTime": "20261102T090501",
"shiftCloseTime": "20261102T183012",
"rnKKM": "0000000000000000",
"fnKKM": "0000000000000000",
"link": "https://ofd.yaros.kg:8143/ofd-0.0.1/gate/get-html-shift/<id копии>",
"shiftOpenLink": "https://ofd.yaros.kg:8143/ofd-0.0.1/gate/get-html-shift-open/<id копии>",
"balance": { "KGS": 18288.24, "USD": 439.77 },
"balanceDetails": {
"USD": { "start": 500.00, "sell": 120.23, "sellKGS": 10520.13, "buy": 50.00, "buyKGS": 4300.00,
"sellReturn": 10.00, "sellReturnKGS": 875.00, "buyReturn": 0.00, "buyReturnKGS": 0.00,
"cashIn": 0.00, "cashOut": 0.00, "end": 439.77 },
"KGS": { "start": 12943.11, "sell": 10520.13, "buy": 4300.00, "sellReturn": 875.00, "buyReturn": 0.00,
"cashIn": 0.00, "cashOut": 0.00, "end": 18288.24 }
}
}| Поле | Описание |
|---|---|
shiftNumber | номер смены |
fdNumber | номер фискального документа: открытия при open, Z-документа при close |
fpd | фискальный признак документа |
gnsDate | дата документа из ответа налоговой. При state это последний документ кассы, а не открытие смены |
shiftOpenTime | время открытия смены, на всех командах |
shiftCloseTime | время закрытия, только на close |
rnKKM, fnKKM | регистрационный номер и номер фискального модуля |
link | копия документа этой команды: открытия при open, Z-отчёта при close |
shiftOpenLink | копия документа открытия этой смены, на всех командах. Так копию можно взять и у смены, которую сервер открыл сам |
balance | остаток по валютам в единицах валюты. Закрытие его не обнуляет |
balanceDetails | движение по каждой валюте за смену, см. ниже |
Состояние вместо X-отчёта
X-отчёт это печатная функция кассы, в облачном варианте его нет как документа. Все его данные есть в ответе на state:
curl -X POST 'https://ofd.yaros.kg:8143/ofd-0.0.1/gate/shift-v2' \
-H 'Content-Type: application/json' -H 'token: <токен>' \
-d '{ "operation": "state", "fullResult": true }'Движение в balanceDetails, по каждой валюте в её единицах:
| Поле | Описание |
|---|---|
start | остаток на начало смены |
sell | продано клиентам, полностью, без вычета возвратов |
sellKGS | получено сомов за проданное. У KGS поля нет |
buy | куплено у клиентов, полностью |
buyKGS | отдано сомов за купленное. У KGS поля нет |
sellReturn | возвращено по возвратам продажи |
sellReturnKGS | выдано сомов по возвратам продажи |
buyReturn | возвращено по возвратам покупки |
buyReturnKGS | получено сомов по возвратам покупки |
cashIn | внесено за смену |
cashOut | изъято за смену, включая обнуление |
end | остаток сейчас, то же, что в balance |
Итог за вычетом возвратов: sell − sellReturn, в сомах sellKGS − sellReturnKGS, так же для покупки.
Остаток сходится: end = start − (sell − sellReturn) + (buy − buyReturn) + cashIn − cashOut. Для строки KGS знаки обратные: end = start + sell − sellReturn − buy + buyReturn + cashIn − cashOut.
Сменные итоги по чекам лежат в gnsResult.fields при fullResult: true, все суммы в тыйынах:
| Тег | Описание |
|---|---|
1194 | сменные итоги, внутри блоки 1129 продажа, 1130 возврат продажи, 1131 покупка, 1132 возврат покупки |
1135 в блоке | количество чеков |
1136 в блоке | сумма наличными |
1138 в блоке | сумма безналичными |
1201 в блоке | итоговая сумма |
1134 внутри 1194 | чеков в смене |
1118, 1111 | фискальных чеков и фискальных документов в кассе |
Z-отчёт по ссылке у обменного пункта печатается в валютном виде: сначала итоги по чекам, затем раздел «Движение валют». Вид выбирается сам, передавать ничего не нужно.
Правила
- Закрывать смену в конце дня лучше самому: так Z-отчёт выходит тогда, когда нужно вам.
- Смена старше суток закрывается сама: на первой же операции сервер закроет её и откроет новую. Запрос
stateсмену не закрывает. - Остатки при закрытии не обнуляются. Для этого есть
RESET. - Кассой с SAM-картой команда не управляет: ответ
Сменой кассы с фискальной картой управляет сама касса.