SetRetail10 ◾️ Оплата по QR-коду UzQR

Публичное пространство

SetRetail10 ◾️ Оплата по QR-коду UzQR

https://crystals.atlassian.net/browse/SRTG-753

https://crystals.atlassian.net/browse/CR-15421

10.5.1.0

Для получения файла плагина обратитесь к менеджеру.

Описание

Плагин Оплата по QR-коду UzQR предназначен для приема оплаты через единый QR-код UzQR в SetRetail10 для рынка Узбекистана.

Функциональность позволяет кассе сформировать динамический QR-код для оплаты, показать его покупателю, получить статус платежа от сервиса UzQR, зарегистрировать оплату в чеке и после фискализации передать в процессинг ссылку на фискальный чек.

Единый QR-код внедряется в соответствии с законодательными требованиями Республики Узбекистан. Согласно Указу Президента Республики Узбекистан № УП-246 от 10 декабря 2025 г. «О дополнительных мерах, направленных на популяризацию безналичных расчётов и сокращение доли теневой экономики», с 01 июля 2026 г. использование единого QR-кода становится обязательным для юридических лиц в сфере торговли и услуг.

Интеграция реализована для касс POS, SetTouch и SCO V3.

Ценность

  • Соблюдение законодательных требований Республики Узбекистан по приему безналичных оплат через единый QR-код.

  • Предоставление покупателю дополнительного способа безналичной оплаты.

  • Возможность принимать оплату без банковского терминала: покупатель сканирует QR-код и подтверждает платеж в приложении банка.

  • Поддержка динамического QR-кода с автоматическим контролем статуса оплаты.

  • Передача параметров платежа в чек, фискализатор и выгрузку чеков.

  • Поддержка сценариев оплаты, отмены неоплаченного инвойса и возврата на поддерживаемых типах касс.

Примеры работы

Оплата на POS или SetTouch

  1. Добавьте товары в чек продажи.

  2. Перейдите к оплате.

  3. Выберите тип оплаты Единый UzQR.

  4. При необходимости измените сумму к оплате, если требуется частичная или смешанная оплата.

  5. Нажмите Оплатить.

  6. Касса отправит запрос на создание динамического QR-кода в UzQR.

  7.  

    • на дисплее покупателя, если отображение QR-кода на дисплее настроено и оборудование доступно;

    • на бумажном слипе, если дисплей покупателя не используется.

  8. Покупатель отсканирует QR-код в приложении банка и подтвердит оплату.

  9. Касса будет опрашивать статус платежа.

  10. После успешного статуса касса добавит оплату в чек.

  11. Если оплачена вся сумма чека, касса зарегистрирует чек.

  12. Если оплачена часть суммы чека, выберите другой доступный тип оплаты для закрытия остатка.

  13. После успешной фискализации касса отправит в UzQR ссылку на фискальный чек.

Оплата на SCO V3

  1. Добавьте товары в чек на кассе самообслуживания.

  2. Перейдите к выбору способа оплаты.

  3. Выберите тип оплаты Единый UzQR.

  4. Касса отправит запрос на создание динамического QR-кода в UzQR.

  5. Касса покажет QR-код на экране SCO и сообщение Отсканируйте QR-код.

  6. Отсканируйте QR-код в приложении банка и подтвердите оплату.

  7. Касса будет опрашивать статус платежа.

  8. После успешного статуса касса добавит оплату и зарегистрирует чек.

  9. После успешной фискализации касса отправит в UzQR ссылку на фискальный чек.

Примеры сценариев возврата

Возврат оплатой Единый UzQR поддерживается только на POS и SetTouch. На SCO V3 возврат данным типом оплаты недоступен.

  1. Найдите чек продажи по реквизитам: номер чека, дата и номер смены.

  2. Выберите Возврат всего чека или Возврат позиций.

  3. Перейдите к оплатам возврата.

  4. Выберите тип оплаты Единый UzQR.

  5. Касса отправит запрос на создание возврата в UzQR.

  6. Касса будет опрашивать статус возврата.

  7. После успешного статуса возврата касса зарегистрирует чек возврата.

  8. После успешной фискализации касса отправит в UzQR ссылку на фискальный чек.

