Skip to content

WhiteApfel/neolegoff_bank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neolegoff - Tinkoff Banking API client

Предисловие

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

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

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

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

Из PyPI:

python -m pip install neolegoff_bank

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

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

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

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

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, предполагая, что авторизация пройдена

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

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())

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

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

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

About

Tinkoff Bank API client

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages