---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://pay.yandex.ru/docs/ru/custom/rbs.md
  - href: ru/custom/rbs.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://pay.yandex.ru/docs/ru/llms.txt

# Интеграция Яндекс Пэй и Сплит через RBS

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

Вы используете единый [API Платежного сервиса Роутер](https://router.rbsuat.com/sandbox/cabinet/router_api_v1.html) для регистрации заказов, перенаправления пользователей на страницу оплаты и получения статусов платежей, а сервис самостоятельно маршрутизирует транзакцию в банк.

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

## Как подключить {#connection}

1. [Зарегистрируйтесь](https://pay.yandex.ru/docs/ru/console/registration.md) в личном кабинете Яндекс Пэй и [подайте заявку](https://pay.yandex.ru/docs/ru/console/registration.md#application) на подключение сервиса Яндекс Пэй и Сплит в ваш магазин.

1. Перейдите на сайт [business.rbspayment.ru](https://business.rbspayment.ru/) и нажмите **Подключить**, чтобы зарегистрироваться в Платежном сервисе Роутер. В результате регистрации вы получите:

   - адрес API Платежного сервиса;
   - логин и пароль для отправки API-запросов.

1. После регистрации в Платежном сервисе в настройках укажите Яндекс Банк — оплата с помощью Яндекс Пэй и Сплит всегда производится через него. Текущие настройки можно узнать, отправив запрос [/settings/getRouterParams.do](https://router.rbsuat.com/sandbox/cabinet/router_api_v1.html#operation/settings/getRouterParams.do).

## Схема интеграции {#integration-scheme}

![](./_assets/rbs-scheme.png)

### Шаг 1. Регистрация заказа {#order-registration}

1. Покупатель инициирует покупку товара или услуги на сайте.
1. Партнер отправляет в Платежный сервис Роутер один из следующих запросов на регистрацию заказа:

   - [/register.do](https://router.rbsuat.com/sandbox/cabinet/router_api_v1.html#operation/post-register.do) — для одностадийной оплаты;
   - [/registerPreAuth.do](https://router.rbsuat.com/sandbox/cabinet/router_api_v1.html#operation/post-registerPreAuth.do) — для двухстадийной оплаты.
   
   Подробнее о видах оплаты см. в документации RBS в разделе [Двухстадийные платежи](https://router.rbsuat.com/sandbox/ru/integration/router/refunds-status.html#two-phase-payments).

   {% note warning %}

   На стороне Яндекс Банка один API-ключ дает возможность использовать или одностадийные, или двухстадийные платежи. Чтобы использовать в Платежном сервисе Роутер оба типа оплаты, получите в личном кабинете Яндекс Пэй два [API-ключа](https://pay.yandex.ru/docs/ru/console/settings-pay-split.md#merchant-api-keys) для каждого типа оплаты и передайте их в службу поддержки Платежного сервиса.

   {% endnote %}

    #### Особенности запроса регистрации заказа {#registration-details}

    - При регистрации заказа можно указать, какие способы оплаты Яндекс Пэй и Сплит будут доступны покупателю: только карта, только Сплит или оба способа.

      Для этого передайте дополнительный параметр `yandex_paymentWay`. По умолчанию, если параметр не передан, доступна только оплата картой (`CARD`). Доступность тех или иных способов оплаты Яндекс Пэй и Сплит вы должны согласовать с Яндекс Банком.

    - При регистрации заказа на оплату обязательно нужно передать корзину товаров — объект `orderBundle`. Если корзина не передана, но есть `clientId`, то запрос будет обработан как создание связки, см. [Связки с Яндекс Пэй и Сплит](#bindings).

    {% cut "Пример запроса" %}

    ```curl
    curl -X POST 'https://api.router.rbsuat.com/v1/register.do' -H 'Content-Type: application/json' \
    --data-raw '{
        "orderNumber": "order_123508",
        "jsonParams": {
            "yandex_paymentWay": "CARD, SPLIT"
        },
        "amount": 10000,
        "currency": "643",
        "language": "ru",
        "returnUrl": "https://mybestmerchantreturnurl.com/success",
        "failUrl": "https://mybestmerchantreturnurl.com/fail",
        "userName": "test_user",
        "password": "test_user_password",
        "orderBundle": {
            "cartItems": {
            "items": [
                {
                    "itemAmount": 10000,
                    "itemCode": "123code",
                    "itemCurrency": "643",
                    "itemPrice": 10000,
                    "name": "item 1",
                    "positionId": "1",
                    "quantity": {
                        "measure": "pcs",
                        "value": "1"
                    }
                }
            ]
            }
        }
    }'
    ```

    {% endcut %}

1. Платежный сервис Роутер проверяет данные и регистрирует заказ.

### Шаг 2. Запрос на оплату Яндекс Пэй и Сплит {#payment-request}

1. Платежный сервис Роутер передает партнеру идентификатор созданного заказа `orderId`.

    Пример ответа:

    ```JSON
    {
        "errorCode": "0",
        "formUrl": "https://router.rbsuat.com/wl/payment.html?mdOrder=f9584546-2613-4a0d-896f-0194d243865f&language=ru",
        "orderId": "f9584546-2613-4a0d-896f-0194d243865f",
        "orderNumber": "order_123508"
    }
    ```

1. Партнер направляет в Платежный сервис Роутер запрос на оплату заказа с помощью Яндекс Пэй и Сплит [/yandex-box/paymentOrder.do](hhttps://router.rbsuat.com/sandbox/cabinet/router_api_v1.html#operation/post-yandex-box-paymentOrder.do).

    Пример запроса:

    ```cURL
    curl -X POST 'https://api.router.rbsuat.com/v1/yandex-box/paymentOrder.do' \
    -H 'Content-Type: application/json' \
    --data-raw '{
        "orderId": "1f3224c9-cc80-4c2a-8ef7-ca4d198f6a2e",
        "password": "test_user_password",
        "userName": "test_user" 
    }'
    ```

1. Платежный сервис Роутер запрашивает URL страницы оплаты в Яндекс Банке.
1. Яндекс Банк передает URL страницы оплаты Платежному сервису.

### Шаг 3. Перенаправление на страницу оплаты {#redirect-payment}

1. Платежный сервис передает URL страницы оплаты.

    Пример ответа:

    ```JSON
    {
        "data": {
            "gwId": "YANDEX",
            "gwOrderId": "ffc65a85-1af5-7a4d-ab65-a29206c90f80",
            "orderId": "14f8b21d-46ab-11f0-8452-696e1279ae2c",
            "redirect": "https://sandbox.pay.ya.ru/l/k774SQ"
        },
        "success": true
    }
    ```

1. Партнер перенаправляет покупателя на страницу оплаты Яндекс Пэй и Сплит — URL из параметра `redirect`.
1. Покупатель оплачивает заказ на странице Яндекс Пэй и Сплит любым из доступных способов.

   ![](./_assets/rbs-payment.png){.c-screenshot width=300px}

1. Яндекс Банк перенаправляет покупателя на на URL для возврата.

### Шаг 4. Финальный статус заказа {#final-order-status}

1. Опционально. Если настроены уведомления [обратного вызова (callback)](https://router.rbsuat.com/sandbox/ru/integration/router/router-callbacks.html#callback-notifications), Яндекс Банк сообщает магазину результат оплаты.

1. Опционально. Если callback не настроен, партнер периодически отправляет в Платежный сервис Роутер запрос для получения финального статуса заказа [/getOrderStatusExtended.do](https://router.rbsuat.com/sandbox/cabinet/router_api_v1.html#operation/post-getOrderStatusExtended.do), используя query-параметр `orderId`. До тех пор, пока результат оплаты не станет известен, статус заказа будет `PENDING`.

1. Платежный сервис Роутер запрашивает в Яндекс Банке и передает партнеру статус заказа. Когда статус изменится, партнер отображает его на финальной странице.

## Связки с Яндекс Пэй и Сплит {#bindings}

Платежный сервис Роутер поддерживает [связки](https://router.rbsuat.com/sandbox/ru/integration/router/bindings.html) с Яндекс Пэй и Сплит. Оплата по связке Яндекс Пэй и Сплит всегда направляется в Яндекс Банк.

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

### Создание связки {#create-binding}

{% note warning %}

У вас должно быть разрешение на использование связок и соответствующие настройки в Яндекс Банке.

Создание связок Яндекс Пэй и Сплит возможно только при одностадийной оплате.

{% endnote %}

#### eCom-связка {#ecom-binding}

1. Чтобы создать eCom-связку, нужно провести оплату Яндекс Пэй и Сплит, как описано выше, со следующими отличиями:

    - добавить параметр `clientId` в запросе на [регистрацию заказа](#order-registration);
    - не передавать корзину товаров `orderBundle`.

    Сумма в параметре `amount` будет игнорироваться, списание средств не произойдет.

    Пример запроса:

    ```cURL
    curl -X POST 'https://api.router.rbsuat.com/v1/register.do' -H 'Content-Type: application/json' \
    --data-raw '{
        "clientId": "12555",
        "orderNumber": "order_123508",
        "jsonParams": {
            "yandex_paymentWay": "CARD, SPLIT"
        },
        "amount": 10000,
        "currency": "643",
        "language": "ru",
        "returnUrl": "https://mybestmerchantreturnurl.com/success",
        "failUrl": "https://mybestmerchantreturnurl.com/fail",
        "userName": "test_user",
        "password": "test_user_password"
    }'
    ```

1. Затем после оплаты покупатель должен будет подтвердить создание связки — привязать свою карту к магазину.

   ![](./_assets/rbs-ecom.png){.c-screenshot width=300px}

   Чтобы узнать идентификатор созданной связки `bindingId` после завершения оплаты, вы можете настроить соответствующий callback, либо отправить запрос статуса заказа [/getOrderStatusExtended.do](https://router.rbsuat.com/sandbox/cabinet/router_api_v1.html#tag/Status-zakaza-i-cheka/operation/post-getOrderStatusExtended.do).

#### Рекуррентная связка {#recurring-binding}

1. Чтобы создать рекуррентную связку, необходимо провести оплату Яндекс Пэй и Сплит, как описано выше, но добавить в запрос регистрации заказа на [шаге 2](#payment-request) следующие параметры:

    - `clientId`
    - `recurringFrequency`
    - `recurringExpiry`

    Пример запроса:

    ```cURL
    curl -X POST 'https://api.router.rbsuat.com/v1/register.do' -H 'Content-Type: application/json' \
    --data-raw '{
        "clientId": "12555",
        "jsonParams": {
            "yandex_paymentWay": "CARD, SPLIT",
            "recurringFrequency":12,
            "recurringExpiry":"20251225"
        },
        "orderNumber": "order_123508",
        "amount": 10000,
        "currency": "643",
        "language": "ru",
        "returnUrl": "https://mybestmerchantreturnurl.com/success",
        "failUrl": "https://mybestmerchantreturnurl.com/fail",
        "userName": "test_user",
        "password": "test_user_password",
        "orderBundle": {
            "cartItems": {
            "items": [
                {
                    "itemAmount": 1234,
                    "itemCode": "123code",
                    "itemCurrency": "643",
                    "itemPrice": 1234,
                    "name": "item 1",
                    "positionId": "1",
                    "quantity": {
                        "measure": "pcs",
                        "value": "1"
                    }
                }
            ]
            }
        }
    }'
    ```

1. Затем после оплаты покупатель должен будет подтвердить создание связки — оформить подписку.

   ![](./_assets/rbs-reccuring.png){.c-screenshot width=300px}

   Чтобы узнать идентификатор созданной связки `bindingId` после завершения оплаты, вы можете настроить соответствующий callback, либо отправить запрос статуса заказа [/getOrderStatusExtended.do](https://router.rbsuat.com/sandbox/cabinet/router_api_v1.html#operation/post-getOrderStatusExtended.do).

### Оплата связкой {#binding-payment}

{% note warning %}

Использование связок Яндекс Пэй и Сплит возможно только при одностадийной оплате.

{% endnote %}

Для оплаты связкой используйте методы:

- для eCom-связки — [/paymentOrderBinding.do](https://router.rbsuat.com/sandbox/cabinet/router_api_v1.html#operation/post-paymentOrderBinding.do) или [/instantPayment.do](https://router.rbsuat.com/sandbox/cabinet/router_api_v1.html#operation/post-instantPayment.do). Пример запроса cм. в документации RBS в разделе [Оплата eCom-связкой по API](https://router.rbsuat.com/sandbox/ru/integration/router/bindings.html#router-bindings-ecom-payment-api). 

- для рекуррентной связки — [/recurrentPayment.do](https://router.rbsuat.com/sandbox/cabinet/router_api_v1.html#operation/post-recurrentPayment.do). Пример запроса cм. в документации RBS в разделе [Оплата рекуррентной связкой](https://router.rbsuat.com/sandbox/ru/integration/router/bindings.html#router-recurrent-bindings-payment).
