Права на выполнение операций
При вызове операций протокола необходимо передавать токен авторизации, который обладает соответствующими правами. Список прав запрашивается как значение параметра
scope
вызова authorize OAuth2-авторизации приложения пользователем, права перечисляются через пробел.Список возможных прав
Название права | Описание |
---|---|
account-info | Получение информации о состоянии счета, см. метод account-info. |
operation-history | Просмотр истории операций, см. метод operation-history. |
operation-details | Просмотр деталей операции, см. метод operation-details. |
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 — получатель платежа;
- limit — лимит платежа.
Условие destination (получатель платежа)
Применяется к правам:
payment
.В качестве значения допустимо указывать только одно из следующих условий:
to-pattern (patternId)
— ограничивает возможность провести платеж только по заданномуpatternId
.to-account (to)
— ограничивает возможность перевода средств только на кошелке определенного пользователя. В качестве идентификатора получателя (to
) допустимо указывать номер кошелька, номер привязанного к кошельку получателя мобильного телефона или email-адрес пользователя.
Пример для определения получателя перевода по номеру кошелька
.to-account("41001XXXXXXXX")
В качестве идентификатора получателя платежа можно вместо номера кошелька использовать номер привязанного к кошельку мобильного телефона (если он есть у получателя). Указанный номер телефона должен соответствовать формату ITU-T E.164 Numbering plan of the international telephone service
Для России — полный номер, начинающийся с
7
без знака '+'. Например: 79219990099
Пример для определения получателя перевода по номеру привязанного мобильного телефона
.to-account("79219990099")
Возможные варианты формата email-адреса описаны в Википедии. Помните, что в email-адресе могут быть символы, нарушающие синтаксис
scope
, например двойная кавычка.Для таких символов следует применять backslash escaping согласно формату JSON. Например:
\" \\
Пример определения получателя перевода по email
.to-account("username@example.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
, остальные права запрещены. - Вне зависимости от значений запрошенных лимитов, к платежам могут применяться ограничения, установленные сервисом ЮMoney для различных видов транзакций.
Пример: ограничение платежа 100 рублей 50 коп. в сутки, пользователь может изменять сумму
.limit(1,100.50)
Пример: одноразовый платеж на 1000 рублей, пользователь не может изменить сумму
.limit(,1000)
Значение по умолчанию:
limit(1,3000)
— 3000 рублей в сутки, пользователь может изменять сумму.Право money-source
Указание сервису ЮMoney, какие методы платежа поддерживаются приложением.
Формат
money-source(список_методов_платежа)
Запрашиваемый метод проведения платежа:
wallet
— платежи из кошелька ЮMoney;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")