Биллинг: две недели на код, два года на грабли
Биллинг: две недели на код, два года на грабли Каждая вторая команда говорит «напишем сами, там простая логика». Простая логика превращается в льготные периоды, пересчёты при смене тарифа и одного разработчика, который знает, почему клиенту выставляется именно эта сумма. Биллинг кажется прямолинейным: считаешь потребление, умножаешь на тариф, выставляешь счёт. На практике логика разрастается быстрее, чем успеваешь документировать. Первые грабли — пересчёты. Клиент меняет тариф в середине месяца. Пропорционально делишь? А если у него авансовый платёж? А если льготный период не истёк? Через три месяца в коде появляется функция на 200 строк с комментарием «не трогать, работает». Вторые — отложенные платежи и кредиты. Клиент просит отсрочку на неделю. Где хранить это состояние? В базе биллинга или в CRM? Кто отвечает за синхронизацию? Через полгода у тебя три источника правды, и ни один не совпадает с бухгалтерией. Третьи — тарифная сетка. Сначала один тариф, потом два, потом «для корпоративных клиентов отдельный». Потом акция на квартал. Потом персональная скидка. Код превращается в if-елку, которую страшно рефакторить: «вдруг что-то сломается у старых клиентов». Четвёртые — аудит и соответствие. Налоговая хочет видеть, как формировалась сумма три года назад. Клиент оспаривает счёт за прошлый квартал. Логов нет, версий тарифов не сохранили, расчёт пересоздавался каждый месяц. Что закладывать до первого клиента • Версионирование тарифов. Каждое изменение цены — новая версия, старые не удаляются. • Полный audit log расчётов. Кто, когда, какую формулу применил, какие данные использовал. • Разделение логики начисления и выставления счёта. Начисление — это расчёт, счёт — это документ. • API для интеграции с CRM и бухгалтерией с первого дня. Не «потом прикрутим». Биллинг пишется не за неделю. Он пишется за две недели, а потом два года допиливается на продакшене. Можно сократить эти два года до полугода, если заложить правильную архитектуру сразу. #биллинг #архитектура #технический долг