Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

npdtools-0.1a2.tar.gz (17.3 kB view hashes)

Uploaded Source

Built Distribution

npdtools-0.1a2-py3-none-any.whl (17.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page