Subforma

Помощь

Справочный центр Subforma

Пошаговые инструкции для продавца: от первой настройки до интеграций и решения проблем. Без маркетинга — только «как сделать».

Что нового

  • AI-помощник формы (Gemini Flash)2026-08

    Опишите подписку текстом или приложите картинку — бесплатная модель заполнит тексты, стиль, поля и выдачу в конструкторе.

  • Интерактивное демо на главной2026-08

    На лендинге — пошаговый интерактив: кабинет, форма на сайте, оплата, выдача доступа и автоплатежи.

  • Сценарии после оплаты2026-08

    Визуальный конструктор цепочек: redirect, email, Telegram, webhook, GetCourse, amoCRM.

  • Интеграции в кабинете2026-08

    Email (Unisender Go, SendPulse), Telegram, MAX, VK, amoCRM, Bitrix24, GetCourse, Prodamus.

  • Ссылка /pay/ и popup-виджет2026-08

    Короткая страница оплаты и скрипт для Tilda, WordPress и других CMS без iframe.

  • Скидка и промокод на плане2026-08

    Процент или сумма на первое списание, промокод с галочкой «только для новых».

  • Кабинет подписчика2026-08

    Клиент открывает ссылку из письма, видит статус и отписывается без пароля.

Разделы

Оглавление

Как запустить первую подписку за 15 минут

Регистрация → ЮKassa → продукт → форма → первая оплата.

Эта инструкция проведёт вас от пустого аккаунта до первой успешной оплаты. Каждый шаг — в кабинете продавца на /cabinet. На главной странице сайта есть интерактивное демо (блок «Посмотрите путь покупателя») — можно заранее посмотреть все этапы без регистрации.

  1. 1Зарегистрируйтесь на Subforma: /register. Укажите email и пароль — это ваш вход в кабинет продавца.
  2. 2Подключите ЮKassa: Кабинет → Настройки. Вставьте shopId и секретный ключ из личного кабинета ЮKassa. В ЮKassa включите автоплатежи (рекуррент) и HTTP-уведомления на URL из подсказки на странице (события payment.succeeded, payment.waiting_for_capture, payment.canceled).
  3. 3Создайте продукт: Кабинет → Продукты → «Добавить продукт». Название — то, что увидит покупатель (например «Клуб на месяц»).
  4. 4Добавьте план: в карточке продукта — «Добавить план». Задайте цену, интервал списания (месяц, неделя и т.д.) и при необходимости пробные дни.
  5. 5Создайте форму: Кабинет → Формы → «Новая форма». Выберите план, настройте заголовок, картинку и каналы выдачи (экран, email, Telegram) во вкладке «Выдача».
  6. 6Вставьте на сайт: во вкладке «Вставка» скопируйте iframe, ссылку /pay/…, popup-виджет или form POST для Tilda.
  7. 7Проверьте оплату: пройдите форму с тестовой картой ЮKassa. После успеха вы увидите подписчика в Кабинет → Подписчики, а покупатель — страницу успеха с доступом.
Тестовый режим ЮKassa: используйте тестовые ключи и карты из документации ЮKassa. В кабинете Subforma отдельный переключатель теста не нужен — работает тот магазин, чьи ключи вы указали.

Как подключить ЮKassa и включить автоплатежи

Ключи, вебхук, рекуррент и что происходит при первой оплате.

Subforma принимает платежи только через ЮKassa. Карточные данные собирает ЮKassa — мы их не храним.

  1. 1В личном кабинете ЮKassa создайте магазин или откройте существующий.
  2. 2Скопируйте shopId и секретный ключ (live или test).
  3. 3Subforma → Настройки → вставьте ключи и сохраните.
  4. 4В ЮKassa → Интеграция → HTTP-уведомления укажите URL: APP_URL/api/webhooks/yookassa (точный адрес показан в настройках).
  5. 5Включите события: payment.succeeded, payment.waiting_for_capture, payment.canceled.
  6. 6В настройках магазина ЮKassa включите сохранение способа оплаты / автоплатежи — без этого рекуррент не заработает.

Как работает первая оплата

  1. 1Покупатель заполняет форму Subforma и нажимает «Оплатить».
  2. 2Открывается виджет ЮKassa — карта вводится там.
  3. 3Если триала нет — сразу списывается сумма (с учётом скидки, если задана). Карта сохраняется для следующих списаний.
  4. 4Если есть триал — карта привязывается (обычно через hold 1 ₽), списание откладывается на конец пробного периода.
  5. 5После успеха покупатель попадает на страницу успеха, подписка активируется, доступ выдаётся.

