---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://pay.yandex.ru/docs/ru/qr-code/index.md
  - href: ru/qr-code/index.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
title: "QR-код от Яндекс\_Пэй для оплаты через СБП\_— подключение и настройка | Документация"
description: "Принимайте оплату через СБП с помощью QR-кода от Яндекс\_Пэй. Инструкция по подключению статического QR-кода для онлайн-магазинов и касс."
---
> **Documentation Index:** Fetch the complete configuration index at https://pay.yandex.ru/docs/ru/llms.txt


# Подключение и настройка QR‑кода от Яндекс Пэй

**QR‑код от Яндекс Пэй** или **QR‑код от Яндекс Пэй со Сплитом** — сервис для оплаты покупок через СБП c помощью QR-кода. Покупатели могут оплачивать по QR-коду в том числе частями через любое банковское приложение и оставлять [чаевые](https://pay.yandex.ru/docs/ru/qr-code/tips.md) сотрудникам.

## Способы интеграции {#payment-methods}

Для интеграции с QR‑код от Яндекс Пэй вы можете использовать готовые решения из списка поддерживаемых кассовых ПО, принимать платежи через личный кабинет Яндекс Пэй или настроить интеграцию самостоятельно через [Cash Register API](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/index.md).

{% cut "Поддерживаемые кассовые ПО" %}

<!-- source: ru/qr-code/_includes/cash-registers.md -->
 #|
|| [2can](https://pay.yandex.ru/docs/ru/qr-code/two-can.md)             | [1С](https://pay.yandex.ru/docs/ru/qr-code/1c.md) ||
|| [Appexbots](https://pay.yandex.ru/docs/ru/qr-code/appexbots.md)      | [1С:Фитнес клуб](https://pay.yandex.ru/docs/ru/qr-code/1c-fitness.md) ||
|| [Arnica](https://pay.yandex.ru/docs/ru/qr-code/arnica.md)            | [АвтоДилер Онлайн](https://pay.yandex.ru/docs/ru/qr-code/autodealer.md)||
|| [Artix](https://pay.yandex.ru/docs/ru/qr-code/artix.md)              | [Агорта](https://pay.yandex.ru/docs/ru/qr-code/agorta.md) ||
|| [CloudShop](https://pay.yandex.ru/docs/ru/qr-code/cloudshop.md)      | [Айтида](https://pay.yandex.ru/docs/ru/qr-code/itida.md) ||
|| [ClubIS](https://pay.yandex.ru/docs/ru/qr-code/clubis.md)            | [АТОЛ Пэй](https://pay.yandex.ru/docs/ru/qr-code/atol.md) ||
|| [Colizeum](https://pay.yandex.ru/docs/ru/qr-code/colizeum.md)        | [БЭСТ-5.Кассир](https://pay.yandex.ru/docs/ru/qr-code/best5-kassir.md) ||
|| [CyberSoft](https://pay.yandex.ru/docs/ru/qr-code/cybersoft.md)      | [Дримкас](https://pay.yandex.ru/docs/ru/qr-code/dreamkas.md) ||
|| [FloraPoint](https://pay.yandex.ru/docs/ru/qr-code/florapoint.md)    | [Инфоклиника](https://pay.yandex.ru/docs/ru/qr-code/infoclinica.md) ||
|| [Fusion POS](https://pay.yandex.ru/docs/ru/qr-code/fusionpos.md)     | [Кассатка](https://pay.yandex.ru/docs/ru/qr-code/kassatka.md) ||
|| [GBS.Market](https://pay.yandex.ru/docs/ru/qr-code/gbsmarket.md)     | [Кассир 5](https://pay.yandex.ru/docs/ru/qr-code/kassir5.md) ||
|| [iDirector](https://pay.yandex.ru/docs/ru/qr-code/idirector.md)      | [МодульКасса](https://pay.yandex.ru/docs/ru/qr-code/modulkassa.md) ||
|| [iiko](https://pay.yandex.ru/docs/ru/qr-code/iiko.md)                | [Мой Кассир](https://pay.yandex.ru/docs/ru/qr-code/moykassir.md) ||
|| [Langame](https://pay.yandex.ru/docs/ru/qr-code/langame.md)          | [МойСклад](https://pay.yandex.ru/docs/ru/qr-code/moysklad.md) ||
|| [MeaSoft](https://pay.yandex.ru/docs/ru/qr-code/measoft.md)          | [РестАрт](https://pay.yandex.ru/docs/ru/qr-code/restart.md) ||
|| [Mobifitness](https://pay.yandex.ru/docs/ru/qr-code/mobifitness.md)  | [СОНЛАЙН](https://pay.yandex.ru/docs/ru/qr-code/sonline.md) ||
|| [Posiflora](https://pay.yandex.ru/docs/ru/qr-code/posiflora.md)      | [Торговля.Онлайн](https://pay.yandex.ru/docs/ru/qr-code/torgovlya-online.md) ||
|| [Quick Resto](https://pay.yandex.ru/docs/ru/qr-code/quickresto.md)   | [Эвотор](https://pay.yandex.ru/docs/ru/qr-code/evotor.md) ||
|| [r_keeper](https://pay.yandex.ru/docs/ru/qr-code/rkeeper.md)         |  ||
|| [SQNS](https://pay.yandex.ru/docs/ru/qr-code/sqns.md)                |  ||
|| [STOCRM](https://pay.yandex.ru/docs/ru/qr-code/stocrm.md)            |  ||
|| [VirtualPos](https://pay.yandex.ru/docs/ru/qr-code/virtualpos.md)    |  ||
|| [YCLIENTS](https://pay.yandex.ru/docs/ru/qr-code/yclients.md)        |  ||
|| [YTimes](https://pay.yandex.ru/docs/ru/qr-code/ytimes.md)            |  ||
|#
<!-- endsource: ru/qr-code/_includes/cash-registers.md -->

{% endcut %}

{% list tabs %}

- Готовые решения

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

  - [через терминал](#terminal) — подходит для кассового ПО. 
  
    Вы размещаете в магазине POS-терминал банка-партнера, на котором вместе с оплатой банковской картой будет доступна оплата по QR-коду от Яндекс Пэй. Динамический QR-код выводится на экран терминала, покупатель сканирует его и оплачивает заказ.
  - [по табличке с QR](#qr-table) — подходит для кассового ПО и принятия платежей в личном кабинете Яндекс Пэй.
  
    Вы размещаете табличку со статическим QR-кодом от Яндекс Пэй на кассе или сайте магазина, покупатель сканирует QR-табличку и оплачивает заказ.

  Выберите подходящий вам способ и следуйте шагам инструкций ниже.

- Самостоятельная интеграция

  Если вашего кассового ПО нет в списке и вы не хотите принимать платежи в личном кабинете, интегрируйтесь через [Cash Register API](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/index.md).

  Подходит для кассового ПО и касс самообслуживания (КСО).

  Перейдите в раздел [Самостоятельная интеграция](https://pay.yandex.ru/docs/ru/qr-code/api.md).

{% endlist %}

## Терминал. Подключение и настройка {#terminal}

### Шаг 1. Регистрация и подача заявки в Яндекс Пэй {#terminal-registration}

1. [Зарегистрируйтесь](https://pay.yandex.ru/docs/ru/console/registration.md) в личном кабинете Яндекс Пэй.
1. [Подайте заявку](https://pay.yandex.ru/docs/ru/console/registration.md#product-qr) на заключение договора и подключение QR‑код от Яндекс Пэй, в которой выберите способ приема оплаты **Терминал**.

### Шаг 2. Получение и настройка терминала {#getting-terminal}

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

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

### Шаг 3. Тестирование {#terminal-testing}

Протестируйте работу сервиса:

1. Создайте заказ в вашем кассовом ПО и выберите способ оплаты с помощью QR‑кода от Яндекс Пэй.
1. Убедитесь, что QR-код отобразился на экране терминала.
1. Отсканируйте QR-код камерой смартфона и подтвердите оплату с помощью СБП.
1. Проверьте, что оплата прошла успешно.
1. Создайте заказ и аналогично шагам выше оплатите заказ в Сплит.
1. Проверьте, что оплата прошла успешно.
1. Выполните возврат средств в вашем кассовом ПО.

   {% note info %}

   Если кассовое ПО не поддерживает возвраты, оформите возврат в разделе [Платежи](https://console.pay.yandex.ru/payments) личного кабинета Яндекс Пэй. Как оформить возврат, см. в разделе [Возврат платежей](https://pay.yandex.ru/docs/ru/custom/refund-payments.md).

   {% endnote %}

## Табличка с QR. Подключение и настройка {#qr-table}

Как подключить табличку с QR-кодом, смотрите в нашем видео:

<iframe
  frameborder="0" width="350" height="200" scrolling="no" allowfullscreen="" allow="autoplay; fullscreen; encrypted-media; accelerometer; gyroscope; picture-in-picture; clipboard-write; web-share; screen-wake-lock" 
  src="https://frontend.vh.yandex.ru/player/vQLE540xsqzc?loop=0&autoplay=1&mute=1&object_fit=cover&from=lpc">
</iframe>

### Шаг 1. Регистрация и подача заявки в Яндекс Пэй {#registration}

1. [Зарегистрируйтесь](https://pay.yandex.ru/docs/ru/console/registration.md) в личном кабинете Яндекс Пэй.
1. [Подайте заявку](https://pay.yandex.ru/docs/ru/console/registration.md#product-qr) на подключение сервиса QR‑код от Яндекс Пэй, в которой выберите способ приема оплаты **Табличка с QR**.
1. Дождитесь одобрения заявки. Сотрудник Яндекс Пэй свяжется с вами по телефону, чтобы подтвердить или уточнить информацию, и сформирует заявку на подключение.

<!-- source: ru/_includes/application-status.md -->
{% note tip %}

Отслеживайте статус подключения на главной странице, в разделе **Сервисы** и в почте.

{% endnote %}
<!-- endsource: ru/_includes/application-status.md -->

### Шаг 2. Привязка QR-кода {#link-qr}

{% note info %}

Если вы подключаете онлайн-магазин, привязывать QR-код не требуется. Перейдите к [выпуску токена](#token).

{% endnote %}

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

<!-- source: ru/_includes/cash-registers.md -->
1. Перейдите в раздел **Настройки** → **Привязать QR-код**. Проверьте, что в селекторе выбран нужный магазин.
1. В открывшемся окне укажите ID-номер QR-кода, который указан на табличке, и нажмите кнопку **Привязать**.

При необходимости вы можете заказать дополнительные QR-коды. Управлять выпущенными QR-кодами можно в настройке **Ваши QR-коды**.
<!-- endsource: ru/_includes/cash-registers.md -->

Чтобы отключить прием оплаты по QR-коду, в настройке **Ваши QR-коды** нажмите кнопку **Отключить**.

### Шаг 3. Выпуск токена {#token}

{% note info %}

Выпускать токен не требуется, если вы не используете кассовое ПО или используете ПО, которого нет в списке поддерживаемого. Перейдите к [тестированию](#testing) сервиса.

{% endnote %}

В разделе **Настройки** личного кабинета:

<!-- source: ru/_includes/cash-registers.md -->
1. Перейдите в раздел **Настройки** → **Выпустить токен для кассы**. 
1. В открывшемся окне отобразится токен. Скопируйте и сохраните его. Токен потребуется далее при настройке кассового ПО.

   {% note tip %}

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

   {% endnote %}

Если вы потеряете или забудете токен, его нужно будет выпустить повторно. Для выпуска токена в настройках нажмите **Токены для кассы** → **Выпустить токен**.

Одновременно для магазина можно выпустить не более трех токенов. Выпущенные токены хранятся в настройке **Токены для кассы**. Для настройки кассового ПО вы можете использовать любой из них.
<!-- endsource: ru/_includes/cash-registers.md -->

### Шаг 4. Настройка кассового ПО {#cash-registers-settings}

{% note info %}

Настройка не требуется, если вы не используете кассовое ПО или используете ПО, которого нет в списке поддерживаемого — вы можете принимать платежи по QR‑коду в [личном кабинете Яндекс Пэй](https://pay.yandex.ru/docs/ru/console/create-link.md#qr).

{% endnote %}

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

<!-- source: ru/qr-code/_includes/cash-registers.md -->
 #|
|| [2can](https://pay.yandex.ru/docs/ru/qr-code/two-can.md)             | [1С](https://pay.yandex.ru/docs/ru/qr-code/1c.md) ||
|| [Appexbots](https://pay.yandex.ru/docs/ru/qr-code/appexbots.md)      | [1С:Фитнес клуб](https://pay.yandex.ru/docs/ru/qr-code/1c-fitness.md) ||
|| [Arnica](https://pay.yandex.ru/docs/ru/qr-code/arnica.md)            | [АвтоДилер Онлайн](https://pay.yandex.ru/docs/ru/qr-code/autodealer.md)||
|| [Artix](https://pay.yandex.ru/docs/ru/qr-code/artix.md)              | [Агорта](https://pay.yandex.ru/docs/ru/qr-code/agorta.md) ||
|| [CloudShop](https://pay.yandex.ru/docs/ru/qr-code/cloudshop.md)      | [Айтида](https://pay.yandex.ru/docs/ru/qr-code/itida.md) ||
|| [ClubIS](https://pay.yandex.ru/docs/ru/qr-code/clubis.md)            | [АТОЛ Пэй](https://pay.yandex.ru/docs/ru/qr-code/atol.md) ||
|| [Colizeum](https://pay.yandex.ru/docs/ru/qr-code/colizeum.md)        | [БЭСТ-5.Кассир](https://pay.yandex.ru/docs/ru/qr-code/best5-kassir.md) ||
|| [CyberSoft](https://pay.yandex.ru/docs/ru/qr-code/cybersoft.md)      | [Дримкас](https://pay.yandex.ru/docs/ru/qr-code/dreamkas.md) ||
|| [FloraPoint](https://pay.yandex.ru/docs/ru/qr-code/florapoint.md)    | [Инфоклиника](https://pay.yandex.ru/docs/ru/qr-code/infoclinica.md) ||
|| [Fusion POS](https://pay.yandex.ru/docs/ru/qr-code/fusionpos.md)     | [Кассатка](https://pay.yandex.ru/docs/ru/qr-code/kassatka.md) ||
|| [GBS.Market](https://pay.yandex.ru/docs/ru/qr-code/gbsmarket.md)     | [Кассир 5](https://pay.yandex.ru/docs/ru/qr-code/kassir5.md) ||
|| [iDirector](https://pay.yandex.ru/docs/ru/qr-code/idirector.md)      | [МодульКасса](https://pay.yandex.ru/docs/ru/qr-code/modulkassa.md) ||
|| [iiko](https://pay.yandex.ru/docs/ru/qr-code/iiko.md)                | [Мой Кассир](https://pay.yandex.ru/docs/ru/qr-code/moykassir.md) ||
|| [Langame](https://pay.yandex.ru/docs/ru/qr-code/langame.md)          | [МойСклад](https://pay.yandex.ru/docs/ru/qr-code/moysklad.md) ||
|| [MeaSoft](https://pay.yandex.ru/docs/ru/qr-code/measoft.md)          | [РестАрт](https://pay.yandex.ru/docs/ru/qr-code/restart.md) ||
|| [Mobifitness](https://pay.yandex.ru/docs/ru/qr-code/mobifitness.md)  | [СОНЛАЙН](https://pay.yandex.ru/docs/ru/qr-code/sonline.md) ||
|| [Posiflora](https://pay.yandex.ru/docs/ru/qr-code/posiflora.md)      | [Торговля.Онлайн](https://pay.yandex.ru/docs/ru/qr-code/torgovlya-online.md) ||
|| [Quick Resto](https://pay.yandex.ru/docs/ru/qr-code/quickresto.md)   | [Эвотор](https://pay.yandex.ru/docs/ru/qr-code/evotor.md) ||
|| [r_keeper](https://pay.yandex.ru/docs/ru/qr-code/rkeeper.md)         |  ||
|| [SQNS](https://pay.yandex.ru/docs/ru/qr-code/sqns.md)                |  ||
|| [STOCRM](https://pay.yandex.ru/docs/ru/qr-code/stocrm.md)            |  ||
|| [VirtualPos](https://pay.yandex.ru/docs/ru/qr-code/virtualpos.md)    |  ||
|| [YCLIENTS](https://pay.yandex.ru/docs/ru/qr-code/yclients.md)        |  ||
|| [YTimes](https://pay.yandex.ru/docs/ru/qr-code/ytimes.md)            |  ||
|#
<!-- endsource: ru/qr-code/_includes/cash-registers.md -->

### Шаг 5. Подключение оплаты в Сплит (опционально) {#split}

<!-- source: ru/_includes/qr-split.md -->
1. В личном кабинете Яндекс Пэй перейдите в раздел **Настройки** → **Дополнительные сервисы**.
1. Включите опцию **Оплата частями в Сплит**.
1. Ознакомьтесь с тарифом и условиями сервиса Яндекс Пэй для партнеров и нажмите кнопку **Отлично, давайте**. Обратите внимание, что тариф вознаграждения за услуги сервиса изменится.   

После этого покупатели смогут оплачивать покупки вашем магазине в Сплит.

##### **Отключение оплаты в Сплит** {#split-off}

Чтобы отключить оплату в Сплит с помощью QR‑кода от Яндекс Пэй, отключите опцию **Оплата частями в Сплит** в настройках магазина.
<!-- endsource: ru/_includes/qr-split.md -->

### Шаг 5. Тестирование {#testing}

Протестируйте работу сервиса:

<!-- source: ru/_includes/testing.md -->
{% list tabs %}

- В кассовом ПО

  {% note warning %}

  Протестировать прием платежей в кассовом ПО можно, если вы подключили QR‑код от Яндекс Пэй в настройках кассового ПО.

  {% endnote %}
  1. Создайте заказ в вашем кассовом ПО и выберите способ оплаты с помощью QR‑кода от Яндекс Пэй.
  1. Отсканируйте QR-табличку камерой смартфона и подтвердите оплату с помощью СБП.
  1. Проверьте, что оплата прошла успешно.
  1. Если у вас подключена оплата в Сплит, создайте заказ и аналогично шагам выше оплатите заказ в Сплит.
  1. Проверьте, что оплата прошла успешно.
  1. Выполните возврат средств в вашем кассовом ПО.

     {% note info %}

     Если кассовое ПО не поддерживает возвраты, оформите возврат в разделе [Платежи](https://console.pay.yandex.ru/payments) личного кабинета Яндекс Пэй. Как оформить возврат см. подробнее в разделе [Возврат платежей](https://pay.yandex.ru/docs/ru/custom/refund-payments.md).

     {% endnote %}

- В личном кабинете Яндекс Пэй

  {% note warning %}

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

  {% endnote %}

  1. Перейдите в раздел [Платежи](https://console.pay.yandex.ru/payments) личного кабинета Яндекс Пэй и примите оплату по инструкции в разделе [Прием платежа](https://pay.yandex.ru/docs/ru/console/create-link.md#qr).
  1. Выполните возврат средств по инструкции в разделе [Возврат платежей](https://pay.yandex.ru/docs/ru/custom/refund-payments.md).

- В Cash Register API

  {% note tip %}

  Подробный процесс работы с заказом см. в разделе [Самостоятельная интеграция](https://pay.yandex.ru/docs/ru/qr-code/api.md#how-to).

  {% endnote %}
  
  <!-- source: ru/_includes/testing-qr-api.md -->
  Для тестирования Cash Register API доступна sandbox-среда, которая позволяет проверить интеграцию без реальных платежей. В ней все методы API работают так же, как в боевой среде.

  **Особенности sandbox:**

  - Тестовые ключи отличаются от боевых.
  - Базовый URL: `https://sandbox.pay.yandex.ru/api/merchant/cash-register`.
  - Включена автоматическая оплата — после создания заказа оплата происходит автоматически, переходить по `paymentUrl` не требуется.

  #### Настройка тестовой среды в личном кабинете {#sandbox-settings}

  1.  В [личном кабинете](https://console.pay.yandex.ru/settings) откройте раздел **Настройки**.

  1.  Включите опцию **Тестовая среда**.

      ![Настройки sandbox](../_assets/test-qr-settings.png){.c-screenshot width=400}

  1.  В разделе **Тестирование в Sandbox** скопируйте тестовые ключи и используйте их для [аутентификации запросов](https://pay.yandex.ru/docs/ru/qr-code/api.md#auth):
      - **YandexPayApiKey** — в заголовке `Authorization: Api-Key <ключ>`;
      - **SoftwareAuthorization** — в заголовке `Software-Authorization: <ключ>`.

  1.  Настройте [Callback URL](https://pay.yandex.ru/docs/ru/qr-code/api.md#callback-settings) для получения [нотификаций](https://pay.yandex.ru/docs/ru/qr-code/api.md#webhook) о статусе заказа и операций.

  1.  Вы также можете посмотреть тестовые платежи в личном кабинете. Подробнее см. в разделе [Просмотр тестовых платежей](https://pay.yandex.ru/docs/ru/testing.md#test-payments).

  #### Оформление заказа с помощью статического QR-кода {#test-static-qr}

  1.  Получите `qrcId` методом [/accounts](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/QR-tablichki/getAccounts.md).

  1.  Создайте заказ методом [/orders](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/createOrder.md) с одной из тестовых сумм для эмуляции результатов оплаты.

      {% cut "Тестовые суммы" %}

      #|
      || **Сумма** | **Результат** ||
      || 10 000 | Успешная оплата через СБП, карту или в Сплит.

      Статус платежа: `paymentStatus: "CAPTURED"`.

      Статус операции: `operationType: "AUTHORIZE"`, `status: "SUCCESS"`. ||

      || 10 001 | Техническая ошибка.

      Статус платежа: `paymentStatus: "FAILED"`, `reason: "WRONG_ENVIRONMENT"`.

      Статус операции: `operationType: "AUTHORIZE"`, `status: "FAIL"`. ||
      || 10 002 | Недостаточно средств.

      Статус платежа: `paymentStatus: "FAILED"`, `reason: "NOT_ENOUGH_FUNDS"`.

      Статус операции: `operationType: "AUTHORIZE"`, `status: "FAIL"`. ||
      || 10 004 | Вечный статус `PENDING`. Используйте для проверки поллинга и деактивации статического QR-кода.

      Статус платежа: `paymentStatus: "PENDING"` — заказ остается в этом статусе до деактивации.

      Статус операции: `operationType: "AUTHORIZE"`, `status: "PENDING"`. ||
      |#

      {% endcut %}

      Для отображения Сплита в способах оплаты передайте `availablePaymentMethods: ["CARD", "SPLIT"]`.

  1.  Яндекс Пэй вернет поле `paymentUrl` с уникальной ссылкой на оплату.

      В sandbox оплата произойдет автоматически — переходить по ссылке не требуется.

      В боевой среде перейдите по ссылке и оплатите заказ через СБП, карту или в Сплит.

  1.  Проверьте статус заказа одним из способов:

      - Нотификации (рекомендуется) — дождитесь нотификации [/webhook](https://pay.yandex.ru/docs/ru/custom/backend/merchant-api/webhook.md) с событием `ORDER_STATUS_UPDATED`.

      - Поллинг — опрашивайте статус методом [/orders/{orderId}](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/getOrder.md). Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду.

      Ожидаемый результат см. в столбце **Результат** в таблице тестовых сумм.

  #### Оформление заказа с помощью динамического QR-кода {#test-dynamic-qr}

  1.  Создайте заказ методом [/orders/dynamic](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/createDynamicOrder.md) с одной из тестовых сумм для эмуляции результатов оплаты. Получать `qrcId` не требуется — QR-код генерируется автоматически.

      {% cut "Тестовые суммы" %}

      #|
      || **Сумма** | **Результат** ||
      || 10 000 | Успешная оплата через СБП, карту или в Сплит.

      Статус платежа: `paymentStatus: "CAPTURED"`.

      Статус операции: `operationType: "AUTHORIZE"`, `status: "SUCCESS"`. ||

      || 10 001 | Техническая ошибка.

      Статус платежа: `paymentStatus: "FAILED"`, `reason: "WRONG_ENVIRONMENT"`.

      Статус операции: `operationType: "AUTHORIZE"`, `status: "FAIL"`. ||
      || 10 002 | Недостаточно средств.

      Статус платежа: `paymentStatus: "FAILED"`, `reason: "NOT_ENOUGH_FUNDS"`.

      Статус операции: `operationType: "AUTHORIZE"`, `status: "FAIL"`. ||
      || 10 004 | Вечный статус `PENDING`. Используйте для проверки поллинга и деактивации статического QR-кода.

      Статус платежа: `paymentStatus: "PENDING"` — заказ остается в этом статусе до деактивации.

      Статус операции: `operationType: "AUTHORIZE"`, `status: "PENDING"`. ||
      |#

      {% endcut %}

      Для отображения Сплита в способах оплаты передайте `availablePaymentMethods: ["CARD", "SPLIT"]`.

  1.  Яндекс Пэй вернет поле `paymentUrl` с уникальной ссылкой на оплату.

      В sandbox оплата произойдет автоматически — переходить по ссылке не требуется.

      В боевой среде перейдите по ссылке и оплатите заказ через СБП, карту или в Сплит.

  1.  Проверьте статус заказа одним из способов:

      - Нотификации (рекомендуется) — дождитесь нотификации [/webhook](https://pay.yandex.ru/docs/ru/custom/backend/merchant-api/webhook.md) с событием `ORDER_STATUS_UPDATED`.

      - Поллинг — опрашивайте статус методом [/orders/{orderId}](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/getOrder.md). Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду.

      Ожидаемый результат см. в столбце **Результат** в таблице тестовых сумм.

  #### Поллинг и деактивация (прерывание оплаты) {#test-polling-deactivate}

  Деактивация доступна только для статических QR-кодов.

  1. Получите `qrcId` методом [/accounts](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/QR-tablichki/getAccounts.md).

  1. Создайте заказ методом [/orders](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/createOrder.md) на сумму **10 004 рубля**.

  1. Деактивация доступна только для заказов в статусе `paymentStatus: "PENDING"`.

     Проверьте статус заказа методом [/orders/{orderId}](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/getOrder.md).

  1. Настройте поллинг:
     - Первый запрос — через 5–10 секунд после создания заказа.

     - Последующие запросы — не чаще одного раза в секунду.

  1. Убедитесь, что заказ остается в статусе `paymentStatus: "PENDING"` и деактивируйте его методом [/orders/{orderId}/deactivate](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/deactivateOrder.md).

  1. Проверьте статусы:
     - операции: `operationType: "AUTHORIZE"`, `status: "FAIL"`;
     - заказа: `paymentStatus: "FAILED"`, `reason: "Payment rolled back by merchant"`.

  #### Полный возврат {#test-full-refund}

  1. Создайте и оплатите заказ на сумму **10 000 рублей** с помощью [статического](#test-static-qr) или [динамического QR-кода](#test-dynamic-qr).

  1. Возврат доступен только для заказов в статусе `paymentStatus: "CAPTURED"` или `paymentStatus: "PARTIALLY_REFUNDED"`.

     Проверьте статус заказа методом [/orders/{orderId}](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/getOrder.md).

  1. Выполните полный возврат методом [/orders/{orderId}/refund](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/refundOrder.md) с параметрами:
     - `externalOperationId` — уникальный идентификатор операции на стороне продавца. По нему можно узнать статус операции и он служит токеном идемпотентности.
     - `refundAmount` — сумма к возврату. Для полного возврата укажите сумму заказа (**10 000 рублей**).
     - `refundCart` — корзина возвращаемых позиций. Для полного возврата можно не указывать.

  1. Проверьте статус операции возврата одним из способов:

     - Нотификации (рекомендуется) — дождитесь нотификации [/webhook](https://pay.yandex.ru/docs/ru/custom/backend/merchant-api/webhook.md) с событием `OPERATION_STATUS_UPDATED`.

     - Поллинг — опрашивайте статус методом [/orders/{orderId}](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/getOrder.md). Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду. Находите нужную операцию по `externalOperationId`, который вы передали в [/orders/{orderId}/refund](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/refundOrder.md).

     Ожидаемый результат: `operationType: "REFUND"`, `status: "SUCCESS"`.

  1. Проверьте статус заказа одним из способов:

     - Нотификации (рекомендуется) — дождитесь нотификации [/webhook](https://pay.yandex.ru/docs/ru/custom/backend/merchant-api/webhook.md) с событием `ORDER_STATUS_UPDATED`.

     - Поллинг — опрашивайте статус методом [/orders/{orderId}](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/getOrder.md). Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду.

     Ожидаемый результат: `paymentStatus: "REFUNDED"`.

  #### Частичный возврат {#test-partial-refund}

  1. Создайте и оплатите заказ с несколькими позициями на сумму **10 000 рублей** с помощью [статического](#test-static-qr) или [динамического QR-кода](#test-dynamic-qr).

     При формировании корзины используйте [одну из логик](https://pay.yandex.ru/docs/ru/qr-code/api.md#refund-logics): **базовую** без цены за единицу товара `CartItem.unitPrice` или **расширенную** — с `CartItem.unitPrice`.

     От корзины при создании заказа зависит будущая логика возврата.

  1. Возврат доступен только для заказов в статусе `paymentStatus: "CAPTURED"` или `paymentStatus: "PARTIALLY_REFUNDED"`.

     Проверьте статус заказа методом [/orders/{orderId}](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/getOrder.md).

  1. Выполните частичный возврат методом [/orders/{orderId}/refund](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/refundOrder.md) с параметрами:
     - `externalOperationId` — уникальный идентификатор операции на стороне продавца. По нему можно узнать статус операции и он служит токеном идемпотентности.
     - `refundAmount` — сумма к возврату.
     - `refundCart` — корзина возвращаемых позиций. Обязательна для частичного возврата.

       Формат `refundCart` зависит от логики возвратов. Подробнее см. в разделах [Две логики возвратов](https://pay.yandex.ru/docs/ru/qr-code/api.md#refund-logics) и [Примеры возвратов](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/refundOrder.md#refund-examples).

  1. Проверьте статус операции возврата одним из способов:

     - Нотификации (рекомендуется) — дождитесь нотификации [/webhook](https://pay.yandex.ru/docs/ru/custom/backend/merchant-api/webhook.md) с событием `OPERATION_STATUS_UPDATED`.

     - Поллинг — опрашивайте статус методом [/orders/{orderId}](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/getOrder.md). Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду. Находите нужную операцию по `externalOperationId`, который вы передали в [/orders/{orderId}/refund](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/refundOrder.md).

     Ожидаемый результат: `operationType: "REFUND"`, `status: "SUCCESS"`.

  1. Проверьте статус заказа одним из способов:

     - Нотификации (рекомендуется) — дождитесь нотификации [/webhook](https://pay.yandex.ru/docs/ru/custom/backend/merchant-api/webhook.md) с событием `ORDER_STATUS_UPDATED`.

     - Поллинг — опрашивайте статус методом [/orders/{orderId}](https://pay.yandex.ru/docs/ru/custom/backend/cash-register/Zakazy/getOrder.md). Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду.

     Ожидаемый результат: `paymentStatus: "PARTIALLY_REFUNDED"`.
  <!-- endsource: ru/_includes/testing-qr-api.md -->

{% endlist %}
<!-- endsource: ru/_includes/testing.md -->

### Шаг 6. Заказ дополнительных QR-кодов {#order-qr}

По умолчанию после одобрения заявки на подключение сервиса в офлайн-магазин оформляется одна табличка с QR-кодом. Чтобы заказать дополнительные QR-коды:

1. В личном кабинете Яндекс Пэй в разделе [Настройки](https://console.pay.yandex.ru/settings) выберите ваш магазин и нажмите кнопку **Заказать еще QR-код**.
1. В открывшемся окне укажите:

   <!-- source: ru/_includes/cash-registers.md -->
   - **Количество касс** — количество касс, на которых будут использоваться QR-коды. Можно подключить не более 20 касс. Для каждой кассы выпускается уникальный QR-код.
   - **Адрес для доставки** — адрес, куда курьер доставит табличку с QR-кодом.
   - **Контакт для связи** — номер телефона и почта сотрудника, с которым можно связаться по вопросам доставки.
   <!-- endsource: ru/_includes/cash-registers.md --> 

1. Нажмите кнопку **Заказать**. Сотрудник Яндекс Пэй свяжется с вами по телефону, чтобы подтвердить или уточнить информацию.
1. Ожидайте доставку таблички с QR-кодом. После получения [привяжите](#link-qr) QR-табличку в настройках магазина.


