Права на выполнение операций

При вызове операций протокола необходимо передавать токен авторизации, который обладает соответствующими правами. Список прав запрашивается как значение параметра scope вызова authorize OAuth2-авторизации приложения пользователем, права перечисляются через пробел.

Список возможных прав:

Название права Описание
account-info Получение информации о состоянии счета, см. метод account-info.
operation-history Просмотр истории операций, см. метод operation-history.
operation-details Просмотр деталей операции, см. метод operation-details.
incoming-transfers Прием/отмена входящих переводов с кодом протекции и до востребования.
payment Возможность осуществлять платежи в конкретный магазин или переводить деньги на конкретный счет пользователя, см. методы request-payment и process-payment.
payment-shop Возможность осуществлять платежи во все доступные для API магазины, см. методы request-payment и process-payment.
payment-p2p Возможность переводить деньги на любые счета, номера телефонов, email-адреса других пользователей, см. методы request-payment и process-payment
money-source

Доступные методы проведения платежа, см. методы request-payment и process-payment. Подробнее см. Право money-source.

Ограничение.
В рамках scope нельзя одновременно использовать:
  • право payment-p2p и права payment.to-account
  • право payment-shop и права payment.to-pattern
Совет.

Некоторые права требуют указания строковых значений, которые могут содержать символы, нарушающие синтаксис scope. Для таких символов следует применять backslash escaping согласно формату JSON. Например: \" \\

Ограничения, применяемые к правам

К выдаваемым правам могут применяться ограничения. Ограничения задаются следующим образом:
имя_права.destination.limit

Ограничения, накладываемые на права:

Условие destination (получатель платежа)

Применяется к правам: payment.

В качестве значения допустимо указывать только одно из следующих условий:

  • to-pattern(patternId) — ограничивает возможность провести платеж только по заданному patternId;
  • to-account(to) — ограничивает возможность перевода средств только на кошелке определенного пользователя. В качестве идентификатора получателя допустимо указывать номер кошелька, номер привязанного к кошельку получателя мобильного телефона или email-адрес пользователя.

Параметры ограничения:

Параметр Описание
to Идентификатор счета получателя перевода, номер счета, привязанный к кошельку телефон или email. Обязательный параметр.
Совет.

Номер мобильного телефона как идентификатор получателя перевода.

В качестве идентификатора получателя платежа можно вместо номера кошелька использовать номер привязанного к кошельку мобильного телефона (если он есть у получателя). Указанный номер телефона должен соответствовать формату ITU-T E.164 Numbering plan of the international telephone service

Для России: полный номер, начинающийся с 7 без знака '+'.

Например: 79219990099

Совет.

Формат email.

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

Для таких символов следует применять backslash escaping согласно формату JSON. Например: \" \\

Пример для определения получателя перевода по номеру кошелька:

.to-account("41001XXXXXXXX")

Пример для определения получателя перевода по номеру привязанного мобильного телефона:

.to-account("79219990099")

Пример определения получателя перевода по email:

.to-account("username@yandex.ru")
Условие limit (лимит платежа)
limit(duration,sum)

Применяется к правам: payment, payment-shop, payment-p2p.

Ограничение указывается последним.

Формат:

  • limit(duration,sum) — ограничение общей суммы платежей за период времени;
  • limit(,sum) — делегирование права выполнить одноразовый платеж на фиксированную сумму.

Параметры:

Параметр Значение
duration Период времени, в сутках. Если параметр отсутствует, то платеж по данному разрешению может быть проведен только один раз.
sum Общая сумма платежей за период duration в валюте счета пользователя.
Совет. Условие limit можно использовать для делегирования одноразовых платежей. Срок жизни разрешения равен сроку жизни токена. Пользователь не может изменить сумму платежа.
Ограничение. В рамках одного scope разрешается указывать либо только платежи за период, либо только одноразовые платежи.
Ограничение. Если в scope указано требование одноразового платежа, то, совместно с правом payment, допускается указывать только права money-source и account-info, остальные права запрещены.
Ограничение. Вне зависимости от значений запрошенных лимитов, к платежам могут применяться ограничения, установленные сервисом Яндекс.Денег для различных видов транзакций.

Пример: ограничение платежа 100 рублей 50 коп. в сутки, пользователь может изменять сумму.

.limit(1,100.50)

Пример: одноразовый платеж на 1000 рублей, пользователь не может изменить сумму.

.limit(,1000)

Значение по умолчанию: limit(1,3000) — 3000 рублей в сутки, пользователь может изменять сумму.

Право money-source

Указание сервису Яндекс.Денег, какие методы платежа поддерживаются приложением.

Формат:

money-source(список_методов_платежа)

Запрашиваемый метод проведения платежа:

  • wallet — платежи из кошелька в Яндекс.Деньгах;
  • card -—с привязанной к кошельку банковской карты пользователя.

По умолчанию: wallet.

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

Пример для платежа с привязанной банковской карты и из кошелька:

money-source("wallet","card")

Пример для платежа только с привязанной банковской карты:

money-source("card")

Пример для платежа только из кошелька:

money-source("wallet")

Примеры значений параметра scope

Разрешен просмотр истории платежей:
account-info operation-history operation-details
Разрешен просмотр остатка в кошельке и платежи в магазин 123 на сумму не более 1000 рублей в неделю:
account-info payment.to-pattern("123").limit(7,1000)
Разрешены переводы на кошелек XXXX, но не более 500 рублей в две недели:
payment.to-account("XXXX").limit(14,500)
Разрешен одноразовый перевод на кошелек, к которому привязан телефон ZZZ, на сумму 500 рублей:
payment.to-account("ZZZ","phone").limit(,500)
Разрешены платежи с привязанной банковской карты в магазин 123 на сумму 1000 рублей в неделю:
payment.to-pattern("123").limit(7,1000) money-source("wallet","card")