Ерем Шахбазян › Erem01 Сбер ID
Боты и сайты под ключ | Автоматизация| Интеграции с CRM
Рейтинг
21 721
№ 46 в каталоге
Отзывы
Профессионализм
9/10
Коммуникация
9 /10
Город
Москва
Опыт работы
5 лет
На сайте с
2025 года
Юридический статус
Самозанятый

Генератор PDF-счетов на оплату: банковские реквизиты, НДС, сумма прописью, QR-код для оплаты по ГОСТ и проверка ИНН, БИК и счетов

Используемые навыки API Python

Описание

Сервисам, интернет-магазинам и CRM часто нужно выставлять счета автоматически — по заказу, по подписке, по кнопке в боте. Счёт должен выглядеть привычно для бухгалтерии, правильно считать НДС, а реквизиты в нём не должны содержать опечаток: иначе деньги уйдут не туда или платёж вернётся.

За основу взял открытую библиотеку PDF-счетов by-cx/InvoiceGenerator (184 звезды на GitHub). Она умеет только европейские и чешские счета, российского формата в ней нет.

Решение

Добавил в библиотеку российский «Счёт на оплату» в привычном виде, как из 1С: блок банковских реквизитов получателя, поставщик и покупатель с ИНН и КПП, основание, таблица работ и услуг с переносом длинных названий и переходом на следующую страницу, подписи — для организации или ИП.

Сделал расчёт НДС как принято в России: «в том числе НДС», начисление сверху или «без НДС» для УСН и самозанятых, несколько ставок одновременно. Написал сумму прописью с правильными падежами и QR-код для оплаты по ГОСТ Р 56042-2014: клиент наводит камеру в приложении банка, и платёж заполняется сам. QR проверил распознаванием с готового PDF.

Добавил проверку реквизитов по контрольным цифрам до выпуска счёта: ИНН, КПП, БИК, расчётный и корреспондентский счёт в связке с БИК — опечатка в одной цифре ловится сразу с понятным сообщением. Алгоритмы сверил на открытых реквизитах Сбербанка. 32 новых автотеста плюс 42 теста оригинала; заодно починил тест, падавший на Windows, и устаревший запуск тестов в CI.

Результат

Готовый модуль, который выпускает российский счёт на оплату в PDF одной строкой кода: с правильным НДС, суммой прописью и QR-кодом для оплаты из любого банковского приложения. Счёт с ошибкой в реквизитах не выпускается. Модуль легко встроить в сайт, CRM или Telegram-бота.

Проект — открытый форк с сохранением лицензии BSD и указанием автора оригинала; в README описано, что добавлено.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Развёртывание и настройка отказоустойчивой серверной инфраструктуры для онлайн-сервиса
Развёртывание и настройка отказоустойчивой серверной инфраструктуры для онлайн-сервиса
215
Веб-разработка и IT Telegram-бот для автоматизации обработки заявок и интеграции с CRM
Telegram-бот для автоматизации обработки заявок и интеграции с CRM
365
Веб-разработка и IT Сервис оплаты по QR-коду на FastAPI: разбор строки ГОСТ ST00012 и ссылки на оплату в приложениях банков с выбором банка на телефоне
Сервис оплаты по QR-коду на FastAPI: разбор строки ГОСТ ST00012 и ссылки на оплату в приложениях банков с выбором банка на телефоне
18
Веб-разработка и IT Бот-модератор Telegram-групп: возрождение заброшенного проекта — капча, антифлуд, защита от подмены букв, бан спамеров по имени, отчёты админам
Бот-модератор Telegram-групп: возрождение заброшенного проекта — капча, антифлуд, защита от подмены букв, бан спамеров по имени, отчёты админам
17