Платёж не прошёл — что делать: сразу отключать пользователя или дать время? Разбираем механику grace-периода: состояния подписки, стратегии доступа, уведомления и технические нюансы, которые влияют на удержание клиентов и выручку.
Рекуррентное списание вернуло отказ. Или счёт лежит неоплаченным, потому что бухгалтер в отпуске. Или карта перевыпущена, и пользователь просто не успел обновить данные. Что делать прямо сейчас — отключить доступ или подождать? Если подождать — то сколько и на каких условиях?
Именно здесь в игру вступает grace-период — буферное окно, в течение которого подписка считается просроченной, но система ещё не закрывает доступ окончательно, а ждёт разрешения ситуации. Без этого механизма вы либо теряете платящих пользователей из-за случайных технических сбоев, либо держите всех бесплатно до ручного разбора.
Та же логика работает для любого сервиса, принимающего регулярные платежи: от SaaS-продукта до обменника или платёжного шлюза. Нестабильность на стороне банка или провайдера — не редкость, и именно отказы платежей становятся одной из главных причин непреднамеренного оттока клиентов.
Подписка — это набор чётко определённых состояний, и переходы между ними должны быть явными.
Поведение биллинга зависит от способа оплаты.
Рекуррентные платежи по картам. Биллинг делает повторные попытки списания ежедневно до конца grace-периода или до успешной оплаты другим способом. Для B2B-клиентов на корпоративных картах логика та же.
Оплата по счёту. Банковский перевод идёт 1–3 рабочих дня, а с учётом внутреннего согласования в компании — и дольше. Счёт имеет смысл выставлять заранее, за 5–10 дней до даты продления. Подтверждение прихода денег может быть ручным (менеджер отмечает в системе) или автоматическим — через банковский API или загрузку выписки.
Если платёж прошёл внутри grace-периода, следующую дату нужно считать от исходной даты продления, а не от даты фактической оплаты. Дата продления — 1 мая, платёж прошёл 6 мая: следующий период начинается с 1 июня, а не с 6-го.
Единственно правильного ответа нет — всё зависит от продукта и внутренней политики.
Полный доступ. Пользователь ничего не замечает, пока проблема не решится или grace-период не закончится. Минимальный непреднамеренный отток. Обратная сторона: те, кто намеренно не платит, пользуются сервисом бесплатно весь период.
Немедленное отключение. Доступ закрывается сразу при неудачном платеже, grace-период служит только окном для восстановления. Высокий риск потерять добросовестных пользователей из-за технических сбоев. Для большинства продуктов — плохой выбор.
Ограниченный доступ. Пользователь видит уведомление, часть функций отключена, но ключевая функциональность и данные доступны. Хорошо работает там, где данные пользователя — его актив: документы, история, проекты. Клиент понимает, что нужно разобраться с оплатой, и мотивирован это сделать.
В B2B принято сохранять полный доступ значительно дольше, чем в B2C. Отключить корпоративного клиента в день просрочки — почти всегда ошибка, которая заканчивается звонком аккаунт-менеджеру и претензией.
Grace-период означает, что подписка находится в состоянии ожидания оплаты, расчётный период при этом не сдвигается. Если платёж прошёл на 5-й день grace за период, начавшийся 1-го, дата платежа и дата начала периода не совпадают. Когда признавать выручку — по дате платежа или по дате начала периода? Это нужно согласовать с бухгалтерией заранее.
Когда подписка уходит в suspended, попытки списания должны прекратиться: для карт заканчивается retry-цикл, для счётов перестают выставляться новые. Накапливать задолженность за несколько неоплаченных периодов не имеет смысла — это только усложнит клиенту путь к возврату.
Хорошая система уведомлений начинается не в момент, когда платёж уже не прошёл, а заранее.
Перед каждой отправкой проверяйте актуальный статус подписки. Если платёж прошёл за несколько часов до рассылки, а письмо об отключении всё равно ушло — это подрывает доверие. В B2B такая ситуация особенно болезненна.
Идемпотентность списаний. Если запрос к эквайеру завис и неизвестно, прошёл ли платёж, повторный запрос не должен приводить к двойному списанию. Используйте idempotency key на уровне каждой транзакции.
Вебхуки от эквайера. Статус платежа лучше получать через вебхуки, но они могут приходить с задержкой и дублироваться. Обрабатывайте их идемпотентно, проверяйте, не обработано ли уже это событие по его идентификатору. Логируйте все входящие события с временной меткой.
Отдельная тема — стабильность самого платёжного провайдера. Если эквайер недоступен в момент попытки списания, биллинг получает отказ, который технически ничем не отличается от «карта заблокирована». Чтобы минимизировать такие потери, часть платёжных платформ использует каскадную маршрутизацию: при отказе одного провайдера запрос автоматически уходит к следующему. Это особенно актуально для сервисов с высоким трафиком рублёвых платежей через СБП, где конверсия напрямую зависит от доступности инфраструктуры. Именно такой подход реализован в MultiFlow — платформа маршрутизирует каждый платёж через пул провайдеров, снижая число отказов и удерживая конверсию даже при сбоях на стороне отдельного банка.
Кто управляет ограничением доступа — биллинг или продукт?
Биллинг отвечает за статус подписки и уведомляет продукт о его смене. Что делать с этим статусом — скрывать функции, показывать баннер, переводить в read-only — решает продукт. Такое разделение позволяет менять политику доступа, не трогая биллинговую логику.
Как считать MRR, если часть подписок в grace-периоде?
Подписки в grace технически не оплачены. Включать их в MRR как активные — значит завышать метрику. Стандартная практика: держать их отдельно и переводить в реальный MRR только после подтверждения оплаты.
Что происходит с данными клиента после окончания grace-периода?
Зависит от политики хранения. Стандартная практика: после перехода в suspended данные сохраняются ещё 30–90 дней — в течение этого срока подписку можно восстановить.
Grace-период кажется небольшой деталью на фоне всей системы подписок. На деле он затрагивает сразу несколько слоёв: состояние подписки, доступ к продукту, финансовый учёт, коммуникацию с пользователем. Ошибки в нём обнаруживаются поздно — когда уже есть потери или жалобы.
Большинство проблем решаются на этапе проектирования: заранее определите длительность grace для каждого типа клиентов, выберите стратегию доступа, выстройте цепочку уведомлений и согласуйте с бухгалтерией, как считать выручку при задержке платежа.
Если ваш бизнес принимает рублёвые платежи через СБП и вы сталкиваетесь с отказами на стороне провайдера — стоит посмотреть на платформы с каскадной маршрутизацией. MultiFlow подключает мерчанта к пулу платёжных провайдеров: при отказе одного платёж автоматически уходит к следующему, что снижает потери конверсии и уменьшает число клиентов, которые «уходят» из-за технического сбоя, а не из-за реального нежелания платить. Вывод средств доступен в том числе в USDT.
Материал подготовлен с помощью ИИ на основе публикации habr.com.
Без российского счёта, без серых схем — только официальная инфраструктура.
Написать в Telegram →