Способы оплаты
актуальнаяНаличные, карта на терминале, смешанная оплата, оплата вне кассы и оплата без чека.
Наличные
Укажите cashless: false или не указывайте поле.
{ "id": "<GUID>", "operation": "INCOME", "cashless": false, "products": [ … ] }Карта на терминале
При cashless: true касса запускает банковскую операцию на терминале и только после успеха пробивает чек. Отказ или отмена в банке означают, что чека нет: придёт ERROR с причиной или CANCELLED.
{ "id": "<GUID>", "operation": "INCOME", "cashless": true, "products": [ … ] }Банк вызывается только для продажи и её возврата. Покупка и возврат покупки пробиваются сразу, без банка.
Смешанная оплата
Часть наличными, часть безналично.
/gate/receipt-v4-1HTTPНа TCP отдельного метода нет: те же поля передаются в /gate/receipt-v4.
curl -X POST 'https://ofd.yaros.kg:8143/ofd-0.0.1/gate/receipt-v4-1' \
-H 'token: <токен>' -H 'Content-Type: application/json' \
-d '{
"id": "<GUID>",
"operation": "INCOME",
"cash_sum": 250.00,
"cashless_sum": 250.00,
"products": [
{ "id": "1", "name": "Молоко", "price": 100.00, "quantity": 5,
"vat_value": 12.0, "st_value": 1.0 }
]
}'curl -X POST 'http://192.168.0.50:8090/gate/receipt-v4' \
-H 'Content-Type: application/json' -H 'Expect:' \
-d '{ … то же тело … }'Правила:
- На
receipt-v4-1передавайте оба поля. Если какой-то части нет, укажите0. По TCP вторую часть можно не передавать, она считается нулём. - Суммы неотрицательны.
cash_sum + cashless_sumдолжно совпадать с суммой позиций. Каждая позиция считается какprice × quantityи округляется до тыйына по правилу «половина вверх». Расхождение в тыйын даёт отказ при приёме.- При ненулевом
cashless_sumкасса выполнит банковскую операцию на эту сумму.
Оплачено вне кассы, skip_bank
Если деньги уже получены вашей стороной: на отдельном терминале, онлайн, переводом, по вашему QR. Банк спрашивать не о чем, нужен только чек.
{
"id": "<GUID>",
"operation": "INCOME",
"cashless": true,
"skip_bank": true,
"rrn": "512345678901",
"products": [ … ]
}- Касса не запускает банковское приложение и сразу пробивает чек.
- Чек остаётся безналичным: сумма идёт в безнал, в итоги смены и в Z-отчёт.
- Статуса
CANCELLEDу такого документа не бывает, отменять нечего. - Поле
rrnнеобязательно: ваш номер операции попадёт в чек и в журнал кассы, проверять его касса не будет. - На наличную часть смешанной оплаты флаг не влияет.
- В возврате продажи флаг значит «исходная продажа прошла без банка», см. возвраты.
Оплата без чека
Только принять оплату картой: fiscal: false и cashless: true. Работает на обоих каналах, итоговый статус PAID.
{ "id": "<GUID>", "operation": "INCOME", "fiscal": false, "cashless": true, "products": [ … ] }На TCP есть и отдельный простой метод: /payment.