Биллинг для SaaS: как построить подписки и не терять деньги
Подписка — модель дохода SaaS: предсказуемые поступления, высокая пожизненная ценность, сложность внедрения — на биллинге. Ошибки здесь стоят дорого: сбои списаний, потерянные подписчики, налоговые проблемы. Разбираем, как построен биллинг SaaS в 2026: от выбора провайдера до удержания.
Из чего состоит биллинг
| Компонент | Функция |
|---|---|
| Каталог тарифов | Планы, цены, лимиты, надбавки |
| Подписки | Жизненный цикл: триал → активна → пауза → отмена |
| Периодические списания | Карты, автоплатежи, ретраи |
| Инвойсы и квитанции | Документы для клиентов и бухгалтерии |
| Налоги | НДС/VAT, tax-расчёты по странам |
| Возвраты и споры | Refund, chargeback-процессы |
| Dunning | Автоматические попытки списания при неудаче |
| Доступ в продукт | Webhook-статусы → открыть/закрыть доступ |
Провайдеры 2026
- Stripe Billing — стандарт для международных SaaS: подписки, invoicing, tax, dunning из коробки.
- Paddle / Lemon Squeezy — Merchant of Record: налоги, НДС, споры — на них. Идеально для «без бухгалтерии».
- Recurly / Chargebee — «тяжёлый» биллинг для растущих SaaS: сложные правила, несколько валют.
- Российские аналоги (ЮKassa/CloudPayments подписки, Т-Касса) — для рынка РФ; помните про международные ограничения (см. статью о международных платежах).
Выбор прост: без своего юрлица за рубежом — Merchant of Record; с юрлицом и ростом — Stripe; сложные тарифы/валюты — Recurly/Chargebee.
Архитектура: где логика
Ключевой вопрос — где живёт «правда» о подписке. Правильная схема:
Продукт (ваш бэкенд) ← статусы/вебхуки → Биллинг-провайдер
↑ источник правды о доступе: у вас
↓ источники денег и инвойсов: у провайдера
- Вебхуки — источник событий: invoice.paid, subscription.updated, payment_failed. Храните их в очереди и обрабатывайте идемпотентно (по ID события).
- Доступ решаете вы: статус подписки в вашей БД, синхронизированный вебхуками.
- Не доверяйте клиентскому коду: «тариф» — только с сервера, иначе подписку «взломают» в консоли браузера.
- Триал без карты конвертит в подписку хуже; триал с картой даёт больше платящих, но риск false-негативов. Выбирайте по рынку.
Периодические списания и dunning
Списания по картам не всегда проходят: карта протухла, лимит, банк отказал. Хороший dunning возвращает 30–50% «упавших» подписчиков:
// Сценарий восстановления (настраивается у провайдера)
День 0: списание не прошло → клиенту письмо «обновите карту» + ссылка
День 3: повторная попытка списания (retry)
День 7: повторная попытка + скидка-крючок (по желанию)
День 14: финальная попытка
День 21: подписка приостановлена → доступ ограничен
День 35: отмена, данные храним N дней
- Уведомление клиента при первом сбое — часто решает проблему (карта просто протухла).
- Прозрачность: «продолжим списывать X ₽/мес» при подписке — снижает chargeback.
- Измеряйте voluntary/involuntary churn отдельно — у involuntary всегда есть потолок восстановления.
Тарифы: метрики и инженерия
| Метрика | Формула | Здоровый уровень |
|---|---|---|
| MRR | Сумма подписок в месяц | Растёт |
| Churn (отток) | Отмены / подписчики × 100% | Менее 2–5% в месяц |
| Net revenue retention | MRR с когорты / изначальный | 100%+ |
| Триал → платно | Платящие / начавшие триал | 15–30%+ |
Инженерные задачи тарифов: пророртируемые изменения (апгрейд в середине периода), лимиты с мягкой блокировкой (warning за неделю), «плавающие» фичи по тарифу (feature flags по подписке).
Типичные ошибки
- Хранение карт у себя — не делайте; PCI DSS и ответственность за утечки.
- Обработка вебхуков без идемпотентности — двойные списания/доступы.
- Доступ по статусу «из головы» вместо провайдера — рассинхронизация с деньгами.
- Нет dunning — теряете 30–50% подписчиков с протухшими картами.
- Налоги «потом» — VAT для ЕС, налог с продаж в США; Merchant of Record снимает головную боль.
«Биллинг SaaS 2026 — это не „кнопка оплаты“, а экономика продукта: ретраи возвращают десятки процентов выручки, прозрачность снижает chargeback, а вебхуки — единый источник правды. Отношение к биллингу — это отношение к деньгам» — практика SaaS, 2026.
Начните с провайдера (Stripe или Paddle), подключите вебхуки с идемпотентностью, настройте dunning-сценарий и прозрачные инвойсы. Биллинг «на коленке» окупает переход уже на 1000 подписчиков.