Le 1er janvier 2019, une loi a été adoptée pour quatre entités constitutives de la Fédération de Russie (régions de Moscou, Moscou et Kalouga, ainsi que de la République du Tatarstan), introduisant une nouvelle taxe professionnelle (NAP) comme projet pilote. En bref, sa tâche principale est de sauver les personnalités professionnelles de toutes les difficultés des petites entreprises: impôt de 6% (dans le cas des entrepreneurs privés), cotisations de retraite obligatoires, dont le montant chaque année pour une seule personne approche la barre des 50000 roubles, déclaration de revenus. Ainsi, l'État soutient les petites entreprises en offrant aux entrepreneurs en démarrage un faible impôt (4% pour les revenus des particuliers et 6% pour les personnes morales). Si vous voulez plus de détails, vous pouvez voir des informations détaillées sur Internet.
Même les personnes qui travaillent dans le domaine informatique sont autorisées à utiliser les PAN. Comment cela peut-il aider? Par exemple, vous avez développé un service qui fonctionne sur Internet, vous souhaitez accepter les paiements. Vous n'avez pas besoin d'enregistrer une entité juridique pour le bien d'une telle activité entrepreneuriale et de résoudre un tas de problèmes dès le départ. Il suffit de s'inscrire comme travailleur indépendant et, en libération conditionnelle, de marteler manuellement chaque service ou produit. À ce moment précis, le développeur du service pense: "Ce processus peut-il être automatisé?" Et la réponse ici est "bien sûr que vous le pouvez!" L'article, en fait, est de vous dire comment procéder.
Remarque importante: l'auteur de l'article utilise les connaissances acquises grâce à l'étude de l'application uniquement pour une bonne - automatisation de la routine. Il veut les mêmes motifs pour vous.
Étape 1. Identifier le trafic HTTP
Ici, vous aurez besoin de l'application officielle du contribuable «Mon impôt». Vous pouvez le télécharger via Google Play.
Pour cet article, il suffira de déterminer sourceDeviceId (je soupçonne que c'est la même chose que android id) et refreshToken, cependant, vous pouvez explorer absolument toutes les méthodes API proposées par la demande d'étude. Pour le déterminer, vous devez recevoir les demandes HTTPS du smartphone. Pour un appareil d'origine sans droits root, vous pouvez utiliser un ordinateur, le programme gratuit Fiddler. Pour comprendre le travail du programme, j'ai utilisé un
manuel pas tout à fait à jour, cependant, il suffisait d'intercepter le trafic https du smartphone et d'afficher l'application sur l'écran de l'ordinateur.
Après avoir installé tout ce dont vous avez besoin pour vous inscrire en tant que contribuable et fermer l'application. Activez ensuite le programme Fiddler, établissez une connexion proxy sur votre smartphone et redémarrez l'application. L'application fera une demande d'autorisation avec un jeton d'actualisation, qui au moment de cet article est créé avec une durée illimitée:

Comme vous pouvez le voir sur la capture d'écran, l'application a le domaine de base lknpd.nalog.ru (sous-domaine du site Web des services fiscaux russes) et l'API version 1. L'autorisation des méthodes est utilisée par Bearer, le jeton correspondant est généré via la méthode / auth / token. Les données des champs de demande sourceDeviceId et refreshToken sont extrêmement nécessaires pour vous. J'ai vérifié le travail de refreshToken 3 jours après l'expérience - cela fonctionne, par conséquent, vous pouvez prendre un jeton en toute sécurité pendant 1 heure, ayant évidemment un réel refreshToken.
La méthode d'envoi de colis elle-même ressemble à ceci et possède tous les champs nécessaires:

Veuillez noter que tous les champs sont obligatoires. Le champ des services peut vous donner envie d'envoyer plusieurs services dans le tableau, cependant, seul le premier service sera affiché sur le chèque, bien que le coût final soit complet. Pourtant, le service est plutôt humide, et il n'est que récemment lancé, nous ne nous attarderons pas sur cela (même si c'est dommage, en fait, plusieurs positions sont parfois nécessaires).
Vous devez également prêter attention à la réponse: approuvéeReceiptUuid: le champ contient un code de contrôle unique, qui peut être obtenu sans aucune difficulté par votre TIN et UUID du contrôle.
Étape 2. Développement de script
Pour démontrer rapidement le concept d'automatisation, Python 3.7.2 est utilisé avec la bibliothèque de requêtes:
import requests import datetime import shutil TIME_OFFSET = '+03:00' DEVICE_ID = '' REFRESH_TOKEN = '' API_PROVIDER = 'https://lknpd.nalog.ru/api/v1/' TOKEN = '' INN = '' def DO(method, params): headers = {"Authorization":"Bearer "+TOKEN} if TOKEN != '' else {} r = requests.post(API_PROVIDER+method, json=params, headers=headers) print(r.text) return r.json() def get_token(): reqparam = { "deviceInfo": { "appVersion": "1.0.0", "metaDetails": { "browser": "", "browserVersion": "", "os": "android" }, "sourceDeviceId": DEVICE_ID, "sourceType": "android" }, "refreshToken": REFRESH_TOKEN } res = DO('auth/token', reqparam)
Remplacez les valeurs requises - le script fonctionnera comme il se doit. Vous pouvez ajouter des gestionnaires d'erreurs et améliorer la livraison - le script ci-dessus montre uniquement le principe de travail avec l'API fiscale NAP.
Remarque Peut-être qu'à l'avenir, la taxe publiera l'API, mais maintenant elle ne le fait pas simplement parce que peu de gens en ont besoin. Par conséquent, cette affaire est reportée à plus tard. Cependant, je m'empresse de noter que si le guide officiel est publié, il contiendra soit des informations similaires, soit légèrement améliorées, en termes d'autorisation, c'est certain.
UPD: J'ai trouvé de la documentation sur l'automatisation, qui est écrite ... on dirait un adjoint à la main: très sophistiqué et pas structuré. Il y aura du temps - j'écrirai un article digne sur l'automatisation via l'API officielle. Spoiler: tout est à peu près le même que celui que nous avons appris grâce au trafic, seules les méthodes officielles avec des demandes par e-mail et d'autres difficultés sont décrites.
Conclusion
En conclusion, je veux noter:
ne répétez pas cela à la maison il n'y a rien d'impossible. Même une chose aussi routinière peut être facilement automatisée. Copiez le code, modifiez-le à votre façon. J'implémenterai peut-être alors la bibliothèque pour que l'automatisation soit beaucoup plus accessible à tous. J'attends avec impatience votre critique objective et continue de creuser vers l'API. Mon prochain objectif est d'idéaliser le principe de l'autorisation et de créer une bibliothèque pour Python.