Багато SaaS-проєктів втрачають до 30% виручки через необроблені невдалі платежі. Типова ситуація: після реєстрації користувач вводить картку, проходить trial, але за місяць платіж не проходить — картка прострочена або на рахунку недостатньо коштів. Без dunning management клієнт іде, хоча міг би залишитися. У цій статті розберемо, як побудувати надійний білінг для SaaS на Stripe Billing: від налаштування trial до ретеншн-механік, які повертають клієнтів. Ми маємо 5+ років досвіду в розробці підписних сервісів та реалізували 50+ проєктів. Розглянемо конкретні сценарії: управління підписками, обробка past_due, налаштування Smart Retries, інтеграція Customer Portal та централізована перевірка доступу. Кожен із цих елементів може знизити churn на 20–30%. Середня економія від впровадження dunning складає $5,000–$10,000 на місяць для компанії з 500 платників. Помилки на цих етапах — невірна конфігурація webhook, відсутність idempotency ключів — призводять до задвоєння платежів або пропуску подій. Анти-churn стратегії дозволяють зберегти до 30% виручки.
Як влаштований життєвий цикл підписки?
Кожна підписка проходить через стани: trialing → active → past_due → cancelled або active → cancelled (за ініціативою користувача). Webhook'и платіжного провайдера сповіщають додаток про кожен перехід. Важливо обробляти три ключові події:
-
invoice.payment_succeeded— активувати підписку, скинути trial_end. -
invoice.payment_failed— встановити статусpast_due, запустити dunning (повторні спроби списання). -
customer.subscription.deleted— миттєво деактивувати доступ до платних функцій.
Пропуск хоча б одного webhook підписки призводить до того, що клієнт залишається з доступом без оплати.
Що таке dunning і як він знижує churn?
Dunning — автоматичний процес повторних спроб списання після невдалого платежу. Згідно з документацією Stripe, Smart Retries використовує машинне навчання для вибору оптимального часу повторної спроби: до 4 разів протягом 14 днів. Наш підхід до білінгу в 2 рази ефективніший за стандартні рішення. Налаштування в панелі Stripe:
- Задати максимальну кількість спроб (рекомендується 3–4).
- Вказати інтервал між спробами (кожен день або через день).
- Увімкнути вебхук
invoice.payment_failedдля надсилання email-сповіщень.
Паралельно Stripe Customer Portal дозволяє клієнту оновити платіжний метод без вашої участі. Smart Retries повертає до 90% невдалих платежів — це в 3 рази ефективніше за ручні спроби.
| Параметр | Stripe Smart Retries | Ручні retry |
|---|---|---|
| Спроби | до 4 | будь-яка кількість, але без ML |
| Час | обирає ML | фіксований інтервал |
| Email-сповіщення | через Portal | своя реалізація |
| Повернення платежів | до 90% | ~30% |
Безкоштовний пробний період: з карткою чи без?
| Параметр | Trial without card | Trial with card |
|---|---|---|
| Тертя при реєстрації | Низьке | Високе |
| Конверсія в платників | Нижча (~50%) | Вища (~80%) |
| Ризик фроду | Вищий | Нижчий |
| Рекомендація | B2C, віральні продукти | B2B SaaS |
Для B2B-SaaS рекомендується trial with card. Для B2C та viral-продуктів — без картки.
Upgrade Downgrade: миттєва зміна плану
Зміна плану має бути миттєвою та враховувати вже оплачений період. Stripe обробляє це через proration:
await stripe.subscriptions.update(subscriptionId, { items: [{ id: itemId, price: 'price_premium_monthly' }], proration_behavior: 'create_prorations', }); При апгрейді — списується різниця за дні, що залишилися періоду. При даунгрейді — різниця зараховується як кредит.
Які retention-механіки реально працюють?
- Cancellation flow: замість кнопки «Скасувати» — діалог із clarifying questions, пропозицією паузи або знижки.
- Email-кампанії: серія листів при past_due, при закінченні trial без конверсії, через 30/60/90 днів після скасування.
- Win-back offers: спеціальна пропозиція для cancelled користувачів.
Ці механіки повертають до 20% тих, хто скасував підписку. Наприклад, при churn у 5% та ARPU $200 правильне налаштування dunning може повернути до $9,000 на місяць.
Типові помилки при інтеграції підписок
- Необроблений past_due — не налаштовані вебхуки на невдалі платежі, клієнт втрачається.
- Відсутність proration — при зміні плану не створюється пропорційний кредит, білінг розходиться.
- Розкидана перевірка доступу — замість централізованого Gate перевірка розмазана по контролерах.
- Ігнорування webhook idempotency — повторні сповіщення від Stripe можуть призвести до подвійної активації.
Що входить у роботу над підписним сервісом?
У підсумковий проєкт входить:
- Документація з архітектури білінгу та API.
- Доступи до Stripe акаунту та тестові картки.
- Навчання вашої команди роботі з білінгом.
- Підтримка протягом 30 днів після запуску.
Процес роботи
- Аналіз вимог та проєктування тарифної сітки
- Інтеграція Stripe Billing (вебхуки, portal, proration)
- Реалізація реєстрації, trial, upgrade downgrade, dunning
- Retention-механіки (cancellation flow, email-кампанії)
- Документація з API та архітектури
- Тестування payment flow та сценаріїв скасування
- Підтримка та доопрацювання після запуску
- Навчання вашої команди роботі з білінгом
Терміни та вартість
Веб-сервіс за підпискою через Stripe (реєстрація, trial, upgrade downgrade, portal, базові webhook'и): від 2 до 3 місяців. З розширеною тарифікацією, командами, dunning та analytics: від 3 до 5 місяців. Вартість розраховується індивідуально на основі складності та необхідного стеку. Ми гарантуємо якість та досвідчену команду.
Замовте розробку надійного білінгу підписки — від дизайну тарифів до ретеншн-механік. Отримайте консультацію щодо вашого проєкту.







