Помощь кассиру

Смена: shift-v2

актуальная

Открыть и закрыть смену без кассы, получить данные X-отчёта. Команду исполняет сервер.

POST/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" }'
ПолеТипОбяз.Описание
operationStringдаopen, close, state строчными буквами
fullResultBooleanнет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 }
}
ПолеОписание
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-отчёт по ссылке у обменного пункта печатается в валютном виде: сначала итоги по чекам, затем раздел «Движение валют». Вид выбирается сам, передавать ничего не нужно.

Правила

Смотрите также