---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.5
alternate:
  - https://pay.yandex.ru/docs/ru/custom/web-sdk/ultimate-widget.md
  - href: ru/custom/web-sdk/ultimate-widget.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
title: "Ultimate-виджет Яндекс\_Пэй\_— универсальный платежный виджет | Документация"
description: Мощный виджет для приема всех типов платежей. Полная кастомизация, адаптивный дизайн и простая интеграция на любой сайт.
---
> **Documentation Index:** Fetch the complete configuration index at https://pay.yandex.ru/docs/ru/llms.txt


# Виджеты Яндекс Пэй

{% note info %}

Вы находитесь в разделе, посвященном Web SDK. Если вы используете мобильные устройства, перейдите в соответствующий [раздел](https://pay.yandex.ru/docs/ru/custom/front-index.yaml).

{% endnote %}

## Интерактивное демо {#example}

<!-- TODO: w-sdk-ultimate-widget-3 -->

Посмотрите, какие виджеты имеются в арсенале Яндекс Пэй, и как внешний вид зависит от параметров.

<!-- source: ru/custom/web-sdk/_snippets/ultimate-widget.mdx -->
<!-- markdownlint-disable -->

<div class="ypd-preview">
    <a href="https://yastatic.net/s3/pay-static/docs/v46.0.0/custom/ultimate-widget/index.html" target="_blank">
        <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"><path fill="currentColor" d="M18 19H6c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h5c.55 0 1-.45 1-1s-.45-1-1-1H5c-1.11 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55-.45 1-1 1zM14 4c0 .55.45 1 1 1h2.59l-9.13 9.13c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L19 6.41V9c0 .55.45 1 1 1s1-.45 1-1V3h-6c-.55 0-1 .45-1 1z"></path></svg>
    </a>
    <iframe src="https://yastatic.net/s3/pay-static/docs/v46.0.0/custom/ultimate-widget/index.html" style="height: 800px"></iframe>
</div>
<!-- endsource: ru/custom/web-sdk/_snippets/ultimate-widget.mdx -->

{% note warning %}

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

{% endnote %}

## Параметры виджета {#options}

<!-- TODO: w-sdk-ultimate-widget-1 -->

Параметры виджета и их значения приведены в таблице:

| **Параметр**          | **Значение**                               | **Внешний вид**                                                                               |
| --------------------- | ------------------------------------------ | --------------------------------------------------------------------------------------------- |
| **Тема виджета**      |                                            |                                                                                               |
| `theme`               | `WidgetTheme.Light`                        | ![Виджет, светлая тема](./_assets/widgets/ultimate-widget/theme_light.png){width=640}               |
| `theme`               | `WidgetTheme.Dark`                         | ![Виджет, темная тема](./_assets/widgets/ultimate-widget/theme_dark.png){width=640}                 |
| **Тип шапки**         |                                            |                                                                                               |
| `hideWidgetHeader`    | `false` (по умолчанию)                     | ![Виджет со стандартной шапкой](./_assets/widgets/ultimate-widget/theme_light.png){width=640}           |
| `hideWidgetHeader`    | `true`                                     | ![Виджет со скрытой шапкой](./_assets/widgets/ultimate-widget/hide_header.png){width=640}           |
| **Фон виджета**       |                                            |                                                                                               |
| `background`          | `WidgetBackground.Default` (по умолчанию)  | ![Виджет со стандартным фоном](./_assets/widgets/ultimate-widget/theme_light.png){width=640}        |
| `background`          | `WidgetBackground.Saturated`               | ![Виджет с насыщенным фоном](./_assets/widgets/ultimate-widget/saturated.png){width=640}        |
| `background`          | `WidgetBackground.Transparent`             | ![Виджет с прозрачным фоном](./_assets/widgets/ultimate-widget/transparent.png){width=640}    |
| **Обводка виджета**   |                                            |                                                                                               |
| `withOutline`         | `true`                                     | ![Виджет с обводкой](./_assets/widgets/ultimate-widget/outline.png){width=640}               |
| `withOutline`         | `false` (по умолчанию)                     | ![Виджет без обводки](./_assets/widgets/ultimate-widget/theme_light.png){width=640}          |
| **Радиус виджета**    |                                            |                                                                                               |
| `borderRadius`        | `0px`                                      | ![Виджет, скругление 0px](./_assets/widgets/ultimate-widget/border_radius_0.png){width=640}            |
| `borderRadius`        | `20px` (по умолчанию)                      | ![Виджет, скругление 20px](./_assets/widgets/ultimate-widget/theme_light.png){width=640}               |
| `borderRadius`        | `32px`                                     | ![Виджет, скругление 32px](./_assets/widgets/ultimate-widget/border_radius_32.png){width=640}          |
| **Внутренний отступ** |                                            |                                                                                               |
| `hasPadding`          | `true` (по умолчанию)                      | ![Виджет с внутренним отступом](./_assets/widgets/ultimate-widget/theme_light.png){width=640}           |
| `hasPadding`          | `false`                                    | ![Виджет без внутреннего отступа](./_assets/widgets/ultimate-widget/no_padding.png){width=640}           |
| **Размер виджета**    |                                            |                                                                                               |
| `size`                | `ultimate-widgetize.SMALL`                 | ![Виджет, размер Small](./_assets/widgets/ultimate-widget/small.png){width=640}        |
| `size`                | `ultimate-widgetize.Medium` (по умолчанию) | ![Виджет, размер Medium](./_assets/widgets/ultimate-widget/theme_light.png){width=640} |
| **Кнопка «Оформить»** |                                            |                                                                                               |
| `hasCheckoutButton`   | `true`                                     | ![Виджет с кнопкой «Оформить»](./_assets/widgets/ultimate-widget/button.png){width=640}         |
| `hasCheckoutButton`   | `false` (по умолчанию)                     | ![Виджет без кнопки «Оформить»](./_assets/widgets/ultimate-widget/theme_light.png){width=640}   |

## Модальные окна виджета

<!-- TODO: w-sdk-ultimate-widget-1 -->

{% list tabs %}

-   Модальное окно Плюса

    ![Модальное окно Плюса](./_assets/widgets/ultimate-widget/modal-plus.png){width=640x}

-   Модальное окно Сплита

    ![Модальное окно Сплита](./_assets/widgets/ultimate-widget/modal-split.png){width=640x}

{% endlist %}

## Работа с виджетом {#mount}

{% note warning %}

Перед перед началом работы [подключите SDK](https://pay.yandex.ru/docs/ru/custom/web-sdk/index.md#include-sdk).

{% endnote %}

<!-- markdownlint-disable-next-line MD036 -->

**Подключение в DOM**

```javascript
paymentSession.mountWidget(document.querySelector("<selector>"), {
    widgetType: YaPay.WidgetType.Ultimate,
});
```

<!-- markdownlint-disable-next-line MD036 -->

**Удаление из DOM**

```javascript
paymentSession.unmountWidget(document.querySelector("<selector>"));
```

### Размеры виджета {#size}

Виджет принимает размеры контейнера, в который он встраивается.
Но с помощью CSS стилей можно указать ширину контейнера виджета.

{% note tip %}

В зависимости от наличия сопроводительных продуктов (оплата в рассрочку и т.д.), виджет может менять свою высоту.
По высоте виджет может занимать от `76px` до `364px`, учитывайте эту особенности при его установке.

{% endnote %}

```html

```

### Виджет оплаты только через Сплит {#split-only}

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

{% note tip %}

Скрытие виджета стоит учитывать при построении дизайна и верстки приложения.

{% endnote %}

Чтобы включить режим оплаты только через Сплит, добавьте в `PaymentData` объект строку `availablePaymentMethods` со списком из одного метода оплаты `'SPLIT'`:

```javascript
const paymentData = {
    // ... прочие параметры
    availablePaymentMethods: ["SPLIT"],
};
```

### Логика отображения виджета

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

#### Пример расчета

Для клиента с лимитом Сплита 20 000 рублей стоимость покупки составила 28 600 рублей. При расчете Сплита на четыре платежа в рамках лимита сумма каждого платежа составит 5 000 рублей.

А так как превышающая лимит сумма составляет **28600 − 20000 = 8600** рублей, то, согласно логике отображения виджета, она будет добавлена к первому платежу. Таким образом, сумма, которую клиент должен будет оплатить в момент покупки в Сплит, составит **8600 + 5000 = 13600** рублей, как показано на рисунке.

![Виджет Сплита при превышении лимита](_assets/widgets/split-widget--over-limit.png){width=400}

<!-- source: ru/_includes/split-limit.md -->
{% note info %}

Размер лимита Сплита может варьироваться в зависимости от результатов скоринга — оценки надежности клиента на основе его активности в сервисах Яндекса и других условий.

{% endnote %}
<!-- endsource: ru/_includes/split-limit.md -->

### Как мигрировать на новый виджет

<!-- TODO: w-sdk-ultimate-widget-2 -->

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

{% cut "Миграция с BnplPreview" %}

Замените `widgetType` с `YaPay.WidgetType.BnplPreview` на `YaPay.WidgetType.Ultimate`.
Стартовая позиция должна выглядеть следующим образом:

```javascript
paymentSession.mountWidget(document.querySelector("<selector>"), {
    widgetType: YaPay.WidgetType.Ultimate,
});
```

Больше информации о кастомизации можно увидеть в [интерактивном демо](#example)

![Миграция с виджета BnplPreview](./_assets/widgets/ultimate-widget/bnpl-preview.png){width=640x}

{% endcut %}

{% cut "Миграция с Simple" %}

Замените `widgetType` с `YaPay.WidgetType.Simple` на `YaPay.WidgetType.Ultimate`.
Стартовая позиция должна выглядеть следующим образом:

```javascript
paymentSession.mountWidget(document.querySelector("<selector>"), {
    widgetType: YaPay.WidgetType.Ultimate,
});
```

Больше информации о кастомизации можно увидеть в [интерактивном демо](#example).

![Миграция с виджета Simple](./_assets/widgets/ultimate-widget/simple.png){width=640x}

{% endcut %}

{% cut "Миграция с Info" %}

Замените `widgetType` с `YaPay.WidgetType.Info` на `YaPay.WidgetType.Ultimate`.
Стартовая позиция должна выглядеть следующим образом:

```javascript
paymentSession.mountWidget(document.querySelector("<selector>"), {
    widgetType: YaPay.WidgetType.Ultimate,
});
```

Больше информации о кастомизации можно увидеть в [интерактивном демо](#example).

![Миграция с виджета Info](./_assets/widgets/ultimate-widget/info.png){width=640x}

{% endcut %}
