Доступ к финансовым методам

Управлять доступом к финансовым методам и получить мастер-токен можно в веб-интерфейсе Яндекс Директа.
Чтобы использовать финансовые методы, сначала включите доступ к ним и получите мастер-токен в веб-интерфейсе. На основе мастер-токена формируются финансовые токены. Финансовый токен необходимо указывать при каждом вызове финансового метода.

Получение мастер-токена

Мастер-токен используется для формирования финансовых токенов, необходимых для вызова финансовых методов. Чтобы получить мастер-токен, войдите в Яндекс Директ под тем логином, который в дальнейшем будет использоваться для вызовов финансовых методов.

  1. Перейдите на вкладку на странице Управление доступом к API Директа.

  2. Выберите опцию Разрешить финансовые операции и нажмите кнопку Сохранить изменения.

  3. Нажмите кнопку Выписать новый мастер-токен.

    Внимание

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

    Появится окно получения доступа к API по SMS (это необходимо для подтверждения любых действий в Яндексе, связанных с финансами). Если номер телефона не сохранен в Яндекс Паспорте, добавьте его.

  4. Нажмите кнопку Отправить SMS.

  5. Введите код из SMS и нажмите Проверить.

    Новый мастер-токен отобразится, как показано на скриншоте.

    Внимание

    Мастер-токен отображается в веб-интерфейсе один раз. Если вы не сохраните его, получить его позже будет невозможно — потребуется получить новый мастер-токен.

  6. Нажмите ссылку Вернуться к настройкам.

    Отобразится дата выдачи мастер-токена.

  7. Чтобы сделать текущий мастер-токен недействительным без формирования нового токена, нажмите кнопку Сбросить мастер-токен.

    Сброс эквивалентен запрету финансовых операций, поскольку без активного мастер-токена финансовые токены сформировать нельзя.

  8. Чтобы Директ удалил номер последней финансовой операции, нажмите Сбросить значение счетчика.

    Сброс полезен, если приложение потеряло отслеживание нумерации финансовых операций. После сброса нумерацию можно начать заново.

Финансовый токен

При вызове финансового метода необходимо указать следующие дополнительные параметры:

  • operation_num — порядковый номер операции.
  • finance_token — финансовый токен.

См. примеры для JSON и SOAP.

Параметр operation_num — целое число в диапазоне от 1 до 9223372036854775807. Для каждого вызова финансового метода номер операции должен быть больше, чем в предыдущем вызове любого финансового метода. Можно использовать любое начальное число и любой шаг увеличения.

Параметр finance_token необходимо сформировать с использованием хеширования SHA-256. Шифруемая строка представляет собой конкатенацию следующих подстрок:

  • Мастер-токен.

  • Номер операции (параметр operation_num).

  • Название вызываемого финансового метода.

  • Название операции (для метода AccountManagement (Live)).

  • Стандартизованный логин, от имени которого выполняется запрос к API.

    Внимание

    Если логин содержит точки или символы в верхнем регистре (заглавные буквы), его следует стандартизовать: заменить точки дефисами, а заглавные буквы — строчными.

Пример формирования финансового токена:

Python

import hashlib
masterToken  = 'AEgchkX2M3FBL8lU'
operationNum = 119
usedMethod   = 'CreateInvoice'
login        = 'agrom'
financeToken = hashlib.sha256(masterToken + str(operationNum) + usedMethod + login).hexdigest()

Внимание

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

PHP

$master_token = 'AEgchkX2M3FBL8lU';
$operation_num = 119;
$used_method = 'CreateInvoice';
$login = 'agrom';
$finance_token = hash("sha256", $master_token . $operation_num . $used_method . $login);

Внимание

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