Примеры отрицательных сценариев

Ошибка связи при создании QR-кода

  1. Кассир или покупатель выбирает тип оплаты Единый UzQR.

  2. Касса отправляет запрос на создание динамического QR-кода.

  3. Касса не получает ответ от UzQR или получает ошибочный ответ.

  4. Касса показывает сообщение Ошибка связи с банком.

  5. Закройте сообщение.

  6. Выберите другой тип оплаты или повторите оплату позднее.

Оплата отклонена процессингом

  1. Касса создает QR-код и показывает его покупателю.

  2. Покупатель сканирует QR-код и подтверждает либо отменяет платеж в приложении банка.

  3. Касса получает от UzQR ошибочный статус оплаты.

  4. Касса показывает сообщение Оплата отклонена процессингом. Повторите или выберите другой тип оплаты.

  5. Повторите оплату или выберите другой тип оплаты.

Нет связи при опросе статуса оплаты

  1. Касса создает QR-код и начинает опрос статуса платежа.

  2. Касса не получает ответ на запрос статуса оплаты.

  3. Касса выполняет повторные запросы по количеству попыток, указанному в настройках процессинга.

  4.  

    • на POS и SetTouch: Оплата не завершена, нет связи с процессингом. Прервать оплату или ждать завершения?;

    • на SCO V3: Оплата не завершена, нет связи с банком.

  5. На POS или SetTouch нажмите Ждать, чтобы запустить новый цикл запроса статуса, или Прервать, чтобы перейти к отмене неоплаченного инвойса.

  6. На SCO V3 нажмите Повторить оплату, чтобы запустить новый цикл запроса статуса, или Оплатить другим способом, чтобы перейти к отмене неоплаченного инвойса.

Отмена неоплаченного инвойса

  1. Во время ожидания оплаты нажмите Отмена.

  2. Касса однократно запросит статус оплаты.

  3. Если оплата уже прошла успешно, касса добавит оплату в чек.

  4. Если получен промежуточный статус, касса отправит запрос отмены инвойса.

  5. Если отмена выполнена успешно, касса покажет сообщение Операция отменена и вернется к списку оплат.

  6.  

    • на POS и SetTouch: Отмена не выполнена. Если у покупателя списаны денежные средства, подайте запрос в бухгалтерию;

    • на SCO V3: Отмена не выполнена. Если у вас списались денежные средства, обратитесь к консультанту.

Ошибка связи при возврате

  1. Кассир выбирает возврат типом оплаты Единый UzQR.

  2. Касса отправляет запрос на создание возврата.

  3. Если ответ не получен, касса показывает сообщение Ошибка связи с банком.

  4. Если запрос создан, но при опросе статуса возврата ответ не получен, касса выполняет повторные запросы по количеству попыток из настроек процессинга.

  5. Если ответ так и не получен, касса показывает сообщение Ошибка связи с банком.

Ограничения

  1. Функциональность предназначена для касс POS, SetTouch и SCO V3.

  2. Возврат типом оплаты Единый UzQR поддерживается только на POS и SetTouch.

  3. Возврат данным типом оплаты поддерживается только на той кассе, на которой была выполнена продажа.

  4. На SCO V3 доступна только полная оплата чека. Частичная оплата недоступна.

  5. Произвольный возврат без чека основания данным типом оплаты невозможен.

  6. При отсутствии связи с UzQR оплата не может быть подтверждена до получения конечного статуса платежа.

  7. На Touch-кассах настройка стороннего дисплея покупателя отличается от встроенного экрана Touch. Если используется встроенный экран Touch, в настройках оборудования необходимо выключить экран покупателя как стороннее устройство.

  8. Тестовая среда UzQR предназначена для технической проверки методов API. Реальные платежи на тестовой среде могут не проходить и возвращать ошибку QR не найден.

Настройки

Настройка внешнего процессинга на сервере

Добавление процессинга выполняется на сервере SetRetail10 или SetCentrum по стандартной схеме для внешних процессингов.

1. Откройте на сервере SetRetail10/SetCentrum → перейдите в раздел ИнтеграцияВнешние процессинги → нажмите кнопку добавления процессинга.

image-20260713-131345.png

 

