Права на выполнение операций
При вызове операций протокола необходимо передавать токен авторизации, который обладает соответствующими правами. Список прав запрашивается как значение параметра 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. Для таких символов следует применять 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")