Автоплатежи (рекуррент)

Subforma сам создаёт следующие платежи по расписанию плана. Worker раз в минуту проверяет подписки, у которых наступила дата списания, и инициирует платёж в ЮKassa по сохранённой карте. При неудаче статус подписки меняется на past_due — см. FAQ.

Как создать продукт и план подписки

Интервалы, триал, скидка новым и промокод.

Продукт — то, что вы продаёте (курс, клуб, доступ). План — цена и период списания. У одного продукта может быть несколько планов (например «Месяц» и «Год»).

  1. 1Кабинет → Продукты → «Добавить продукт» или откройте существующий.
  2. 2В блоке Планы нажмите «Добавить план».
  3. 3Укажите название плана, сумму в рублях и интервал списания: раз в день, неделю, месяц, 3 месяца, полгода или год.
  4. 4Поле Пробных дней: 0 — без триала, иначе карта привязывается сразу, первое списание — после триала.
  5. 5Сохраните. План появится при создании формы.

Интервалы списания

После успешной оплаты следующая дата считается от момента списания: +1 день, +7 дней, +1 / +3 / +6 месяцев или +1 год. Покупатель видит период на форме, в письмах и в кабинете подписки.

Скидка и промокод на плане

  1. 1Где задать. Кабинет → Продукты → карточка продукта. При добавлении или изменении плана — блоки «Скидка новым» и «Промокод».
  2. 2Скидка новым. Процент или сумма в рублях на первое списание. Новый покупатель — email, у которого ещё не было подписки (кроме незавершённой оплаты). На форме он видит зачёркнутую полную цену.
  3. 3Промокод. Один код на план. Можно задать свой размер скидки или использовать скидку для новых. Галочка «только для новых» ограничивает применение. Покупатель вводит код на форме и нажимает «Применить».
  4. 4Первое vs повторное. Без триала ЮKassa сразу списывает сумму со скидкой. С триалом сначала привязка карты; скидка — на первое реальное списание после триала. Все следующие рекуррентные платежи — полная цена плана.

Как собрать форму подписки в конструкторе

