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"
}