tool for work with FNS API
Project description
NPDTools
Ищешь инструмент для удобного декларирования доходов? Хочешь автоматизировать выдачу чеков клиентам? Надоело заходить в Мой налог? Надоедает проверять, что каждый приход зарегистрирован в налоговой? Боишься ошибиться и получить безжалостный удар от ФНС кнутом без пряника?
ВЫХОД ЕСТЬ! Для этого потребуется простая питоняшая...
Нет, не сода. Либа. README которой ты сейчас читаешь. Да, она позволяет работать с API Федеральной налоговой службы (ФНС) в рамках возможностей приложения "Мой налог". Больше она не умеет. Столько же не умеет. Меньше умеет. Надеюсь, теперь все люди, что искали подобный инструмент в гугле, смогли его найти. Можно приступить к содержательной части.
Если ты не знаешь свой ⚠️ password ⚠️
Если входишь в lknpd.nalog.ru или "Мой налог" через Госуслуги (ЕСИА) или просто не помнишь пароль, надо зайти на lkfl2.nalog.ru и там по ситуации:
- Войти так же через Госуслуги и сменить (установить) пароль в настройках профиля
- Войти по электронной подписи и сменить пароль в настройках профиля
- Нажать кнопочку "Восстановить пароль" и пройти процедуру восстановления
- Не разобраться в ситуации и смириться со сложностью бытия
Что может библиотека?
Собственно, всё сводится к выставлению и закрытию чеков. Можно ещё получать их историю, но это плохо реализовано у меня, потому что я криволапка, но только пока. Что? Примеров хочешь? Держи примеров. Обмажься.
Выставляем чек, как профи
from npdtools import NPDTools
client = NPDTools("123456789012", "~_ub&TS5RY~k9,czo(q*")
# Для начала составим корзину.
# 1. Метод здорового человека
cheque = Services()
cheque.add("Коробка для изюма из дерева с декоративными элементами", 250, 1)
# 2. Метод немного здорового человека
cheque = Services(Service("Коробка", 250.5, 10), Service("Бант", 67.89, 5))
# 3. Метод немного нездорового человека
cheque = Services(("Скворечник", 3600, 1), ("Палка для скворечника", 1000, 1))
# 4. Метод нездорового человека.Можно добавить только одну позицию.
bill = client.add_income(Service(("Носочки", 20007.08, 1)))
# 5. Метод больного человека. Можно добавить только одну позицию.
bill = client.add_income(("Что-то неведомое", 100, 2))
# Как выставлять физлицам?
bill = client.add_income(cheque)
# ИП или ООО или прочая российская организация?
from npdtools.types import Client
bill = client.add_income(cheque, Client(display_name="ИП Иванов Иван Иваныч", inn=1123456789012))
# А иностранная?
from npdtools.types import Client
bill = client.add_income(cheque, Client(display_name="Rusalky Davalky Inc."))
Канселим чеки, как Италию
from npdtools import NPDTools
client = NPDTools("123456789012", "~_ub&TS5RY~k9,czo(q*")
cheque = Services()
cheque.add("Коробка для изюма из дерева с декоративными элементами", 250, 1)
bill = client.add_income(cheque)
# Отменяем выставленный счёт
client.cancel_income(bill.id)
# Ну или как-то по-другому указываем номер чека. Можно и кастомный коммент.
client.cancel_income(id="73489273597", comment="Клиент гопник я с ним работать не буду")
P.S.
Я буду ещё дописывать библиотеку, да. Но пока так. Она не такая простая, как кажется.
Буду рад конструктивным пул реквестам и иссуям.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.