Поиск чека и проверка связи
актуальнаяНайти реквизиты пробитого чека, когда касса выключена или ответ потерян, и проверить, на связи ли касса.
Поиск чеков
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>"] }'| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
kkmID | String | да | идентификатор кассы из поля kkmID ответов |
ids | Array of String | да | ваши id документов, от 1 до 100 за запрос |
Заголовок token не нужен. Метод есть только на сервере: у кассы по TCP его нет.
{
"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. Всё нужное для печати есть в основных полях.
Если чек не найден
- Документ не был фискализирован: отклонён, отменён, касса не взяла его в работу. Проверьте
receipt-status-v4, если сессия жива. idотносится к другой кассе: сверьтеkkmIDиз ответа на тот документ.- Касса с SAM-картой пробила чек, но ещё не доставила на сервер. Он появится, когда касса выйдет на связь. Повторите поиск позже.
- Документ был нефискальным:
fiscal: false, статусPAID. Чека нет по определению.
Типовой сценарий
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-tokenHTTPcurl '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.