---
metadata:
  - name: generator
    content: Diplodoc Platform v5.66.1
alternate:
  - https://yandex.com/dev/direct/doc/dg-v4/en/concepts/finance-token.md
  - https://yandex.com/dev/direct/doc/dg-v4/ru/concepts/finance-token.md
  - href: https://yandex.com/dev/direct/doc/dg-v4/ru/concepts/finance-token.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.com/dev/direct/doc/dg-v4/ru/llms.txt?revision=r22047995
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/direct/doc/dg-v4/ru/llms.txt?revision=r22047995

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

Управлять доступом к финансовым методам и получить мастер-токен можно в веб-интерфейсе Яндекс Директа.
Чтобы использовать [финансовые методы](https://yandex.com/dev/direct/doc/dg-v4/ru/concepts/finance.md), сначала включите доступ к ним и получите мастер-токен в веб-интерфейсе. На основе мастер-токена формируются финансовые токены. Финансовый токен необходимо указывать при каждом вызове финансового метода.


## Получение мастер-токена {#master}

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

1. Перейдите на вкладку  на странице **Управление доступом к API Директа**.
    
    ![](../_assets/t03.png)
    
1. Выберите опцию **Разрешить финансовые операции** и нажмите кнопку **Сохранить изменения**.
1. Нажмите кнопку **Выписать новый мастер-токен**.
    
    {% note alert %}
    
    При получении мастер-токена предыдущий мастер-токен становится недействительным и больше не может использоваться.
    
    {% endnote %}
    
    Появится окно получения доступа к API по SMS (это необходимо для подтверждения любых действий в Яндексе, связанных с финансами). Если номер телефона не сохранен в Яндекс Паспорте, добавьте его.
    
    ![](../_assets/t04.png)
    
1. Нажмите кнопку **Отправить SMS**.
1. Введите код из SMS и нажмите **Проверить**.
    
    Новый мастер-токен отобразится, как показано на скриншоте.
    
    {% note alert %}
    
    Мастер-токен отображается в веб-интерфейсе один раз. Если вы не сохраните его, получить его позже будет невозможно — потребуется получить новый мастер-токен.
    
    {% endnote %}
    
    ![](../_assets/t05.png)
    
1. Нажмите ссылку **Вернуться к настройкам**.
    
    Отобразится дата выдачи мастер-токена.
    
    ![](../_assets/t06.png)
    
1. Чтобы сделать текущий мастер-токен недействительным без формирования нового токена, нажмите кнопку **Сбросить мастер-токен**.
    
    Сброс эквивалентен запрету финансовых операций, поскольку без активного мастер-токена финансовые токены сформировать нельзя.
    
1. Чтобы Директ удалил номер последней финансовой операции, нажмите **Сбросить значение счетчика**. {#reset-counter}
    
    Сброс полезен, если приложение потеряло отслеживание нумерации финансовых операций. После сброса нумерацию можно начать заново.
    

## Финансовый токен {#finance-operation}

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

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

См. примеры для [JSON](https://yandex.com/dev/direct/doc/dg-v4/ru/concepts/JSON.md#fin-method) и [SOAP](https://yandex.com/dev/direct/doc/dg-v4/ru/concepts/SOAP.md#fin-method).

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

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

- Мастер-токен.
- Номер операции (параметр `operation_num`).
- Название вызываемого финансового метода.
- Название операции (для метода [AccountManagement (Live)](https://yandex.com/dev/direct/doc/dg-v4/ru/live/AccountManagement.md)).
- Стандартизованный логин, от имени которого выполняется запрос к API.
    
    {% note alert %}
    
    Если логин содержит точки или символы в верхнем регистре (заглавные буквы), его следует стандартизовать: заменить точки дефисами, а заглавные буквы — строчными.
    
    {% endnote %}
    

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

## Python {#Python}

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


{% note alert %}

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

{% endnote %}

## PHP {#PHP}

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


{% note alert %}

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

{% endnote %}