2. В списке типов процессингов выберите Платежные системы → в строке поиска введите UzQR или Оплата по QR-коду UzQR → установите флажок у процессинга Оплата по QR-коду UzQR → нажмите Сохранить.

image-20260713-131747.png

 

3. Откройте добавленный процессинг Оплата по QR-коду UzQR.

image-20260713-131957.png

 

10. На вкладке Общие укажите магазины, для которых доступен процессинг → заполните параметры подключения.

image-20260713-143053.png

 

Настройка

Описание

Настройка

Описание

Адрес подключения

Адрес сервиса UzQR, к которому касса будет отправлять запросы создания QR-кода, проверки статуса, отмены и возврата.

Для продуктивной среды используйте адрес, выданный UzQR.

ИНН

ИНН (идентификационный номер налогоплательщика) юридического лица в Узбекистане из 9 цифр

Значение API_key

Ключ доступа к API UzQR. В интерфейсе должен отображаться в маскированном виде.

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

Таймаут соединения, сек.

Время ожидания установки соединения с сервисом UzQR.

Значение по умолчанию — 3 секунды.

Таймаут ожидания ответа, сек.

Время ожидания ответа от сервиса UzQR после отправки запроса.

Значение по умолчанию — 20 секунд.

Количество попыток для запроса

Количество повторных запросов статуса оплаты или возврата при отсутствии ответа.

Значение по умолчанию — 5.

Отображать QR код на дисплее покупателя

Отображение QR-кода на дисплее покупателя POS или Touch.

Важно. На Touch-кассах зайдите в настройки оборудования и выключите экран покупателя, если настройка относится к стороннему дисплею, а не к встроенному экрану Touch. Иначе QR-код может отображаться не там, где ожидается.

 

На вкладке ОПЛАТА ПО QR-КОДУ UZQR установите настройки → после заполнения параметров нажмите Сохранить.

image-20260713-144154.png

Настройка

Включение настройки

Описание

Настройка

Включение настройки

Описание

Разрешить смешанную оплату

Определяет, можно ли оплатить через обратный QR часть суммы чека.

Количество попыток для запроса

Максимальное количество попыток запроса статуса платежа перед завершением или подтверждением оплаты.

Пауза между попытками, секунды

Пауза между повторными запросами статуса или подтверждения платежа. Рекомендуемое значение — от 3 до 10 секунд.

Требует пропорциональный возврат

При возврате позиций чека, оплаченного смешанной оплатой, типы оплат будут пропорционально распределены между возвращаемыми позициями.

Частичный возврат чека запрещен

Разрешен только возврат чека полностью.

Возврат по чеку доступен всегда

Флаг-признак, разрешающий возврат чека, полученного в другом магазине. Также влияет на поиск чека на сервере для печати копии.

Допускать запрет других типов оплат

Определяет возможность плагина ограничивать (запрещать) использование определённых типов оплат.

Использовать одну оплату для разделенных чеков

Использует одну оплату на полную сумму вместо нескольких при разделении чека. При полном возврате всех разделённых чеков оплата будет возвращаться отдельными частями.

Признак автоматического применения оплаты для физ.лиц (оплата будет скрыта)

Должен быть снят

Оплата применяется только автоматически для физических лиц из внешних систем. Не допускается сканировать более одного МЧ в рамках чека. Предоплата из второго и последующих не будет применена.

Признак автоматического применения оплаты для юр.лиц (оплата будет скрыта)

Должен быть снят

Оплата применяется только автоматически для юридических лиц (контрагентов) из внешних систем. Запрещает сканирование более одного МЧ в рамках одного чека. Оплата остаётся скрытой от кассира.

Разрешить использовать оплату для выдачи наличных

Определяет, может ли данный тип оплаты быть использован для операции выдачи наличных (cash-out). Некоторые типы оплат запрещают эту операцию (например, оплата по QR-коду).

Код оплаты для передачи в систему событий

Код оплаты для передачи в систему событий:

uzqr.payment.plugin

Возвращать дополнительными способами вместо плагина

При оформлении возврата чека, оплаченного с помощью плагина Единый UzQR, денежные средства могут быть возвращены только выбранными типами оплат из списка. Возврат через QR-платеж плагина недоступен.

