﻿APKassa — мост кассы: терминал Сбербанка и касса АТОЛ (для специалиста и руководителя)
=====================================================================================

Касса APKassa работает в браузере (https://apkassa.ru/kassa1/). Чтобы сумма сама уходила
на терминал Сбербанка, на компьютере кассы нужен маленький «мост» — этот архив.
Код кассы менять не нужно.

ЧТО НУЖНО
- Ноутбук или компьютер с Windows 10/11 (Windows PowerShell 5.1 уже есть в системе).
- Терминал Сбербанка (Verifone / Ingenico / PAX), подключённый кабелем USB или COM.
- Программа «Пилот» Сбербанка (UPOS: sb_pilot.exe, pilot_nt.dll, pinpad.ini) — её ставит и
  настраивает специалист банка, как для любой кассы.

УСТАНОВКА (5 минут)
1. Специалист банка устанавливает и настраивает UPOS как обычно (обычно в C:\sc552 или C:\SBRF)
   и проверяет терминал своей тестовой операцией.
2. Распакуйте этот архив в любую папку и запустите install.bat под пользователем, который
   работает на кассе (права администратора не нужны).
   В конце появится «OK: мост запущен, Пилот найден: ...».
   Если «Пилот» стоит в другой папке — впишите путь к sb_pilot.exe в
   C:\ProgramData\APKassaBridge\config.json (поле "pilot") и снова запустите install.bat.
3. Откройте в Chrome или Яндекс.Браузере https://apkassa.ru/kassa1/, войдите по ПИН-коду.
   Если браузер спросит «Разрешить доступ к устройствам в локальной сети» — нажмите «Разрешить».
4. Проверка: добавьте товар → «Оплатить» → «Картой (терминал)». Должна появиться строка
   «Терминал Сбербанка подключён». Нажмите «Оплатить картой» — сумма уйдёт на терминал.

КАССА АТОЛ (КАССОВЫЙ ЧЕК 54-ФЗ) — например, АТОЛ 42ФА
Наличные и оплата через терминал банка идут мимо ЮKassa, поэтому кассовый чек пробивается на своей ККТ.
1. Установите «Драйвер ККТ» АТОЛ версии 10 (ДТО10) с сайта АТОЛ: «Центр загрузок» → ПО → ДТО → 10.x.
   При установке отметьте «Веб-сервер» (EthernetOverUSB можно не ставить).
2. Подключите кассу кабелем USB (или по Bluetooth/Wi-Fi) и в «Тест драйвера ККТ» нажмите «Проверка связи».
3. Откройте в браузере http://127.0.0.1:16732 — должен открыться веб-сервер драйвера. В его настройках
   выберите эту ККТ (канал связи как в тесте драйвера) и включите автозапуск веб-сервера.
4. В кассе APKassa после каждой продажи и возврата наличными или картой кассовый чек пробивается сам,
   бумажный чек печатает АТОЛ. Смена открывается сама; закрыть смену (Z-отчёт) — кнопка
   «📕 Закрыть смену ККТ» у старшего смены. Если чек не пробился — касса покажет ошибку и кнопку
   «Пробить ещё раз».
   Налогообложение берётся из настроек кассы в кабинете (как для чеков ЮKassa), НДС — «без НДС».
   Другой адрес веб-сервера — поле "atol_url" в config.json, пусто — не использовать ККТ.

ККТ БЕЗ ПРИНТЕРА (АТОЛ 42ФА) И РЕЖИМ АВТОМАТА — КИОСК (мост 1.4)
- У АТОЛ 42ФА нет своего принтера: бумажный кассовый чек (ФН, ФД, ФП, QR-код для проверки в приложении ФНС)
  печатает принтер киоска (например Citizen CT-S2000, 80 мм — font_size 10). Включается в кабинете:
  «Киоск самообслуживания» → «Онлайн-касса киоска» → «Печатать кассовый чек с QR-кодом на принтере киоска».
- Если ККТ зарегистрирована в режиме автомата (на чеке «Автомат №»), там же впишите номер автомата,
  адрес и место расчётов — как в карточке регистрации ККТ; они уходят в каждый чек.
- Проверка после установки: в кабинете «Тестовая печать», затем одна продажа на небольшую сумму —
  сверьте реквизиты напечатанного чека и отсканируйте QR-код приложением «Проверка чеков» ФНС.

LINUX (Debian/Ubuntu, например мини-ПК BMAX у киоска) — папка linux/
- Мост для Linux: linux/apkassa-bridge.py (Python 3, ничего ставить не нужно), тот же адрес 127.0.0.1:18777 и те же
  возможности: терминал Сбербанка («Пилот» для Linux от банка), ККТ АТОЛ (веб-сервер драйвера ДТО10 для Linux),
  чековый принтер напрямую (ESC/POS: /dev/usb/lp0 или принтер CUPS), купюроприёмник CashCode.
- Установка от обычного пользователя, без пароля администратора:
      sh linux/install-linux.sh           — мост с автозапуском
      sh linux/install-linux.sh --kiosk   — мост + Chrome/Chromium на весь экран с apkassa.ru/device/ при входе
  В конце скрипт покажет, что найдено, и чего не хватает (права на принтер/COM-порт — их выдаёт администратор).
- Пароль администратора всё же нужен, чтобы поставить драйвер АТОЛ для Linux и «Пилот» Сбербанка и выдать
  пользователю права на принтер (группа lp) и COM-порт (группа dialout).
- Настройки: ~/.local/share/apkassa-bridge/config.json; журнал — bridge.log там же. Удалить: sh linux/uninstall-linux.sh

КУПЮРОПРИЁМНИК CASHCODE (мост 1.5) — оплата наличными в киоске
- Купюроприёмник CashCode (SM/MSM, протокол CCNET) подключается к компьютеру по RS-232 или через USB-COM
  переходник. В config.json впишите "cash_port": "COM3" (номер из «Диспетчер устройств → Порты») или "auto" —
  мост сам найдёт купюроприёмник среди COM-портов. Скорость — "cash_baud": 9600 (как на переключателях CashCode).
- В кабинете: «Киоск самообслуживания» → «Внешний вид и оплата» → «Наличными в купюроприёмник» и наибольшая сдача.
- Сдачу автомат не выдаёт: купюру, после которой сдача больше заданной, приёмник вернёт («вставьте мельче»);
  допустимая сдача записывается в кабинете «Сдача покупателям — выдать», администратор выдаёт и жмёт «Выдано».
- Кассета: в кабинете видно, сколько купюр и на какую сумму внутри (по номиналам); забрали деньги — «Инкассировать».
- Если во время оплаты пропал свет или перезапустился экран, внесённые купюры не теряются: мост хранит их
  в cash_session.json, киоск при запуске запишет их долгом покупателю.

КИОСК САМООБСЛУЖИВАНИЯ НА СЕНСОРНОМ ЭКРАНЕ (Windows)
- Запустите kiosk_fullscreen.bat — появится ярлык «APKassa Киоск» (Chrome на весь экран, печать без окна)
  на рабочем столе и в автозагрузке. Руководитель один раз входит и выбирает «Киоск самообслуживания».
- Оплата картой в киоске идёт через этот же мост (терминал Сбербанка), кассовый чек — на кассе АТОЛ.

ЧЕКИ
- После каждой продажи и возврата мост сам печатает чек (и слип терминала) на принтер по умолчанию,
  без окна печати. Другой принтер — поле "printer" в config.json (имя как в «Принтеры и сканеры»).
- Лента 58 мм — font_size 8, 80 мм — font_size 10. Не печатать слип — "print_slip": false
  (если терминал печатает слип сам).

КАК РАБОТАЕТ
- Мост слушает только этот компьютер (127.0.0.1:18777) и принимает команды только с apkassa.ru.
- Оплата:  sb_pilot.exe 1 <сумма в копейках>
  Возврат: sb_pilot.exe 3 <сумма в копейках>
  Сверка итогов (закрытие дня): sb_pilot.exe 7 — кнопка «Сверка итогов» в кассе у старшего смены.
  Если в вашей версии UPOS коды операций другие — поменяйте op_pay / op_refund / op_settle в config.json.
- Ответ терминала читается из файлов e и p в папке «Пилота»; чек-слип сохраняется в заказе.
- Журнал: C:\ProgramData\APKassaBridge\bridge.log (номера карт не пишутся).
- Мост запускается сам при входе в Windows. Удалить — uninstall.bat.

Если мост не установлен, касса всё равно принимает «Картой (терминал)»: кассир проводит оплату
на терминале и нажимает «Оплата прошла».

Поддержка APKassa: 8 963 666-13-36, info@apkassa.ru