Картинка, поля, оферта, стиль и выдача доступа.

  1. 1Кабинет → Формы → откройте форму. Слева конструктор, справа живое превью — оно совпадает с тем, что видит покупатель.
  2. 2AI-помощник (Gemini Flash). Вверху конструктора опишите продукт текстом и при желании приложите скриншот или обложку. Нажмите «Заполнить с AI» — сервис подставит заголовки, цвета, поля и тексты выдачи. Проверьте результат и сохраните форму. На сервере нужен бесплатный GEMINI_API_KEY из Google AI Studio.
  3. 3Картинка. Блок «Картинка» → загрузите обложку (JPEG, PNG, WebP или GIF, до 10 МБ). Логотип бренда — отдельно во вкладке «Стиль».
  4. 4Тексты. Заголовок и описание. Если пусто — подставим название продукта, план и цену. Текст кнопки можно задать отдельно.
  5. 5Поля. Email всегда. Добавьте имя, телефон, Telegram или своё поле: строка, многострочный текст, телефон, список. Порядок — стрелками или перетаскиванием.
  6. 6Оферта. Вставьте ссылку на документ (https://…). На форме появится обязательный чекбокс; слово «оферта» откроет ссылку в новой вкладке.
  7. 7Стиль. Вкладка «Стиль»: цвета, шрифт, радиус, логотип — отдельно для каждой формы.
  8. 8Выдача. Вкладка «Выдача»: что показать на экране успеха, текст письма и Telegram. Переменные: {{name}}, {{email}}, {{access}}, {{account_url}} и др.
  9. 9Нажмите «Сохранить форму», затем откройте вкладку «Iframe» для кода вставки.
Ответы на свои поля смотрите в карточке подписчика: Кабинет → Подписчики → открыть клиента.

Как вставить форму на сайт: iframe, /pay/, виджет

Четыре способа разместить оплату — выберите под ваш CMS.

Во вкладке «Вставка» формы вы найдёте все варианты. Стили формы не зависят от CSS вашего сайта.

1. Iframe (универсально)

Вставьте HTML-код iframe на страницу. Подходит для своего сайта, WordPress (блок HTML), части конструкторов. Минимальная высота — 640px, атрибут allow="payment" обязателен.

<iframe src="https://ваш-домен/embed/КОД_ФОРМЫ" style="border:0;width:100%;min-height:640px" allow="payment" title="Оплата подписки"></iframe>

2. Ссылка /pay/ (страница оплаты)

Короткий URL ведёт на полноценную страницу checkout на домене Subforma. Удобно для кнопок, Taplink, постов VK, email-рассылок. Можно задать короткий slug формы — тогда ссылка будет /pay/мой-курс вместо длинного ID.

Prefill: добавьте параметры ?email=…&name=… — поля формы заполнятся автоматически.

3. Popup-виджет (скрипт)

Скрипт открывает форму поверх страницы — покупатель не уходит с сайта. Подключите скрипт и повесьте на кнопку атрибут data-subforma:

<script src="https://ваш-домен/api/widget.js" data-form="КОД_ФОРМЫ"></script>
<button type="button" data-subforma="КОД_ФОРМЫ">Оплатить</button>
В JavaScript доступен Subforma.open('КОД_ФОРМЫ') — можно вызывать из своего кода.

4. Tilda и другие CMS

На Tilda iframe часто блокируется — используйте ссылку /pay/, popup-виджет или форму POST (сразу на ЮKassa без iframe). Подробные сниппеты для Tilda, WordPress, Bitrix24, Wix и др. — в статье «CMS без iframe».

Как подключить CMS без iframe

Tilda, WordPress, Bitrix24, Wix — когда iframe не работает.

Многие конструкторы сайтов блокируют или обрезают iframe с оплатой: Tilda, Wix, Taplink, GetCourse, Prodamus-витрины, MAX и др. Subforma предлагает три альтернативы: ссылка /pay/, popup-виджет и форма POST.

Готовые сниппеты для каждой CMS — Кабинет → Интеграции → CMS и конструкторы сайтов (/cabinet/integrations#cms). Там выбор формы, платформы и кнопка «Копировать код».

Ссылка /pay/ — самый простой способ

  1. 1Скопируйте ссылку /pay/… во вкладке «Вставка» формы или в Интеграции → CMS.
  2. 2Tilda: блок кнопки T123 или Zero Block → href на /pay/….
  3. 3WordPress: блок «Кнопка», шорткод [subforma form="КОД"] или HTML <a href>.
  4. 4Wix, Taplink, VK: вставьте URL — откроется страница оплаты Subforma.
  5. 5Prefill: ?email=…&name=… — поля формы заполнятся сами.

Popup-виджет

Добавьте HTML-блок со скриптом api/widget.js и кнопкой data-subforma. Checkout откроется в модальном окне поверх страницы. Работает на Tilda (Zero Block), Flexbe, Creatium, Nethouse, WordPress.

Form POST — сразу на ЮKassa

Если нужен минимальный UI — форма отправляет POST на /api/checkout/start-public с publicId и email. Покупатель сразу перенаправляется на страницу оплаты ЮKassa, минуя форму Subforma. Подходит для Tilda Zero Block, GetCourse и лендингов с уже известным email.

<form action="https://ваш-домен/api/checkout/start-public" method="POST">
  <input type="hidden" name="publicId" value="КОД_ФОРМЫ">
  <input type="email" name="email" required placeholder="Email">
  <input type="text" name="name" placeholder="Имя">
  <button type="submit">Оплатить</button>
</form>

Tilda — пошагово

  1. 1Кнопка-ссылка: Кабинет → Формы → «Вставка» → скопируйте /pay/…. В Tilda: Zero Block или T123 → кнопка → ссылка.
  2. 2Popup: Zero Block → HTML → вставьте <script src="…/api/widget.js" data-form="КОД"> и <button data-subforma="КОД">.
  3. 3Form POST: Zero Block → HTML → форма с action="…/api/checkout/start-public", hidden publicId, поле email. Покупатель сразу на ЮKassa.
  4. 4Iframe на Tilda часто не работает — если блок пустой, переходите на ссылку или popup.
Готовые сниппеты для Tilda, WordPress, Bitrix24, Wix, Shopify, GetCourse и др. — в Интеграции → CMS с кнопкой копирования.

Как настроить сценарии после оплаты

Визуальный конструктор: redirect, письмо, Telegram, webhook, GetCourse, CRM.

Сценарии — это цепочки действий, которые выполняются после успешной оплаты. У каждой формы свой сценарий.

  1. 1Кабинет → Сценарии → выберите форму.
  2. 2На холсте перетащите блоки из палитры слева и соедините их стрелками от триггера «Оплата успешна».
  3. 3Redirect — перенаправить покупателя на ваш URL (например страницу «Спасибо» на своём домене).
  4. 4Показать на экране — дополнительный текст на странице успеха (поддерживает переменные {{access}}, {{account_url}}).
  5. 5Email — письмо через подключённый email-провайдер.
  6. 6Telegram — сообщение в бот.
  7. 7Webhook — POST на ваш URL с данными подписки.
  8. 8Задержка — пауза N минут перед следующим шагом.
  9. 9Условие — ветка «если триал» или «если первое списание».
  10. 10GetCourse / CRM — добавить пользователя в GetCourse или лид в amoCRM.
  11. 11Включите сценарий переключателем и сохраните.
Базовая выдача доступа (экран, email, Telegram) настраивается во вкладке «Выдача» формы. Сценарии дополняют её — не заменяют.

Как подключить интеграции: email, Telegram, CRM, GetCourse

Каналы выдачи доступа и события при оплате.

Кабинет → Интеграции. Подключение сервисов — здесь; выбор каналов для конкретной формы — во вкладке «Выдача» формы.

Email

  • Unisender Go — полностью поддерживается. API-ключ, From email и From name.
  • SendPulse — альтернативный провайдер. Выберите активный провайдер на вкладке Email.
  • UniOne, DashaMail, Sendsay, Mailganer — скоро.

Мессенджеры

  • Telegram — токен бота в Настройках или Интеграциях. Webhook бота ставится автоматически на APP_URL. Покупатель получает доступ через /start.
  • MAX (VK) — beta. Токен и webhook для исходящих событий.
  • VK Сообщества — beta. Ключ доступа и ID сообщества.
  • WhatsApp Business — beta через партнёров 360dialog / YCloud.

CRM

  • amoCRM — поддомен и access token. Сделка при subscription.created / payment.succeeded.
  • Bitrix24 — inbound webhook URL.
  • RetailCRM — URL и API key.
  • Мегаплан, EnvyCRM — скоро (webhook).

Платформы обучения

  • GetCourse — имя аккаунта и secret key. Пользователь создаётся/обновляется после payment.succeeded.
  • Prodamus — beta. Shop ID и secret key для синхронизации.
Unisender Go и Telegram настраиваются в Интеграции (/cabinet/integrations). В Настройках остаются только ЮKassa и название магазина.

Как настроить вебхуки в ваш сервис

События подписок, подпись HMAC-SHA256, тест и повтор.

Вебхуки отправляют JSON-события на ваш URL при изменении подписок и платежей. Настройка: Кабинет → Вебхуки.

  1. 1Нажмите «Добавить endpoint», укажите https://… URL вашего сервера.
  2. 2Отметьте нужные события: subscription.created, subscription.renewed, subscription.past_due, subscription.paused, subscription.canceled, payment.succeeded, payment.failed.
  3. 3Сохраните. Subforma покажет секрет — храните его на сервере.
  4. 4Проверьте кнопкой «Тест». В таблице доставок видны код ответа и ошибки.
  5. 5При ошибке — «Повторить» для конкретной доставки.

Проверка подписи

Каждый запрос содержит заголовок X-Webhook-Signature. Подпись = HMAC-SHA256 от строки {timestamp}.{rawBody} с вашим секретом. Проверяйте подпись на сервере — так вы убедитесь, что запрос от Subforma.

Не путайте с вебхуком ЮKassa (/api/webhooks/yookassa) — тот принимает уведомления от платёжной системы. Вебхуки продавца — исходящие события из Subforma в ваш сервис.

Как клиент управляет подпиской и отписывается

Кабинет подписчика, ссылки из писем и самостоятельная отписка.

  1. 1После оплаты в письме, Telegram и на экране успеха есть ссылка в кабинет: /account/ТОКЕН. Старые ссылки /unsubscribe/… ведут туда же. Можно открыть /account?t=ТОКЕН.
  2. 2Клиент видит продукт, сумму, период и статус. Нажимает «Отписаться» и подтверждает. Обычно доступ остаётся до конца оплаченного периода («отписка с даты X»). Если оплата просрочена — отмена сразу.
  3. 3Если ссылка потерялась: страница /account — введите email и код формы из адреса оплаты /embed/КОД или /pay/КОД. Письмо уйдёт, если подключён email-провайдер.
  4. 4Вам: в карточке подписчика кнопка «Кабинет клиента» копирует ту же ссылку. В шаблонах выдачи доступны {{account_url}} и {{unsubscribe_url}}.
Кабинет подписчика — не ваш кабинет продавца. Клиенту не нужен пароль Subforma.

Как работают страница успеха и проверка pending-платежей

Что видит покупатель после оплаты и что делает крон, если вебхук задержался.

Страница успеха

  1. 1Покупатель попадает на /embed/…/success?sid=… — текст доступа из формы и ссылка «Получить доступ в Telegram», если бот подключён.
  2. 2Если оплата была в iframe или popup-виджете — после подтверждения ЮKassa перенаправит сюда же.
  3. 3Текст success-экрана настраивается во вкладке «Выдача» формы или блоком «Показать на экране» в сценарии.

Если вебхук ЮKassa задержался

ЮKassa обычно присылает HTTP-уведомление сразу. На случай задержки раз в минуту worker вызывает /api/cron/renew: крон продлевает подписки и сверяет платежи pending / waiting_for_capture за последние 48 часов с ЮKassa (не больше 40 за тик). Когда статус succeeded или trialing — подписка активна, доступ выдаётся, страница успеха это показывает.

Покупателю не нужно ждать — после оплаты в виджете он сразу видит success-экран. Крон подстраховывает активацию подписки на backend.

Частые вопросы

Оплата не прошла, past_due, чеки 54-ФЗ, отличие от Ainox.

Оплата не прошла / покупатель видит ошибку

  • Проверьте ключи ЮKassa в Настройках — test vs live должны совпадать с режимом карты.
  • Убедитесь, что HTTP-уведомления ЮKassa включены и URL доступен по HTTPS.
  • Посмотрите подписчика в кабинете — статус платежа и текст ошибки от ЮKassa.
  • Если деньги списались, а доступ не выдался — подождите 1–2 минуты (крон) или напишите в /support.

Статус past_due — что это?

Автоплатёж не прошёл (недостаточно средств, карта просрочена, банк отклонил). Subforma повторяет попытки по расписанию. Покупатель может обновить карту, оформив новую подписку, или вы вручную инициируете списание в карточке подписчика. После длительного past_due подписка может быть отменена.

Чеки 54-ФЗ

Фискализацию обеспечивает ЮKassa — чеки формируются на стороне эквайринга согласно вашим настройкам в личном кабинете ЮKassa. Subforma передаёт сумму и описание платежа; параметры чека (НДС, предмет расчёта) настраиваются в ЮKassa.

Чем Subforma отличается от Ainox?

  • Subforma — биллинг подписок на ЮKassa: формы, рекуррент, выдача доступа, кабинет подписчика. Вы управляете продуктами и формами сами.
  • Ainox — платформа автоматизации и CRM для инфобизнеса с другой моделью тарифов и экосистемой.
  • Subforma можно использовать как платёжный и подписочный слой поверх своего сайта, Telegram и GetCourse — без привязки к одной экосистеме.

Кабинет продавца и админка платформы — в чём разница

Два разных входа: ваш магазин и внутренний инструмент Subforma.

  • Кабинет продавца (/cabinet) — ваш магазин. Вход по email и паролю, которые вы задали при регистрации. Продукты, формы, подписчики, вебхуки, ключи ЮKassa.
  • Админка платформы — внутренний кабинет оператора Subforma (основатель / поддержка): все продавцы, доступы, статистика и debug платежей. Это не ваш кабинет и не кабинет подписчика.
  • Вход оператора — страница /admin/login. Логин и пароль задаются на сервере переменными ADMIN_EMAIL и ADMIN_PASSWORD. Пароль в интерфейсе и в этой справке не публикуется. Сессия админки — отдельная cookie.
  • Если кабинет продавца не пускает — оператор мог отключить аккаунт. Напишите в /support.

Форма поддержки на сайте

Как написать в поддержку Subforma и что указать в обращении.

  1. 1Где найти. Страница /support или блок «Поддержка» на главной. Ссылка также в подвале сайта.
  2. 2Что указать. Имя, email для ответа, тему (оплата, техническая, другое) и текст вопроса. Если вы продавец — необязательно укажите email аккаунта магазина: так быстрее найдём ваш кабинет.
  3. 3После отправки. Появится подтверждение: мы ответим на email в течение одного рабочего дня. Обращение сохраняется в админке платформы — это не чат в кабинете продавца.

Не нашли ответ?

Напишите в поддержку — ответим на email в течение рабочего дня.

Связаться с поддержкой