Дополнительные способы возврата, доступные всегда

Если включена "возвращать дополнительными способами вместо плагина", то этот список используется вместо плагина. Выбранные типы оплат должны быть разрешены в настройках шаблона кассы.

Устанавливаются в зависимости от бизнесс-процессов магазина

Список типов оплат, всегда используемых для выполнения возврата в дополнение к QR-коду от Единый UzQR.

Способы возврата, дополнительно доступные по решению плагина

Если включена "возвращать дополнительными способами вместо плагина", то этот список не применяется. Выбранные типы оплат должны быть разрешены в настройках шаблона кассы.

Устанавливаются в зависимости от бизнесс-процессов магазина

Список типов оплат, используемых для выполнения возврата при невозможности завершить возврат плагинным типом оплаты.

Функциональность не поддерживается в данной версии плагина

Добавление типа оплаты в шаблон кассы

После добавления внешнего процессинга включите тип оплаты в шаблоне кассы. Без этой настройки кассир или покупатель не увидит оплату Единый UzQR на кассе.

  1. На сервере SetRetail10 или SetCentrum перейдите в раздел Кассовый модульШаблоны касс.

  2. Откройте шаблон кассы, который используется нужными кассами.

  3. Перейдите на вкладку Процесс торговлиНастройки.

  4. В секции Типы оплат найдите тип оплаты Единый UzQR или Оплата по QR-коду UzQR.

  5. Установите флажок у типа оплаты.

  6. Проверьте, что тип оплаты разрешен для нужных касс и магазинов.

  7. Нажмите Сохранить.

  8. Перезагрузите кассовый модуль для применения настроек.

Настройка на кассе

  1. Доставьте настройки с сервера на кассу.

  2. Перезагрузите кассовый модуль.

  3. На кассах:

    • на клавиатурной кассе откройте МенюКонфигураторВнешние процессинги;

    • на SetTouch откройте НастройкиВнешние системы.

  4. Проверьте, что в списке оплат отображается тип оплаты Единый UzQR.

  5. Выполните тестовую оплату на небольшую сумму.

Параметры платежа для выгрузки чеков

В выгрузке чека продажи или возврата в данных оплаты передаются параметры плагинной оплаты.

Плагинное свойство

Описание

Источник

Плагинное свойство

Описание

Источник

bank.id

Название банка или процессинга.

Значение с сервера. Пример: Единый UzQR.

ref.number

RRN — Reference Retrieval Number, номер транзакции оплаты.

pay_id

order.id

Идентификатор операции на стороне UzQR.

invoice_id

operation.id

Идентификатор операции на стороне кассы.

external_id

Параметры для FiscalDriveService

Оплата Единый UzQR приравнивается к оплате банковской картой. Для фискализации в Узбекистане передаются дополнительные параметры банковской операции.

Параметр FiscalDriveService

Источник в ответе процессинга

Описание

Параметр FiscalDriveService

Источник в ответе процессинга

Описание

CardType

pay_id

Тип или идентификатор платежа, используемый для передачи данных оплаты.

CardNumber

card_type

Значение из ответа процессинга для передачи в фискализатор.

PPTID

card_no

Идентификатор транзакции или связанный параметр, передаваемый в фискализатор.

Параметры QRPaymentID и QRPaymentProvider в FiscalDriveService передавать не требуется.

Контрольный чек-лист после настройки

Процессинг Оплата по QR-коду UzQR добавлен в разделе ИнтеграцияВнешние процессинги.
В процессинге указаны магазины, для которых доступна оплата.
Заполнены адрес подключения, API key, таймауты и количество попыток.
При необходимости включено отображение QR-кода на дисплее покупателя.
Для Touch-кассы проверена настройка экрана покупателя в оборудовании.
В шаблоне кассы включен тип оплаты Единый UzQR.
Настройки доставлены на кассы.
Кассовый модуль перезагружен.
Тип оплаты Единый UzQR отображается в списке оплат на кассе.
Выполнена тестовая оплата.
Проверена регистрация чека и отправка ссылки на фискальный чек в UzQR.
При необходимости проверен возврат на POS или SetTouch.

Статьи по теме