Когда впервые задумываются о приёме платежей за подписку и необходимости списания денег каждый месяц, решение кажется очевидным - надо подключить рекуррентные платежи. Открывается документация платёжной системы, там написано «автоматическое повторное списание» и «уведомления клиентам» и кажется, что это, то что нужно.
Через несколько месяцев выясняется, что MRR непонятно как считать, смена тарифа клиентом требует ручного вмешательства, а юридическое лицо, которое хочет платить по счёту раз в квартал, превращается в отдельный квест.
Проблемы начинаются не из-за рекуррентных платежей, а когда от них начинают ожидать задач, для которых они не предназначены.

Что на самом деле делает рекуррентный платёж?
Чтобы понять разницу, стоит посмотреть на то, что происходит под капотом у платёжной системы, когда включается «подписка».
При первой оплате клиент вводит данные карты. Платёжная система токенизирует их, сохраняет не сам номер, а зашифрованный идентификатор. Дальше сервер говорит эквайеру: «через 30 дней спиши с этого токена 990 рублей». Эквайер это делает. Клиент получает уведомление об успешном списании, а вы получаете деньги. Расписание + токен + фиксированная сумма.
Современные платёжные системы умеют и чуть больше: настроить страницу подписки, отправить клиенту письмо при успешном или неуспешном списании, показать в личном кабинете список активных подписчиков. Это полезные надстройки, но они не меняют природу инструмента, он работает с транзакцией, а не с подпиской как сущностью.
Для определённого класса задач этого достаточно. Один тариф, фиксированная цена, клиент либо платит, либо нет и рекуррентов от эквайера хватает. Но как только модель становится чуть сложнее, начинаются вопросы, которые платёжная система в принципе не предназначена решать.
Где кончается эквайринг и начинается бизнес-логика?
Представьте, что клиент хочет сменить тариф в середине месяца с базового на расширенный. С точки зрения платёжной системы это просто разные суммы в расписании. А вот вопрос «сколько он должен доплатить за оставшиеся дни текущего периода» — это уже математика, которую никакой эквайер за вас не посчитает. Пересчёт стоимости пропорционально отработанному времени уже чистая бизнес-логика.
Или совсем другой сценарий: у вас B2B-клиент, который принципиально не платит картой. Он хочет получать счёт, подписывать акт и переводить деньги с расчётного счёта раз в квартал. Для платёжной системы такой клиент просто не существует, у неё нет механики для выставления счёта, отслеживания факта оплаты по реквизитам и привязки поступившего платежа к конкретному клиенту.
Ещё показательнее модель на основе использования, где сумма списания каждый месяц разная: сколько использовал, столько и заплатил. Телефония, облачное хранилище, API-запросы. Эквайер спишет ровно ту сумму, которую ему назовут. Но откуда берётся эта сумма, сколько минут потрачено, какие тарифные пороги применить, есть ли включенные минуты в тариф — это всё за пределами его зоны ответственности.
То же самое с триальными периодами. Эквайер умеет списать деньги через N дней. Но логика «14 дней бесплатно, потом автоматически переход на платный тариф» требует, чтобы кто-то помнил, когда истекает триал, что именно активировать после него, и что делать, если пользователь в процессе триала сменил план.
Подписка — это состояние, а не транзакция

