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

Поиск чека и проверка связи

актуальная

Найти реквизиты пробитого чека, когда касса выключена или ответ потерян, и проверить, на связи ли касса.

Поиск чеков

POST/gate/receipt-find-v4HTTPбез токена

Обычный результат живёт в сессии кассы и доступен, пока она на связи и токен прежний. Метод нужен, когда касса выключена, токен пересоздан или ответ потерян. Достаточно сохранить kkmID и свой id.

Командная строка
curl -X POST 'https://ofd.yaros.kg:8143/ofd-0.0.1/gate/receipt-find-v4' \
  -H 'Content-Type: application/json' \
  -d '{ "kkmID": "65f1234567890abcdef12345", "ids": ["<GUID-1>", "<GUID-2>"] }'
ПолеТипОбяз.Описание
kkmIDStringдаидентификатор кассы из поля kkmID ответов
idsArray of Stringдаваши id документов, от 1 до 100 за запрос

Заголовок token не нужен. Метод есть только на сервере: у кассы по TCP его нет.

JSON
{
  "status": "OK",
  "kkmID": "65f1234567890abcdef12345",
  "receipts": [
    {
      "id": "07b2f33c-…", "status": "OK",
      "qr": "https://…/ticket?date=20261102T101500&…",
      "amount": 10.00, "cashless": false,
      "shiftNumber": "49", "receiptNumber": "3", "fdNumber": "46", "fpd": "112885096059804",
      "gnsDate": "20261102T101500",
      "rnKKM": "0000000000000000", "fnKKM": "0000000000000000",
      "kkmID": "65f1234567890abcdef12345"
    },
    { "id": "5a1d9c0e-…", "status": "ERROR", "info": "Чек не найден",
      "kkmID": "65f1234567890abcdef12345" }
  ]
}

Статус есть на двух уровнях:

УровеньstatusЗначение
весь запросOKкасса найдена, по каждому id есть ответ в receipts, порядок как в ids
весь запросERRORзапрос не выполнен, поля receipts нет. info: ККМ не найдена, Отсутствует kkmID, Отсутствует список ids, Не больше 100 uuid за запрос
один чекOKчек найден, реквизиты в формате ответа на статус
один чекERROR, Чек не найдену этой кассы такого чека в базе нет

В ответе нет блока print и поля link. Всё нужное для печати есть в основных полях.

Если чек не найден

Типовой сценарий

1. POST receipt-v4         → {"status":"OK","kkmID":"65f1…"}    сохранить kkmID и свой id
2. POST receipt-status-v4  → {"status":"OK","fdNumber":"46",…}  обычный путь
   …связь потеряна, ответ не дошёл, касса выключена, токен пересоздан…
3. POST receipt-find-v4    {"kkmID":"65f1…","ids":["<id>"]}
                           → receipts[0].status == "OK"   чек пробит, реквизиты здесь
                           → "Чек не найден"              чека нет, см. выше

Проверка связи с кассой

GET/gate/check-tokenHTTP
Командная строка
curl 'https://ofd.yaros.kg:8143/ofd-0.0.1/gate/check-token' -H 'token: <токен>'
ОтветЗначение
{"status":"OK","info":"YaKassa session found"}касса на связи
ERROR, YaKassa session not Foundтокен неизвестен, обмен выключен
ERROR, YaKassa session closedкасса молчит больше двух минут

Удобно для индикатора в вашем интерфейсе перед отправкой документа. По TCP такого метода нет: доступность кассы проверяется любым запросом, например статусом несуществующего id.

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