Перейти к основному содержимому

Работа с QR-кодами

QR-коды нужны для приёма оплат от покупателей. Создавать их можно только для торговых точек, которые уже зарегистрированы в СБП. А как их зарегистрировать - вы можете узнать в разделе «Регистрация ЮЛ или ТСП».

Важно

Во всех методах создания QR-кодов сумма (amount) указывается в копейках. Это отличается от возврата через СБП, где сумма указывается в рублях.

Статические и динамические QR-коды

Статические и динамические QR-коды — самый простой способ принимать оплату от физлиц. Покупатель сканирует код в приложении своего банка, подтверждает сумму — и деньги поступают на ваш счёт. Какой тип выбрать, зависит от сценария:

Статический — многоразовый код с одной ссылкой, действует бессрочно. Удобно разместить на кассе, на наклейке или в зале: один и тот же код принимает сколько угодно оплат. Сумму можно не задавать — тогда покупатель вводит её сам.

Динамический — одноразовый код под конкретную оплату с заранее заданной суммой. Подходит, когда сумма известна: счёт в кафе, оплата заказа в интернет-магазине. По каждому коду проходит только одна оплата.

Зарегистрируйте QR-код методом Register Qr Code. В запросе передайте:

  • accountId — идентификатор счёта юрлица.
  • merchantId — идентификатор ТСП.
  • paymentPurpose — назначение платежа, которое покупатель увидит при считывании кода.
  • amount — сумма платежа в копейках. Обязательна для динамических QR-кодов, для статических можно не указывать.
  • qrcType — тип кода: 01 — статический, 02 — динамический.
  • imageParams — параметры изображения: width и height - от 200, по умолчанию 300.

Дополнительно можно указать:

  • currency — валюта операции, только RUB.
  • sourceName — название вашей интеграции для аналитики: покупатель его не видит.
  • ttl — время действия в минутах от 1 до 129 600. Только для динамических QR-кодов; по умолчанию 72 часа.
  • redirectUrl — https-ссылка, на которую вернётся пользователь после оплаты.
Совет

Если клиенты платят через приложение, удобнее перенаправлять их по ссылке для оплаты, а не показывать картинку. Для этого возьмите из ответа атрибут payload.

Статус динамического QR-кода можно отследить методом Get Qr Codes Payment Status — в течение срока действия кода или 24 часов с момента оплаты. Для статических QR-кодов статус не отслеживается: такой код всегда активен.

Кассовые QR-коды

Кассовый QR-код — один код, по которому можно принимать много оплат, но перед каждой его нужно активировать заново.

1. Создайте код методом Register Cashbox Qrcode. Передайте accountId, merchantId и imageParams (width, height). Дополнительно — redirectUrl.

Из ответа сохраните: qrcId (идентификатор кода), payload (ссылка для оплаты) и image (изображение). Эти параметры закрепляются за кассовой ссылкой.

2. Активируйте код перед оплатой методом Activate Cashbox Qrcode. Передайте qrcId и amount (в копейках). Дополнительно — currency, paymentPurpose, ttl (от 5 до 20 минут, по умолчанию 5).

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

Дополнительно:

Инфо

Необязательные параметры принимаются, только пока код активен — по нему ещё не прошла оплата и не закончился ttl.

B2B QR-коды

B2B QR-коды нужны для приёма платежей от ИП и организаций (не от физлиц).

Зарегистрируйте код методом Register B2B Qr Code. В запросе передайте:

  • accountId — идентификатор счёта юрлица
  • merchantId — идентификатор ТСП
  • paymentPurpose — назначение платежа
  • amount — сумма в копейках. Максимум для B2B QR-кода — 1 миллион рублей
  • sourceName — название интеграции для аналитики
  • takeTax — с НДС (true) или без (false)

Дополнительно можно указать:

  • totalTaxAmount — сумма НДС в копейках. Обязательна, если takeTax: true.
  • ttl — время действия в минутах от 1 до 129 600, по умолчанию 72 часа.
  • redirectUrl — https-ссылка для перенаправления после оплаты.
  • uip — уникальный идентификатор платежа, назначаемый получателем.

Посмотреть информацию по коду можно методом Get B2B Qr Code.

Совет

Чтобы сразу узнавать о поступлении оплаты, настройте вебхук с событием incomingSbpB2BPayment.