Спроектируй subscription-флоу.
1. Upgrade
- Pro-rated charge за оставшиеся дни
- Доступ к новым фичам — сразу
proration_behavior: 'create_prorations'
2. Downgrade
- Меняется в начале следующего периода
- Confirmation: "Потеряете X через 12 дней"
proration_behavior: 'none'
3. Cancel
cancel_at_period_end: true- Доступ до конца периода
- Exit survey (важно для feedback)
- НЕ скрывай кнопку отмены 5 кликов глубоко
4. Reactivate
- В течение grace period
cancel_at_period_end: false
5. Pause
pause_collection: { behavior: 'mark_uncollectible' }- Доступ сохраняется
6. Failed payment
- Stripe ретрайит 3 раза
- Webhook
invoice.payment_failed - Email + UI banner юзеру
- После 3 фейлов →
status = unpaid→ suspend через 7 дней
7. Edge cases
- Юзер сменил email → re-link Stripe customer
- Команда купила seats > сотрудников → over-provisioning
- Отменил → signed up снова → check existing customer
Чек-лист
- Upgrade — мгновенный
- Downgrade — в конце периода, юзер предупреждён
- Cancel — доступ до конца, exit survey
- Failed payment flow
- Customer portal
- Email notifications
Анти-паттерны
- ❌ "Отмена через support" — barrier
- ❌ Сразу выкидывать access при cancel
- ❌ Молчаливое failed payment → suspended
Похожие промты
site / payments
Интеграция Stripe
Checkout, подписки, webhook'и, идемпотентность, тест-режим — production-ready stripe.
paymentsstripeintegration
Открыть
Продвинутый1-2 часа
site / payments
Billing-страница
Что показывать: план, история, способ оплаты, инвойсы, отмена.
paymentsbillingui
Открыть
Средний30-60 мин
site / payments
Поток возврата платежа
UX и логика возврата: триггеры, policy, коммуникация, partial vs full, метрики, anti-fraud.
paymentsrefundux
Открыть
Средний1-2 часа