---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.2
alternate:
  - https://yandex.com/dev/direct/doc/dg-v4/en/examples/python-json.md
  - https://yandex.com/dev/direct/doc/dg-v4/ru/examples/python-json.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/direct/doc/dg-v4/ru/llms.txt

# JSON

Примеры взаимодействия с API в формате JSON на Python.

## Получение сведений о клиенте {#oauth}

Пример демонстрирует вызов метода [GetClientInfo](https://yandex.com/dev/direct/doc/dg-v4/ru/reference/GetClientInfo.md).

```
import json, urllib2

#адрес для отправки json-запросов
url = 'https://api.direct.yandex.ru/v4/json/'

#данные для OAuth-авторизации
token = 'e4d3b4d2a7444fa384a18cda5cd1c8d9'

#логин в Директе
login = 'agrom'

#структура входных данных (словарь)
data = {
   'method': 'GetClientInfo',
   'token': token,
   'locale': 'ru',
   'param': [login]
}

#конвертировать словарь в JSON-формат и перекодировать в UTF-8
jdata = json.dumps(data, ensure_ascii=False).encode('utf8')

#выполнить запрос
response = urllib2.urlopen(url,jdata)

#вывести результат
print response.read().decode('utf8')
```

## Вызов финансовых методов {#fin-methods}

При вызове финансовых методов необходимо дополнительно указывать финансовый токен и номер финансовой операции.

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

```python
import hashlib

masterToken  = 'AEgchkX2M3FBL8lU'
operationNum = 119
usedMethod   = 'CreateInvoice'
login        = 'agrom'

financeToken = hashlib.sha256(masterToken + str(operationNum) + usedMethod + login).hexdigest()
print financeToken
```

Создается финансовый токен для однократного вызова метода `CreateInvoice` от имени пользователя `agrom`. Ниже показан пример токена.

```
7215f95e84a766971d8ec4eb5a39ae96505b3a5529a91e5a03e5943565a6e6c7
```

Финансовый токен и номер финансовой операции включают в структуру входных данных, как показано ниже.

```python
#структура входных данных (словарь)
data = {
   'method': 'GetCreditLimits',
   'token': token,
   'finance_token': financeToken,
   'operation_num': operationNum,
   'param': ['agrom'],
   'locale': 'ru'
}
```

