Как настроить регулярные платежи в Stripe для SaaS в СНГ

Вы запустили SaaS-продукт, подключили Stripe, привязали карту для теста — и всё вроде работает. Но когда дело доходит до реальных подписок из СНГ, начинаются сюрпризы: карты не проходят, 3D Secure блокирует платежи, банки звонят клиентам с проверкой. Разберёмся, как правильно настроить recurring billing в Stripe именно для нашего регимента — без воды и теории, которая не пригодится.

Что вообще такое 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 перейдите в ProductsAdd 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 настройте правила:

  1. Включите 3DS для всех платежей, где это требуется — это снизит количество отказов.
  2. Настройте Smart Retries — Stripe автоматически попробует повторить списание через определённые промежутки времени, если первое не прошло.
  3. Включите 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 делает холдирование небольшой суммы для проверки карты).
  • Банки могут не отображать авторизацию, и клиент думает, что его обманули.

Что делать:

  1. Четко предупреждайте перед началом триала, что нужна карта и что после триала начнётся списание.
  2. Отправляйте напоминание за 3 дня до окончания триала.
  3. Не делайте триал длиннее 14 дней — дольше 10 дней уже начинается забывание.
  4. Если карта не поддерживает авторизацию — предложите клиенту альтернативный способ оплаты.

Частые ошибки при настройке подписок

Ошибка 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 могут меняться, а правовое регулирование электронных платежей в разных странах СНГ отличается. Перед заплатой приёмных платежей рекомендуется проконсультироваться с юристом по вопросам валютного регулирования и налогообложения в вашей юрисдикции.

Platejigid.ru