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

Наличные и остаток: cash-v2

актуальная

Внесение, изъятие, обнуление и остаток по валютам смены без кассы.

POST/gate/cash-v2HTTPтокен V2
Командная строка
curl -X POST 'https://ofd.yaros.kg:8143/ofd-0.0.1/gate/cash-v2' \
  -H 'Content-Type: application/json' \
  -H 'token: <токен из get-token>' \
  -d '{ "guid": "9f1b7e30-2d44-4c7a-9a10-000000000001", "operation": "ADD", "amount": 500, "currency": "USD" }'
ПолеТипОбяз.Описание
guidStringда, кроме STATEGUID операции. Повтор с тем же guid ничего не изменит, придёт текущий остаток
operationStringдаADD внесение, DEL изъятие, RESET обнуление, STATE только остаток
amountDecimalдля ADD и DELсумма в единицах валюты: 500 это 500 долларов, а не центов
currencyStringнеткод валюты, по умолчанию KGS. Для STATE не нужен
operatorTimeStringнетвремя операции по вашим часам, до 40 символов, лучше ISO 8601. Хранится и возвращается как есть

Внесение, изъятие и обнуление открывают смену сами, в том числе сразу после закрытия предыдущей. Открытие смены это фискальная операция, она уходит в ГНС.

Ответ

JSON
{
  "status": "OK",
  "shiftNumber": "549",
  "amount": 500,
  "operatorTime": "2026-11-02T11:33:18+06:00",
  "balance": { "KGS": 12500.00, "USD": 500.00 }
}
ПолеОписание
statusOK или ERROR
infoописание ошибки
shiftNumberномер смены
amountсумма операции
operatorTimeваше время из запроса. При повторе с тем же guid сохранённое первым запросом
balanceостаток по каждой валюте смены, в единицах валюты

Остаток

Запрос с STATE ничего не меняет: ни смены не открывает, ни баланса не трогает. Выполнять его можно сколько угодно часто.

Командная строка
curl -X POST 'https://ofd.yaros.kg:8143/ofd-0.0.1/gate/cash-v2' \
  -H 'Content-Type: application/json' -H 'token: <токен>' \
  -d '{ "operation": "STATE" }'
JSON
{ "status": "OK", "shiftNumber": "549", "balance": { "KGS": 12500.00, "USD": 500.00 } }

Валюты, которой в кассе нет, в ответе не будет. shiftNumber это номер открытой смены: если смены нет, поле придёт пустым, а остаток всё равно вернётся.

По этому ответу видно, пройдёт ли обмен:

Что хотите провестиЧто смотреть в balance
Продать клиенту 100 USDUSD не меньше 100
Купить у клиента 50 USD по курсу 86KGS не меньше 4300
Возврат продажи 100 USDKGS не меньше суммы чека
Возврат покупки 50 USDUSD не меньше 50

Проверять остаток перед каждым чеком не обязательно: если не хватит, чек не пробьётся. Запрос нужен, чтобы показать кассиру, чем касса располагает.

Обнуление

Смена остатки не обнуляет: новая смена начинается с тем, с чем закончилась предыдущая. Обнуляются они только явной командой, когда наличность действительно забрали.

Всё
curl -X POST 'https://ofd.yaros.kg:8143/ofd-0.0.1/gate/cash-v2' \
  -H 'Content-Type: application/json' -H 'token: <токен>' \
  -d '{ "guid": "<GUID>", "operation": "RESET" }'

amount не передаётся: сумма берётся из остатка. По сути это изъятие на всю сумму, и в итогах смены оно так и отражается: выплатой.

Ограничения

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