Вы запустили SaaS-продукт, подключили Stripe, привязали карту для теста — и всё вроде работает. Но когда дело доходит до реальных подписок из СНГ, начинаются сюрпризы: карты не проходят, 3D Secure блокирует платежи, банки звонят клиентам с проверкой. Разберёмся, как правильно настроить recurring billing в Stripe именно для нашего регимента — без воды и теории, которая не пригодится.
- Что вообще такое recurring billing и почему это не просто «списать каждый месяц»
- Какие карты реально работают для подписок в СНГ
- Пошаговая настройка подписки в Stripe
- Шаг 1: Создайте продукт и цену
- Шаг 2: Настройте Tax Settings (налоги)
- Шаг 3: Настройте 3D Secure и правила повторных попыток
- Шаг 4: Настройте Webhooks для обработки событий
- Шаг 5: Настройте уведомления для клиентов
- Как обрабатывать неудачные платежи — это главная боль
- Триалы и промо-периоды
- Частые ошибки при настройке подписок
- Что выбрать в зависимости от вашей ситуации
- Практические рекомендации
- Итог
Что вообще такое recurring billing и почему это не просто «списать каждый месяц»
Recurring billing — это автоматическое регулярное списание с карты клиента по подписке. В Stripe это реализуется через связку трёх объектов:
- Customer — профиль клиента в Stripe.
- Price — цена с указанным интервалом (месяц, год и т.д.).
- Subscription — сама подписка, которая по этому интервалу генерирует инвойсы и пытается списать деньги.
Всё выглядит просто, пока не появляются реалии: карты российских банков не принимаются, казахстанские карты проходят через раз, украинские банки блокируют повторные списания без 3DS. И вот тут начинается настройка под реальность.
Какие карты реально работают для подписок в СНГ
Stripe официально не поддерживает Россию для прямого приёма платежей. Это значит, что если ваш бизнес зарегистрирован как российское юрлицо, подключить Stripe напрямую не получится. Но для СНГ в целом ситуация другая — всё зависит от юрисдикции вашей компании.
Вот как обстоят дела по странам:
| Страна | Stripe официально поддерживается | Карты каких банков проходят для подписок | Основные проблемы |
|---|---|---|---|
| Казахстан | Да | Локальные карты (Kaspi, Halyk) — с ограничениями; международные карты — работают | Не все локальные карты поддерживают recurring без 3DS |
| Узбекистан | Нет | Только через посредников или международные карты | Ограниченная поддержка |
| Украина | Да | Карты украинских банков — работают, но с частыми отказами по recurring | Блокировки повторных списаний, требование 3DS на каждый платёж |
| Грузия | Да | Карты грузинских банков — работают хорошо | Меньше проблем с 3DS |
| Россия | Нет | Напрямую не работает | Нужна компания в поддерживаемой юрисдикции |
Если ваши клиенты — преимущественно из России, а бизнес тоже в РФ, Stripe для подписок вы использовать не сможете. Придётся либо регистрировать компанию в поддерживаемой стране, либо смотреть в сторону других эквайеров (ЮKassa, Robokassa, CloudPayments). Но если у вас международная аудитория или компания за пределами РФ — Stripe вполне рабочий вариант.
Пошаговая настройка подписки в Stripe
Шаг 1: Создайте продукт и цену
В Stripe Dashboard перейдите в Products → Add product. Задайте название, описание. Затем добавьте цену — здесь самое важное выбрать правильный тип:
- Recurring — для подписок (ежемесячно, ежегодно и т.д.).
- One-time — для разовых платежей.
Укажите валюту. Для СНГ-аудитории часто используют USD или EUR — это снижает вопросы от банков. Локальные валюты (KZT, UAH) тоже доступны, если Stripe поддерживает их для вашей страны.
Настройте интервал: ежемесячно — самый распространённый вариант. Ежегодно — если хотите давать скидку за годовую оплату.
Шаг 2: Настройте Tax Settings (налоги)
Если вы работаете с B2B-клиентами из СНГ, скорее всего вам не нужно начислять НДС. Но если среди клиентов есть физлица из ЕС или других юрисдикций — Stripe может автоматически добавлять налоги.
В Settings → Tax settings укажите, являетесь ли вы плательщиком налогов в соответствующих регионах. Если не уверены — лучше отключить автоматическое налогообложение и разобраться отдельно, иначе клиенты будут удивлены неожиданной надбавкой.
Шаг 3: Настройте 3D Secure и правила повторных попыток
Это ключевой момент для СНГ. Банки в регионе часто требуют 3DS-подтверждения для каждого платежа, а стандартная логика Stripe может не справиться с этим.
Зайдите в Settings → Billing → Customer portal и включите опцию для управления подписками клиентами. Затем в Settings → Payments → 3D Secure настройте правила:
- Включите 3DS для всех платежей, где это требуется — это снизит количество отказов.
- Настройте Smart Retries — Stripe автоматически попробует повторить списание через определённые промежутки времени, если первое не прошло.
- Включите Retry on card updates — если клиент обновил карту, Stripe попробует списать с новой автоматически.
Шаг 4: Настройте Webhooks для обработки событий
Без вебхуков ваша система не узнает, прошёл ли платёж, истекла ли подписка, обновил ли клиент карту. Это критично для SaaS.
В Developers → Webhooks добавьте endpoint и подписитесь на эти события:
invoice.payment_succeeded— платёж прошёл, можно продлить доступ.invoice.payment_failed— платёж не прошёл, нужно уведомить клиента.customer.subscription.updated— клиент сменил тариф или отменил подписку.customer.subscription.deleted— подписка удалена, доступ нужно заблокировать.customer.subscription.trial_will_end— триал заканчивается, время предложить оплату.
Обязательно проверяйте подпись вебхука на своей стороне — это стандартная практика безопасности, не пренебрегайте ей.
Шаг 5: Настройте уведомления для клиентов
Stripe умеет отправлять email-уведомления при успешном платеже, неудачной попытке, окончании триала. В Settings → Billing → Email включите:
- Уведомление о неудачном платеже с просьбой обновить карту.
- Подтверждение успешного платежа.
- Предупреждение об окончании триала.
Но не полагайтесь только на email — дублируйте уведомления внутри вашего приложения. Почта может не дойти, а клиент должен точно знать, что с ним происходит.
Как обрабатывать неудачные платежи — это главная боль
В СНГ процент неудачных рекуррентных списаний выше, чем в Европе или США. Причины разные: недостаточно средств, банк заблокировал повторный платёж, карта заблокирована, 3DS не прошёл.
Stripe предлагает несколько стратегий для работы с этим:
- Dunning management — автоматическая серия повторных попыток списания с уведомлениями клиента. Настраивается в Settings → Billing → Retry logic.
- Grace period — период после неудачного платежа, когда доступ к сервису ещё сохраняется. Например, 3 дня на исправление ситуации.
- Downgrade instead of cancel — вместо отмены подписки можно перевести клиента на бесплатный тариф, чтобы не терять его совсем.
Рекомендую настроить минимум 3 попытки списания с интервалом в 1, 3 и 5 дней. После последней неудачной попытки — приостанавливать доступ, но не удалять подписку сразу. Дайте клиенту ещё неделю вручную обновить карту.
Триалы и промо-периоды
Бесплатный триал — мощный инструмент для SaaS, но с ним есть нюансы в СНГ:
- Клиенты часто забывают отменить подписку после триала и возмущаются списанию.
- Некоторые карты не проходят даже для нулевого авторизационного платежа (Stripe делает холдирование небольшой суммы для проверки карты).
- Банки могут не отображать авторизацию, и клиент думает, что его обманули.
Что делать:
- Четко предупреждайте перед началом триала, что нужна карта и что после триала начнётся списание.
- Отправляйте напоминание за 3 дня до окончания триала.
- Не делайте триал длиннее 14 дней — дольше 10 дней уже начинается забывание.
- Если карта не поддерживает авторизацию — предложите клиенту альтернативный способ оплаты.
Частые ошибки при настройке подписок
Ошибка 1: Не настроены вебхуки. Подписка создана, платёж прошёл, но ваш сервис об этом не знает. Клиент заплатил, а доступ не получил. Всегда проверяйте, что вебхуки работают и обрабатываются корректно.
Ошибка 2: Игнорирование failed payments. Если не настроить dunning, вы потеряете до 20-30% выручки просто потому, что у клиента закончились деньги на карте в день списания, а повторной попытки не было.
Ошибка 3: Использование только email-уведомлений Stripe. Email может попасть в спам, клиент его не увидит. Дублируйте критичные уведомления в интерфейсе вашего продукта.
Ошибка 4: Нет grace period. Клиент не заплатил с первого раза — вы сразу заблокировали доступ. Он злится, пишет в поддержку, требует вернуть деньги за неиспользованные дни. Давайте минимум 3 дня на исправление.
Ошибка 5: Не тестируется весь цикл подписки. Проверили создание подписки — ок. Проверили первый платёж — ок. А что происходит при смене тарифа? При отмене? При обновлении карты? При неудачном платеже? Тестируйте все сценарии.
Что выбрать в зависимости от вашей ситуации
Если ваш бизнес в России и клиенты тоже в РФ: Stripe не вариант для прямого приёма. Используйте ЮKassa, Robokassa или CloudPayments — они нативно работают с российскими картами и поддерживают рекуррентные платежи. Stripe можно подключить только если у вас есть компания в поддерживаемой юрисдикции и часть клиентов — нерезиденты.
Если бизнес в Казахстане или Грузии: Stripe работает хорошо. Настраивайте стандартный recurring billing, включайте 3DS, настраивайте вебхуки. Основная проблема — локальные карты могут не поддерживать recurring без подтверждения, предлагайте клиентам международные карты как приоритетный способ оплаты.
Если бизнес в Украине: Stripe работает, но будьте готовы к повышенному проценту отказов по рекуррентным платежам. Настройте агрессивный dunning, включите все повторные попытки, обязательно давайте grace period. Рассмотрите возможность приёма оплаты через альтернативные методы (Apple Pay, Google Pay) — они часто проходят надёжнее прямых картовых списаний.
Если у вас смешанная аудитория (СНГ + международная): Stripe — хороший выбор. Настройте мультивалютность, предложите несколько способов оплаты (карта, Apple Pay, Google Pay, банковский перевод для крупных клиентов). Для СНГ-клиентов чётко укажите, какие карты поддерживаются.
Практические рекомендации
- Всегда используйте Payment Intents API, а не устаревший Charges API. Payment Intents корректно обрабатывает 3DS и обязательные проверки банков.
- Храните customer ID в своей базе данных — это позволит быстро находить подписки и управлять ими из вашего интерфейса.
- Логируйте все события вебхуков — при проблемах с платежами вы сможете быстро понять, на каком этапе произошёл сбой.
- Настройте Radar rules — встроенная система антифрода Stripe поможет отсеять подозрительные транзакции. Для СНГ это особенно актуально из-за повышенного мошенничества с чужими картами.
- Предлагайте годовую подписку со скидкой — это снижает отток и уменьшает количество транзакций, а значит и потенциальных отказов.
- Дайте клиенту возможность обновить карту самостоятельно через Customer Portal — это разгрузит вашу поддержку.
Итог
Настройка recurring billing в Stripe для SaaS в СНГ — это не просто «создать продукт и цену». Нужно учитывать специфику банков региона, правильно настраивать 3DS, вебхуки, dunning и grace periods. Если ваш бизнес в России — Stripe не подходит для прямого приёма, используйте локальные эквайеры. Если в Казахстане, Грузии или Украине — Stripe работает, но требует тщательной настройки обработки неудачных платежей.
Начните с малого: создайте продукт и цену, настройте вебхуки, протестируйте полный цикл (создание подписки → успешный платёж → неудачный платёж → повторная попытка → отмена). Запустите на ограниченном числе клиентов, отследите процент успешных списаний, и только потом масштабируйте.
Информация в статье носит ознакомительный характер. Условия работы Stripe могут меняться, а правовое регулирование электронных платежей в разных странах СНГ отличается. Перед заплатой приёмных платежей рекомендуется проконсультироваться с юристом по вопросам валютного регулирования и налогообложения в вашей юрисдикции.



