Разовая оплата выдана за привязку карты
Первый платёж прошёл, но токен карты не сохранён и согласие на рекуррент не получено. Через месяц списание отклоняется, а клиента приходится просить оплатить заново.
Выберите тему — соберём контекст
Собираем платёжный контур подписки: привязка карты без списания, автоматические платежи по расписанию, ретраи по кодам отказов, письма и льготный доступ вместо мгновенной блокировки, чеки по 54-ФЗ и ежедневная сверка.
Или сразу: +7 (962) 368-39-51 Telegram
Основные потери в подписочной модели происходят не на этапе продажи, а в платежах и учёте после неё.
Первый платёж прошёл, но токен карты не сохранён и согласие на рекуррент не получено. Через месяц списание отклоняется, а клиента приходится просить оплатить заново.
Запрос к эквайрингу ушёл в таймаут, обработчик повторил вызов, и клиент получил два платежа за один период. Дальше — возврат, письмо и подорванное доверие.
Письмо об ошибке не отправляется, доступ отключается молча, и клиент выясняет это при попытке войти — уже раздражённым и с мыслью сменить сервис.
Обработчик не проверяет подпись и не хранит идентификаторы событий, поэтому статус подписки расходится с данными эквайринга, а отменённые платежи возвращаются в активные.
Чек пробит на одну сумму, акт сформирован на другую, часть автосписаний вообще осталась без чека. Бухгалтерия ищет расхождения вручную и находит не все.
Клиент нажал «Отменить», но плановая задача уже была поставлена, и следующее списание проходит. Возврат, обращение в банк и чарджбек вместо простого расторжения.
Работаем с любым эквайрингом, у которого есть токенизация и рекуррентные списания, включая российские банки и платёжные агрегаторы.
Состояния подписки описаны явно, а не выводятся из даты последнего платежа.
Платёж либо проходит ровно один раз, либо его отсутствие объяснимо.
Восстановление неудачного платежа обычно дешевле привлечения нового клиента в разы.
Финансовая часть, из-за которой подписка чаще всего расходится с бухгалтерией.
От модели тарифа до ежедневной сверки — один контур, который можно передать бухгалтерии и поддержке.
Фиксируем тарифы, периоды, правила смены и отмены, порядок возвратов. Подбираем эквайринг с токенизацией и рекуррентными списаниями, разбираем его тарифы, лимиты и требования к договору.
Реализуем привязку карты, расписание списаний, обработку вебхуков с проверкой подписи, защиту от дублей и журнал операций. Настраиваем отмену так, чтобы она отменяла и уже запланированное списание.
Настраиваем сценарии восстановления: шаги ретраев, письма, льготный период, реактивацию. Проверяем на тестовых картах с разными кодами отказов, включая истёкшую карту и запрет рекуррента.
Подключаем ОФД и логику 54-ФЗ, формируем акты и реестры, делаем ежедневную сверку с эквайрингом и дашборд по MRR, churn и доле неудачных платежей.
Первое списание почти всегда инициирует клиент: он вводит данные карты на стороне платёжной страницы банка или в платёжном виджете. Эквайринг возвращает токен — идентификатор, привязанный к карте, — и именно токен хранится у вас. Сами данные карты на ваш сервер не попадают, что позволяет оставаться в рамках минимального объёма требований PCI DSS (SAQ-A).
Дальше всё зависит от расписания. Плановая задача выбирает подписки, у которых наступила дата платежа, и отправляет в эквайринг запрос на списание по токену. У каждой операции должен быть ключ идемпотентности: если ответ не пришёл из-за таймаута, повтор с тем же ключом не создаст второй платёж, а вернёт результат первой операции. Результат подтверждается вебхуком, который обязательно проверяется по подписи, а идентификатор события сохраняется, чтобы повторная доставка не изменила состояние дважды.
Отказы делятся на три группы. Технические — таймаут, недоступность эквайринга: их лечит повтор через несколько минут. Пользовательские — недостаточно средств на карте, истёк срок действия: нужен перенос попытки на дату после предполагаемого зачисления и письмо с предложением обновить карту. Запретительные — банк не разрешает рекуррентные списания или клиент отозвал согласие: повторять бессмысленно, нужен другой способ оплаты.
Ключевой момент — одинаково ли реагирует система на все три случая. Если ретраи выполняются по одному расписанию для всех кодов ошибок, компания теряет восстановимые платежи и одновременно тратит попытки на безнадёжные. Поэтому расписание мы всегда строим по коду отказа, а не по общему счётчику попыток.
При автоматическом списании чек нужно сформировать в момент расчёта, то есть на каждое успешное списание, а не одним чеком за месяц. Технически это означает, что после подтверждения платежа система передаёт данные в ОФД: сумму, признак расчёта, предмет расчёта, данные клиента для отправки электронного чека, а при необходимости — признак агента.
Отдельного внимания требуют возвраты и корректировки: при возврате формируется чек возврата прихода, при изменении стоимости уже оказанной услуги — чек коррекции. Если клиент — юридическое лицо и оплачивает по счёту, у него свои требования к закрывающим документам: акт и реестр платежей за период. Наш стандартный результат работы — не только работающая логика списаний, но и отчёт о сверке, по которому бухгалтерия видит, что чеки, платежи и акты сходятся.
Нет, и мы так не делаем. Карта вводится на стороне эквайринга или в его виджете, вы получаете и храните только токен. Это снижает объём требований PCI DSS до минимального уровня и снимает большую часть ответственности за утечку платёжных данных. Если у вас уже есть собственная форма ввода карты, это отдельный проект с существенно более строгими требованиями.
Типовая схема: попытка в дату платежа, затем через сутки, через три дня и через неделю — всего до четырёх-пяти обращений с разными текстами писем. Доступ при этом не отключается сразу: обычно даётся льготный период от трёх до четырнадцати дней в зависимости от ценности клиента и типа тарифа. Полное отключение после исчерпания попыток с сохранением данных и возможности возобновления в один клик.
Мы ведём журнал операций, чтобы на запрос банка можно было предоставить доказательства: идентификатор операции, время, IP инициатора, факт предоставления доступа и историю входов клиента. По возвратам действует правило обратного пересчёта: возврат уменьшает выручку того периода, к которому относится платёж, а не текущего, иначе отчётность перестаёт сходиться с бухгалтерской.
Каждый день подписки относится к своему периоду, поэтому при смене тарифа выручка делится пропорционально дням, а не переносится целиком. MRR считаем по состоянию на конец дня: сумма нормализованных к месяцу активных подписок. Churn считаем по клиентам и по выручке отдельно — они расходятся, когда уходят мелкие клиенты или, наоборот, один крупный. Для управленческих решений полезнее второй показатель.
Смежные задачи, которые обычно решаются в одном проекте с этой.
Расскажите о тарифах, эквайринге и объёме платежей — предложим схему списаний и план работ.
Cookie и аналитика
Мы используем необходимые cookie для работы сайта и форм. Аналитические cookie (Яндекс.Метрика, включая запись сессий) подключаем только с вашего согласия — от него можно отказаться. Подробнее: Политика использования cookie и обработка персональных данных.