Білінг — найкритичніша частина SaaS
Користувач може пробачити дрібний UX‑баг, але не пробачить неправильне списання. Тому білінг потрібно проєктувати як фінансову систему: зі станами, аудитом і ідемпотентністю.
1) Модель станів підписки
- trial → active → past_due → canceled/paused.
- Чіткі правила переходів і хто їх ініціює (система/користувач/платіжка).
2) Ідемпотентність
- Idempotency‑Key на створення інвойсу/оплату.
- Дедуплікація webhook‑подій (eventId).
3) Dunning: повертаємо оплату
- Ретраї з backoff (не “кожні 5 секунд”).
- Листи/нотифікації: що сталося і як виправити.
- Grace period: не відрубати доступ миттєво.
4) Аудит і звірка
Логи операцій (інвойс, платіж, повернення) і можливість звірки з провайдером платежів — must‑have для підтримки.
Підсумок
Стабільний білінг зменшує churn: користувачі не втрачаються через помилки оплат. А для бізнесу це основа прогнозованого MRR.