Java-библиотека · Spring Boot Starter

MoyNalog Java Client

Java-библиотека и Spring Boot Starter для API сервиса «Мой Налог» (ФНС): доходы, чеки, счета с банковскими реквизитами.

2024·Backend
Java 17Spring Boot StarterHTTP client

Контекст

Сервисам, которые работают с самозанятыми, нужна программная регистрация доходов и выставление счетов через API «Мой Налог». Готового клиента под Java не было — каждая команда писала свой, дублируя авторизацию, обновление токена и обработку ошибок.

Решение

Библиотека с двумя вариантами интеграции: автоконфиг Spring Boot Starter (две строки в application.properties) и standalone-режим без Spring. Внутри — авторизация по логину/паролю с автоматическим retry, фоновое обновление токена (ReadWriteLock), отправка чеков sync/async, выставление счетов с реквизитами банка, прокси-поддержка (HTTP/HTTPS, с авторизацией и без) и настраиваемый таймаут.

Стек и архитектура

  • Runtime: Java 17.
  • Сетевой слой: HTTP-клиент со встроенным retry.
  • Concurrency: ReadWriteLock на обновлении токена.
  • Auto-config: Spring Boot Starter.
  • Конфигурация: через свойства Spring или конструктор клиента.

Роль и результат

Мы собрали библиотеку из реальной потребности: единая точка для всех ФНС-операций, безопасная многопоточная работа и две строчки конфигурации для подключения. Использовалась в нескольких сервисах в проде.

Похожий проект?

Обсудить подобную задачу

Опишите задачу — расскажем про релевантный опыт и оценим реализацию.