neolegoff-bank


Nameneolegoff-bank JSON
Version 0.0.1a3 PyPI version JSON
download
home_pagehttps://github.com/WhiteApfel/neolegoff_bank
SummarySimple Tinkoff Bank API client
upload_time2023-03-11 07:46:30
maintainer
docs_urlNone
authorWhiteApfel
requires_python
licenseMozilla Public License 2.0
keywords tinkoff api bank
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            class ConfirmationInfo:
pass# Neolegoff - Tinkoff Banking API client

## Предисловие

Использовать на свой страх и риск. В коде нет никаких бэкдоров для вытягивания ваших данных,
можете посмотреть сами. Но есть нюансик: если что-то пойдёт не так, то я не виноват, вы сами дураки.

## Прогресс разработки

* [ ] Регистрация
* [x] Вход в аккаунт
  * [x] Номер телефона
  * [x] Пароль
  * [x] Подтверждение по номеру карты
  * [x] Лже-биометрия для быстрого входа без пароля
* [x] Автоматическое управление токенами и генерация конфига устройства
* [x] Продукты
  * [x] Счета
    * [ ] Типы счетов
      * [x] Текущие расчётные в валютах (тестировано на Black)
      * [x] Кредитных карт
      * [x] Тинькофф Мобайл
      * [x] Кредит наличными
      * [x] Внешние карты сторонних банков
      * [ ] Про другие счета можно написать в [t.me/apfel](https://t.me/apfel)
    * [ ] Реквизиты счёта
    * [ ] Выписки по счёту
    * [x] Карты
      * [ ] Перепривязка карты к другому счёту (валютному)
      * [ ] Реквизиты карты
      * [ ] Заморозить карту
      * [ ] Заблокировать карту
      * [ ] Лимиты по карте
      * [ ] Установка пин кода
      * [ ] Блокировка снятия наличных, операций в интернете
      * [ ] Уведомления об операциях по карте
* [ ] Открытие новых продуктов
  * [ ] Карты
  * [ ] Счета
  * [ ] Кредит
* [ ] Самозанятость
  * [ ] Присоединение
  * [ ] Декларирование
  * [ ] Что-то ещё?
* [x] Платежи
  * [x] Свободная форма платежа
  * [ ] СБП
    * [ ] Перевод по номеру телефона
    * [ ] Перевод по QR коду СБП и ПлатиQR
    * [ ] Стягивание с другого банка
    * [ ] Разрешение на перевод в другой банк
  * [ ] Переводы
    * [ ] По номеру карты
    * [ ] По номеру телефона (не сбп?)
    * [ ] Между счетами
    * [ ] По реквизитам
    * [ ] По номеру договора в тинькофф
    * [ ] SWIFT
  * [x] Оплата услуг
    * [x] Пополнение баланса мобильного
      * [x] Получение оператора по номеру телефона
    * [ ] Прочая срань по API
  * [ ] QR код на снятие налика
  * [ ] Запрос денег по номеру телефона (через ссылку?)
* [ ] Чат
  * [ ] Поддержка
    * [ ] Получение сообщений
    * [ ] Отправка сообщений
    * [ ] Отправка файлов
  * [ ] Диалоги с другими клиентами тиньки
* [ ] Ищо
  * [ ] Курсы валют
  * [ ] Основной банк СБП
  * [ ] Секретные вопросы
  * [ ] Синхронизация контактов

## Как установить

### Из PyPI:

```shell
python -m pip install neolegoff_bank
```

### Из исходников:

```shell
git clone https://github.com/whiteapfel/neolegoff-bank.git
cd neolegoff-bank
python setup.py install
```

## Как использовать

### Пайплайн авторизации и получение информации о счетах и картах:

```python
import asyncio

from neolegoff_bank import AioNeolegoff


async def login(client):
    phone = "79998887766"
    password = "vs2p33ox!6x_vma_!y9xjw6gz"
    card = "5321304044087960"

    async def get_sms_code():
        return input("SMS code >>> ")

    login_pipeline = client.auth.login_pipeline(phone, password, card)
    async for _ in login_pipeline:
        # Можно использовать любой вариант получения кода:
        # ввести из консоли, дождаться создания файла или бота в телеграме.
        # Как угодно. Потребуется только в первый раз, потом будет
        # автоматически пропускаться, так как login_pipeline будет пустым
        await login_pipeline.asend(await get_sms_code())


async def main():
    # `app_name` используется для сохранения информации о токенах,
    # сессии и сгенерированном конфиге устройства.
    # Часть после двоеточия является паролем для шифрования,
    # но это не обязательно, можно абсолютно любую строку
    client = AioNeolegoff(app_name="main:whiteapfel")
    await login(client)

    products = await client.products.get_products()
    print(products)


asyncio.run(main())
```
**Далее в примерах будет опущен login, предполагая, что авторизация пройдена**

### Пополнение баланса мобильника

```python
import asyncio

from decimal import Decimal

from neolegoff_bank import AioNeolegoff
from neolegoff_bank.models.payments.pay_request import PaymentParametersMobileProvider
from neolegoff_bank.models.payments.response import ConfirmationInfo

async def main():
    client = AioNeolegoff(app_name="main:whiteapfel")
    payment = PaymentParametersMobileProvider(
        provider='mts',
        account="5160007810",
        amount=Decimal("42.72"),
        phone="9867657635",
    )
    commission = await client.payments.payment_commission(payment)
    payment_result = await client.payments.pay(payment)
    if isinstance(payment_result, ConfirmationInfo):
        payment_result = await client.payments.confirm(input("SMS code >>> "), payment_result)
    print(payment_result)

asyncio.run(main())
```

### Пайплайн перевода по СБП физику

```python

```

### Пайплайн оплаты по СБП юрику/ип через куар или ссылку

```python

```

### Пайплайн перевода по номеру карты

```python

```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/WhiteApfel/neolegoff_bank",
    "name": "neolegoff-bank",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "tinkoff api bank",
    "author": "WhiteApfel",
    "author_email": "white@pfel.ru",
    "download_url": "https://files.pythonhosted.org/packages/55/d3/bf9e4eaea94bedd3514b13b7e9935a687b49915bfeca2f417fc69c126e00/neolegoff_bank-0.0.1a3.tar.gz",
    "platform": null,
    "description": "class ConfirmationInfo:\npass# Neolegoff - Tinkoff Banking API client\n\n## \u041f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435\n\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0441\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u0445 \u0438 \u0440\u0438\u0441\u043a. \u0412 \u043a\u043e\u0434\u0435 \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0431\u044d\u043a\u0434\u043e\u0440\u043e\u0432 \u0434\u043b\u044f \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445,\n\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u0430\u043c\u0438. \u041d\u043e \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441\u0438\u043a: \u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0439\u0434\u0451\u0442 \u043d\u0435 \u0442\u0430\u043a, \u0442\u043e \u044f \u043d\u0435 \u0432\u0438\u043d\u043e\u0432\u0430\u0442, \u0432\u044b \u0441\u0430\u043c\u0438 \u0434\u0443\u0440\u0430\u043a\u0438.\n\n## \u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\n\n* [ ] \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f\n* [x] \u0412\u0445\u043e\u0434 \u0432 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\n  * [x] \u041d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\n  * [x] \u041f\u0430\u0440\u043e\u043b\u044c\n  * [x] \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u043a\u0430\u0440\u0442\u044b\n  * [x] \u041b\u0436\u0435-\u0431\u0438\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u0445\u043e\u0434\u0430 \u0431\u0435\u0437 \u043f\u0430\u0440\u043e\u043b\u044f\n* [x] \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438 \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\n* [x] \u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b\n  * [x] \u0421\u0447\u0435\u0442\u0430\n    * [ ] \u0422\u0438\u043f\u044b \u0441\u0447\u0435\u0442\u043e\u0432\n      * [x] \u0422\u0435\u043a\u0443\u0449\u0438\u0435 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u044b\u0435 \u0432 \u0432\u0430\u043b\u044e\u0442\u0430\u0445 (\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043d\u0430 Black)\n      * [x] \u041a\u0440\u0435\u0434\u0438\u0442\u043d\u044b\u0445 \u043a\u0430\u0440\u0442\n      * [x] \u0422\u0438\u043d\u044c\u043a\u043e\u0444\u0444 \u041c\u043e\u0431\u0430\u0439\u043b\n      * [x] \u041a\u0440\u0435\u0434\u0438\u0442 \u043d\u0430\u043b\u0438\u0447\u043d\u044b\u043c\u0438\n      * [x] \u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u044b \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0430\u043d\u043a\u043e\u0432\n      * [ ] \u041f\u0440\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0447\u0435\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 [t.me/apfel](https://t.me/apfel)\n    * [ ] \u0420\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u044b \u0441\u0447\u0451\u0442\u0430\n    * [ ] \u0412\u044b\u043f\u0438\u0441\u043a\u0438 \u043f\u043e \u0441\u0447\u0451\u0442\u0443\n    * [x] \u041a\u0430\u0440\u0442\u044b\n      * [ ] \u041f\u0435\u0440\u0435\u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043a\u0430\u0440\u0442\u044b \u043a \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0441\u0447\u0451\u0442\u0443 (\u0432\u0430\u043b\u044e\u0442\u043d\u043e\u043c\u0443)\n      * [ ] \u0420\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u044b \u043a\u0430\u0440\u0442\u044b\n      * [ ] \u0417\u0430\u043c\u043e\u0440\u043e\u0437\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0443\n      * [ ] \u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0443\n      * [ ] \u041b\u0438\u043c\u0438\u0442\u044b \u043f\u043e \u043a\u0430\u0440\u0442\u0435\n      * [ ] \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0438\u043d \u043a\u043e\u0434\u0430\n      * [ ] \u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u043d\u044f\u0442\u0438\u044f \u043d\u0430\u043b\u0438\u0447\u043d\u044b\u0445, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435\n      * [ ] \u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u043f\u043e \u043a\u0430\u0440\u0442\u0435\n* [ ] \u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\n  * [ ] \u041a\u0430\u0440\u0442\u044b\n  * [ ] \u0421\u0447\u0435\u0442\u0430\n  * [ ] \u041a\u0440\u0435\u0434\u0438\u0442\n* [ ] \u0421\u0430\u043c\u043e\u0437\u0430\u043d\u044f\u0442\u043e\u0441\u0442\u044c\n  * [ ] \u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\n  * [ ] \u0414\u0435\u043a\u043b\u0430\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\n  * [ ] \u0427\u0442\u043e-\u0442\u043e \u0435\u0449\u0451?\n* [x] \u041f\u043b\u0430\u0442\u0435\u0436\u0438\n  * [x] \u0421\u0432\u043e\u0431\u043e\u0434\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430\n  * [ ] \u0421\u0411\u041f\n    * [ ] \u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\n    * [ ] \u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u043e QR \u043a\u043e\u0434\u0443 \u0421\u0411\u041f \u0438 \u041f\u043b\u0430\u0442\u0438QR\n    * [ ] \u0421\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u0435 \u0441 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0431\u0430\u043d\u043a\u0430\n    * [ ] \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0431\u0430\u043d\u043a\n  * [ ] \u041f\u0435\u0440\u0435\u0432\u043e\u0434\u044b\n    * [ ] \u041f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u043a\u0430\u0440\u0442\u044b\n    * [ ] \u041f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 (\u043d\u0435 \u0441\u0431\u043f?)\n    * [ ] \u041c\u0435\u0436\u0434\u0443 \u0441\u0447\u0435\u0442\u0430\u043c\u0438\n    * [ ] \u041f\u043e \u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430\u043c\n    * [ ] \u041f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0430 \u0432 \u0442\u0438\u043d\u044c\u043a\u043e\u0444\u0444\n    * [ ] SWIFT\n  * [x] \u041e\u043f\u043b\u0430\u0442\u0430 \u0443\u0441\u043b\u0443\u0433\n    * [x] \u041f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e\n      * [x] \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\n    * [ ] \u041f\u0440\u043e\u0447\u0430\u044f \u0441\u0440\u0430\u043d\u044c \u043f\u043e API\n  * [ ] QR \u043a\u043e\u0434 \u043d\u0430 \u0441\u043d\u044f\u0442\u0438\u0435 \u043d\u0430\u043b\u0438\u043a\u0430\n  * [ ] \u0417\u0430\u043f\u0440\u043e\u0441 \u0434\u0435\u043d\u0435\u0433 \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 (\u0447\u0435\u0440\u0435\u0437 \u0441\u0441\u044b\u043b\u043a\u0443?)\n* [ ] \u0427\u0430\u0442\n  * [ ] \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\n    * [ ] \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439\n    * [ ] \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439\n    * [ ] \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\n  * [ ] \u0414\u0438\u0430\u043b\u043e\u0433\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u0442\u0438\u043d\u044c\u043a\u0438\n* [ ] \u0418\u0449\u043e\n  * [ ] \u041a\u0443\u0440\u0441\u044b \u0432\u0430\u043b\u044e\u0442\n  * [ ] \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0431\u0430\u043d\u043a \u0421\u0411\u041f\n  * [ ] \u0421\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b\n  * [ ] \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432\n\n## \u041a\u0430\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\n\n### \u0418\u0437 PyPI:\n\n```shell\npython -m pip install neolegoff_bank\n```\n\n### \u0418\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432:\n\n```shell\ngit clone https://github.com/whiteapfel/neolegoff-bank.git\ncd neolegoff-bank\npython setup.py install\n```\n\n## \u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\n\n### \u041f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0441\u0447\u0435\u0442\u0430\u0445 \u0438 \u043a\u0430\u0440\u0442\u0430\u0445:\n\n```python\nimport asyncio\n\nfrom neolegoff_bank import AioNeolegoff\n\n\nasync def login(client):\n    phone = \"79998887766\"\n    password = \"vs2p33ox!6x_vma_!y9xjw6gz\"\n    card = \"5321304044087960\"\n\n    async def get_sms_code():\n        return input(\"SMS code >>> \")\n\n    login_pipeline = client.auth.login_pipeline(phone, password, card)\n    async for _ in login_pipeline:\n        # \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430:\n        # \u0432\u0432\u0435\u0441\u0442\u0438 \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u0434\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u0438\u043b\u0438 \u0431\u043e\u0442\u0430 \u0432 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c\u0435.\n        # \u041a\u0430\u043a \u0443\u0433\u043e\u0434\u043d\u043e. \u041f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437, \u043f\u043e\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442\n        # \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a login_pipeline \u0431\u0443\u0434\u0435\u0442 \u043f\u0443\u0441\u0442\u044b\u043c\n        await login_pipeline.asend(await get_sms_code())\n\n\nasync def main():\n    # `app_name` \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u043e\u043a\u0435\u043d\u0430\u0445,\n    # \u0441\u0435\u0441\u0441\u0438\u0438 \u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\n    # \u0427\u0430\u0441\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f,\n    # \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043b\u044e\u0431\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443\n    client = AioNeolegoff(app_name=\"main:whiteapfel\")\n    await login(client)\n\n    products = await client.products.get_products()\n    print(products)\n\n\nasyncio.run(main())\n```\n**\u0414\u0430\u043b\u0435\u0435 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0443\u0449\u0435\u043d login, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044f, \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u0430**\n\n### \u041f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u0438\u043a\u0430\n\n```python\nimport asyncio\n\nfrom decimal import Decimal\n\nfrom neolegoff_bank import AioNeolegoff\nfrom neolegoff_bank.models.payments.pay_request import PaymentParametersMobileProvider\nfrom neolegoff_bank.models.payments.response import ConfirmationInfo\n\nasync def main():\n    client = AioNeolegoff(app_name=\"main:whiteapfel\")\n    payment = PaymentParametersMobileProvider(\n        provider='mts',\n        account=\"5160007810\",\n        amount=Decimal(\"42.72\"),\n        phone=\"9867657635\",\n    )\n    commission = await client.payments.payment_commission(payment)\n    payment_result = await client.payments.pay(payment)\n    if isinstance(payment_result, ConfirmationInfo):\n        payment_result = await client.payments.confirm(input(\"SMS code >>> \"), payment_result)\n    print(payment_result)\n\nasyncio.run(main())\n```\n\n### \u041f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u043f\u043e \u0421\u0411\u041f \u0444\u0438\u0437\u0438\u043a\u0443\n\n```python\n\n```\n\n### \u041f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u043e\u043f\u043b\u0430\u0442\u044b \u043f\u043e \u0421\u0411\u041f \u044e\u0440\u0438\u043a\u0443/\u0438\u043f \u0447\u0435\u0440\u0435\u0437 \u043a\u0443\u0430\u0440 \u0438\u043b\u0438 \u0441\u0441\u044b\u043b\u043a\u0443\n\n```python\n\n```\n\n### \u041f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u043a\u0430\u0440\u0442\u044b\n\n```python\n\n```\n",
    "bugtrack_url": null,
    "license": "Mozilla Public License 2.0",
    "summary": "Simple Tinkoff Bank API client",
    "version": "0.0.1a3",
    "split_keywords": [
        "tinkoff",
        "api",
        "bank"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0848d15087ffdd7eafd37fe007cd9c16fca26902e54983185843ab4ea5a2aeba",
                "md5": "eb424f1377112e074d8358f721bbff8f",
                "sha256": "0b3e6a322d6994c1c77848f92204d9713e00916ec98248ce76a8e544724ae9bb"
            },
            "downloads": -1,
            "filename": "neolegoff_bank-0.0.1a3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "eb424f1377112e074d8358f721bbff8f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 13528,
            "upload_time": "2023-03-11T07:46:29",
            "upload_time_iso_8601": "2023-03-11T07:46:29.292638Z",
            "url": "https://files.pythonhosted.org/packages/08/48/d15087ffdd7eafd37fe007cd9c16fca26902e54983185843ab4ea5a2aeba/neolegoff_bank-0.0.1a3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "55d3bf9e4eaea94bedd3514b13b7e9935a687b49915bfeca2f417fc69c126e00",
                "md5": "ba3976c88d7c5d2bff9abc1d9647a0ac",
                "sha256": "003488b919c7516b05d0b9c59e3300526d841e67a25dba357d7da11e6b3698ef"
            },
            "downloads": -1,
            "filename": "neolegoff_bank-0.0.1a3.tar.gz",
            "has_sig": false,
            "md5_digest": "ba3976c88d7c5d2bff9abc1d9647a0ac",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 15166,
            "upload_time": "2023-03-11T07:46:30",
            "upload_time_iso_8601": "2023-03-11T07:46:30.950813Z",
            "url": "https://files.pythonhosted.org/packages/55/d3/bf9e4eaea94bedd3514b13b7e9935a687b49915bfeca2f417fc69c126e00/neolegoff_bank-0.0.1a3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-03-11 07:46:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "WhiteApfel",
    "github_project": "neolegoff_bank",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "neolegoff-bank"
}
        
Elapsed time: 0.12026s