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

Управление доступом к финансовым методам и получение мастер-токена в веб-интерфейсе Яндекс Директа.

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

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

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

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

  2. Установите флажок Разрешить финансовые операции и нажмите кнопку Сохранить изменения.
  3. Нажмите кнопку Выписать новый мастер-токен.

    Внимание.

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

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

  4. Нажмите кнопку Отправить SMS.
  5. Введите код из SMS и нажмите кнопку Проверить.

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

    Внимание.

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

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

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

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

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

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

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

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

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

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

См. примеры JSON и SOAP.

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

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

  • мастер-токен;
  • номер операции (параметр 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);
Внимание. После десяти последовательных вызовов финансовых методов с неверным номером операции или токеном доступ к финансовым операциям блокируется. Вновь разрешить доступ можно в веб-интерфейсе Яндекс Директа, сбросив счетчик финансовых операций.