Торговые операции с QR-кодом
С помощью методов TACAP API вы можете проводить торговые операции с QR-кодом:
- генерировать динамический код;
- получать статус операции;
- возвращать денежные средства;
- отменять операции вручную и автоматически.
Генерация QR-кода
На POS-терминале инициируется операция генерации QR-кода для оплаты:
- POS формирует сообщение
POST/send
для метода Сгенерировать динамический код XML илиPOST/operations/qrpay
для метода Сгенерировать динамический код JSON c запросом на регистрацию платежа и отправляет его на хост. - Хост проводит обработку запроса, определяет вид QR-кода — например, СБП или TQR — и генерирует его. Вид генерируемого типа QR-кода зависит от данных терминала, которые были указаны при его регистрации или обновлении.
- Хост формирует и передает ответ POS-терминалу.
- POS-терминал получает ответ на запрос, генерирует графический код и выводит его на дисплее терминала или на чеке.
Запрос статуса платежной операции
После того, как QR-код успешно сгенерирован:
POS-терминал опрашивает хост о статусе платежа, формируя сообщение
POST/send
для метода Получить статус операции XML илиPOST/operations/query
для метода Получить статус операции JSON, пока не наступит одно из событий:- Платеж перейдет в терминальный статус —
PAID
,FAIL
,REFUNDED
,PARTIAL_REFUNDED
,CANCEL
илиEXPIRED
. - Опрос завершится по таймауту. Периодичность и продолжительность опроса зависят от настроек POS-терминала, которые заданы при его конфигурировании.
- Платеж перейдет в терминальный статус —
Хост получает статус сессии и формирует ответ терминалу.
POS-терминал формирует и печатает чек с результатом проведения операции.
Отмена платежа по QR
После того, как кассир инициировал отмену платежа, совершаемого на этом же POS-терминале — например, нажал красную кнопку:
- POS-терминал формирует сообщение c запросом на отмену —
POST/operations/cancel
для метода Отменить операцию JSON илиPOST/send
для метода Отменить операцию XML — и отправляет его на хост. - Хост получает сообщение с POS-терминала, проводит нужные проверки и возвращает ответ в зависимости от статуса сессии (платежа). Если:
- Статус соответствует успешно проведенной оплате — в зависимости от настроек хоста, возвращается ответ с кодом
FAIL
или инициируется операция возврата, и на POS-терминал возвращается ответ с результатом операции. - Статус соответствует процессу проведения платежа — в зависимости от настроек хоста, возвращается ответ с кодом
FAIL
илиUSINGPAY
. - Статус соответствует моменту, когда процесс остановился на сформированном QR-коде, попыток проведения платежа не было — инициируется отмена QR-кода и формируется ответ POS-терминалу о результате отмены.
- Статус соответствует успешно проведенной оплате — в зависимости от настроек хоста, возвращается ответ с кодом
- Терминал печатает чек:
- «Операция прервана» — для
SUCCESS
и когда попыток проведения платежа не было. - «Повторите запрос позже» — для
FAIL
.
- «Операция прервана» — для
Возврат платежа по QR
После того, как кассир инициировал возврат платежа TQR/СБП:
- POS-терминал формирует сообщение c запросом на возврат —
POST/operations/refund
для метода Вернуть денежные средства JSON илиPOST/send
для метода Вернуть денежные средства XML — и отправляет его на хост. - Хост проводит нужные проверки и при успешном прохождении проводит возврат.
- Хост передает ответ на POS-терминал.
- Терминал печатает чек.
Автоотмена платежа по QR
Если выполняется одно из правил генерации автоотмен, POS-терминал инициирует отмену платежа, совершаемого на этом же POS-терминале:
- POS-терминал формирует сообщение c запросом на отмену —
POST/operations/auto_cancel
для метода Автоматическая отмена JSON илиPOST/send
для метода Автоматическая отмена XML — и отправляет его на хост. - Хост получает сообщение с POS-терминала, проводит нужные проверки и возвращает ответ в зависимости от статуса сессии (платежа). Если:
- Статус соответствует успешно проведенной оплате — в зависимости от настроек хоста, возвращается ответ с кодом
FAIL
или инициируется операция возврата, и на POS-терминал возвращается ответ с результатом операции. - Статус соответствует процессу проведения платежа — в зависимости от настроек хоста, возвращается ответ с кодом
SUCCESS
,FAIL
илиUSINGPAY
. - Статус соответствует моменту, когда процесс остановился на сформированном QR-коде, попыток проведения платежа не было — инициируется отмена QR-кода и формируется ответ POS-терминалу о результате отмены.
- Статус соответствует успешно проведенной оплате — в зависимости от настроек хоста, возвращается ответ с кодом
- Терминал печатает чек:
- «Операция прервана» — для
SUCCESS
и когда попыток проведения платежа не было. - «Повторите запрос позже» — для
FAIL
.
- «Операция прервана» — для