Перейти к содержанию

ПОДКЛЮЧАЕТСЯ ПО ЗАПРОСУ

Оплата по QR-коду (UZS)

Метод QR принимает сумы по единому QR-коду Узбекистана (UzQR). Для мерчанта это обычная заявка в UZS: сумма, курс и расчёты с EasyTokenPay те же, что у карточного метода C2C. Отличие в том, что клиент получает не номер карты, а QR-код: он сканирует его в приложении своего банка, вводит сумму заявки и подтверждает оплату.

Доступность метода

Метод подключается по запросу. Проверяйте /currencies/?operation=order: у UZS в payment_methods должен быть QR. Метода нет в списке — запрос с ним отклоняется ответом 400. Метод есть, но свободного QR-реквизита сейчас нет — заявка получит 404, как при отсутствии реквизита.

Как проходит платёж

  1. Мерчант создаёт заявку в UZS с requisite_type=QR.
  2. Платформа выдаёт QR-код трейдера: изображение и его содержимое строкой.
  3. Мерчант показывает клиенту QR-код и сумму заявки. Сумму клиент вводит сам, поэтому покажите её крупно с пометкой «введите ровно эту сумму».
  4. Клиент сканирует код в приложении любого банка или платёжного сервиса Узбекистана, вводит сумму и платит.
  5. Платформа получает уведомление банка о зачислении и подтверждает заявку автоматически — статус AUTO_APPROVED, приходит callback.
  6. Если клиент ввёл другую сумму, решение по заявке принимает трейдер вручную; итог приходит обычным статусом заявки и callback.

Создать заявку

POST /api/v1/merchant/create_order/?type=api
Authorization: Bearer <access_token>
Content-Type: application/json

{
  "merchant_order_id": "payment-20261015-001",
  "merchant_client_id": "client-1042",
  "currency_code_from": "USDT",
  "currency_code_to": "UZS",
  "expected_income": "150000",
  "requisite_type": "QR"
}

Поля те же, что у обычной заявки. В ответе вместо номера карты приходит QR-код:

{
  "id": "71f25851-28d3-47eb-8770-51f717f5821e",
  "status": "BRAND_NEW",
  "merchant_order_id": "payment-20261015-001",
  "currency_code_from": "USDT",
  "currency_code_to": "UZS",
  "expected_income": "150000.000000",
  "requisite": {
    "account_number": null,
    "phone_number": null,
    "fio": "YATT SHUKUROVA NILUFAR",
    "bank": {"name": "HamkorBank"},
    "payment_type": ["QR"],
    "qr_image": "https://easytokenpay.com/media/requisites/qr/8f1c....png",
    "qr_payload": "00020101021140610012qr-online.uz0118...630445EB"
  },
  "course": 12485.0075,
  "external_course": 12485.0075
}
Поле Значение
requisite.qr_image Ссылка на изображение QR-кода. Показывайте его клиенту как есть, без пересборки. Ссылка действует всё время жизни заявки
requisite.qr_payload Содержимое QR-кода строкой (стандарт EMVCo). Если вы рисуете QR на своей стороне, кодируйте эту строку без изменений
requisite.fio Имя получателя, как оно зашито в код. Клиент увидит его в приложении банка при оплате
requisite.account_number Всегда null для QR
course Ваш курс UZS за 1 USDT с учётом комиссии, как у C2C

Статус, отмена, список заявок, споры и callback работают так же, как для карточных заявок. В уведомлениях банка нет номера карты плательщика, поэтому для спора приложите квитанцию из приложения клиента: в ней видны имя получателя из кода и сумма.

Что показать клиенту

  • QR-код (изображение из qr_image или код, собранный из qr_payload).
  • Сумму заявки в сумах, крупно, с пометкой «введите ровно эту сумму».
  • Имя получателя из fio, чтобы клиент сверил его в приложении банка.
  • Время на оплату: 15 минут, как у карточных заявок.