Если рекуррентный платёж — это инструмент для проведения транзакции, то биллинговая система — это слой, который управляет жизненным циклом подписки: от момента, когда клиент выбрал тариф, до момента, когда он отменил подписку или перешёл на другой план.
Биллинг знает, кто из клиентов на каком тарифе, когда следующее списание, сколько должен с учётом скидок и промокодов, как выставить счёт юридическому лицу, как рассчитать MRR с учётом всех изменений за месяц. Это не набор функций — это единая модель данных, которая описывает состояние подписочной выручки в каждый момент времени.
Без внешнего биллинга его неизбежно начинают строить самостоятельно. Сначала появляется таблица «subscriptions». Потом «subscription_history». Потом «invoices». Потом добавляется задача в кроне, который каждую ночь проверяет, у кого истекает подписка. Потом второй — для выставления счетов юрлицам. Потом оказывается, что задачи в кроне иногда падают молча. Через эту историю прошли сотни команд и у неё есть стоимость: месяцы разработки, которые не идут в продукт, и баги в бизнес-критичном коде, которые обнаруживаются в самый неподходящий момент.
Рекуррентные платежи vs биллинг: в чём разница
Проще всего разница увидеть на конкретных задачах.
Задача | Рекуррентные платежи | Биллинговая система |
Регулярно списывать фиксированную сумму с карты | ✓ | ✓ |
Отправлять клиенту уведомление об оплате | ✓ | ✓ |
Хранить токен карты для повторных списаний | ✓ | использует эквайера |
Менять тариф клиента в середине периода | — | ✓ |
Пересчитать стоимость пропорционально дням | — | ✓ |
Выставить счёт юридическому лицу | — | ✓ |
Принять оплату банковским переводом по реквизитам | — | ✓ |
Тарифицировать по потреблению (переменная сумма) | — | ✓ |
Управлять триальными периодами | — | ✓ |
Применять индивидуальные скидки | — | ✓ |
Считать MRR, ARR, churn | — | ✓ |
Работать с несколькими тарифными планами и их версиями | — | ✓ |
Прочерки в левой колонке не означают, что рекуррентные платежи чего-то не умеют. Они умеют ровно то, для чего созданы: надёжно списывать деньги по расписанию. Всё, что происходит до и после, — уже не задача эквайера.
Откуда берётся путаница?
Платёжные системы продвигают рекуррентные платежи как решение для «подписок» и формально это верно. Рекуррент действительно обеспечивает регулярное списание, и это часть подписочной модели. Просто маленькая часть.
Слово «подписка» в контексте эквайринга означает одно, а в контексте бизнеса — другое. Для эквайера подписка — это повторяющийся платёж с фиксированными параметрами. Для команды, которая строит продукт с подписочной моделью, — это отношения с клиентом, которые включают тариф, историю изменений, биллинговый цикл, состояние триала, статус оплаты и ещё десяток атрибутов.
Есть и практическая причина путаницы: для простого старта рекуррентных платежей действительно хватает. Проблема в том, что момент, после которой их уже не хватает, сложно увидеть заранее. Она обнаруживается, когда уже обросли кастомной логикой и переехать на нормальный биллинг становится отдельным проектом.
Как понять, что рекуррентов уже мало?
Понять это довольно просто: количество исключений начинает расти быстрее, чем количество клиентов. Один клиент просит сменить тариф посреди периода, другому нужна скидка, третьему — счёт на юридическое лицо, четвёртому — временно приостановить доступ. Каждая такая ситуация требует отдельной логики, которой у рекуррентных платежей нет.
Если для изменения цены, запуска нового тарифа или внедрения новой модели оплаты приходится ставить задачу разработчикам, значит бизнес-логика подписок уже живёт внутри продукта. В этот момент эквайер продолжает исправно проводить платежи, но управлять подписочной моделью становится всё сложнее.
Граница между «хватит эквайера» и «нужен биллинг»
Потребность в биллинге определяется не размером компании и объемом транзакций, а сложностью подписочной модели. Один тариф, никаких изменений планов — рекуррентов от эквайера вполне хватит. Если есть несколько тарифов, тестовые периоды, B2B-клиенты с оплатой по счёту, хотя бы минимальная аналитика по подпискам, то вот здесь начинается территория биллинга.
Многие команды осознают потребность в нём не в момент роста выручки, а в момент роста числа исключений. Клиент просит приостановить подписку на два месяца. Менеджер договорился с корпоративным заказчиком о специальных условиях оплаты и с поквартальной оплатой на расчетный счет. Каждое такое исключение будет маленьким кирпичиком самописного биллинга, который в итоге становится непредсказуемым монолитом.
Вывод
Рекуррентные платежи и биллинг решают задачи с разным уровнем абстракции. Эквайер отвечает за то, чтобы деньги дошли от карты клиента до вашего счёта по расписанию. Биллинговая система отвечает за всё остальное: кто сколько должен, на каком тарифе, с какими скидками, в каком статусе и что с этим делать дальше.

Биллинг сам использует эквайера для проведения транзакций, они не конкурируют, а дополняют друг друга. Путаница возникает, когда инструмент проведения платежей пытаются растянуть до уровня системы управления подписками. Обычно это работает ровно до того момента, пока не появляется первый клиент с нестандартным запросом.
