Содержание

Платёжные интеграции

На этой странице

Подключение выполняется в панели: Продажи → Платёжки и валюты → Ключи и настройки. Модули работают с покупкой и продлением тарифа, а также с отдельными докупками трафика и устройств в Telegram-боте и Mini App.

  1. Создайте и активируйте кассу у выбранного провайдера.
  2. Внесите её реквизиты в форму модуля и сохраните.
  3. Скопируйте адрес HTTP-уведомлений из формы и укажите его в кабинете провайдера. Адрес должен быть доступен извне по HTTPS: https://panel.example.com/api/pay/webhook/ID_МОДУЛЯ.
  4. Включите модуль и нужную поддерживаемую валюту. Цены тарифов и докупок задаются отдельно в разделе «Тарифы».
  5. Проведите собственный контрольный платёж с реквизитами вашей кассы. Подключение и начисления проверены на изолированных счетах и имитации API; реальная эквайринговая операция требует действующей кассы.

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

Модуль Поля Поддерживаемые валюты
Platega Merchant ID (UUID), API-ключ / X-Secret RUB
RollyPay API key кассы, signing_secret; необязательно payment_method RUB, EUR
ParityPay v2 ID кассы (UUID), секрет №1 для API, секрет №2 для уведомлений; необязательно service и callback_url RUB

У всех трёх модулей можно указать HTTPS-адрес возврата после оплаты: бот или клиентский сайт. Сам переход по этому адресу не подтверждает оплату. Секреты не возвращаются в браузер; пустое секретное поле при сохранении оставляет предыдущий ключ. После перезапуска сервисы загружают сохранённые реквизиты.

Platega

  • Документация: docs.platega.io.
  • API: https://app.platega.io.
  • Создание: POST /v2/transaction/process, без заданного метода — клиент выбирает его на платёжной форме. В payload передаётся локальный номер заказа sn-ID.
  • Проверка: GET /transaction/{transactionId}.
  • Callback: /api/pay/webhook/platega. Проверяются X-MerchantId и X-Secret, сумма и валюта, счёт связывается с сохранённым transactionId.
  • CONFIRMED подтверждает оплату; CHARGEBACKED фиксирует возврат. Непривязанный счёт получает ошибку, чтобы провайдер повторил уведомление после завершения создания счёта.

RollyPay

  • Быстрый старт, платежи, уведомления, авторизация.
  • API: https://rollypay.io. Заголовки X-API-Key и уникальный X-Nonce.
  • Создание: POST /api/v1/payments; order_id=sn-ID. Проверка: GET /api/v1/payments/{payment_id}.
  • Для RUB необязательный метод: sbp, card, intl_card, crypto. Пустое поле оставляет выбор форме провайдера. Для EUR модуль выбирает intl_card; минимальная сумма — 1 EUR.
  • Callback: /api/pay/webhook/rollypay. HMAC-SHA256 по X-Timestamp + "." + исходное тело, ключ signing_secret, подпись X-Signature. Допустимое отклонение времени — пять минут.
  • paid подтверждает оплату; refunded и chargeback фиксируют возврат. Уведомления с test=true не выдают реальный доступ.

ParityPay API v2

  • Полная документация, контракт OpenAPI v2.1.0, прочитан 12.09.2026.
  • API: https://api.paritypay.net. Заголовки X-ShopId и X-SecretKey (секрет №1).
  • Создание: POST /v2/invoice/create; order_id=sn-ID, срок счёта — 60 минут. Проверка: GET /v2/invoice/status?id=ID.
  • Необязательный service: sbp или card. Пустое поле оставляет выбор на форме. Адрес уведомления можно указать в панели; при пустом значении используется настройка кассы.
  • Callback: /api/pay/webhook/paritypay. HMAC-SHA256 с секретом №2 по конкатенации значений всех полей, отсортированных по имени; null — пустая строка. Подпись передаётся в X-SIGNATURE. Проверяется ID кассы.
  • Для начисления используется исходная сумма amount, а не сумма credited после комиссии.
  • PAID подтверждает оплату, REFUNDED фиксирует возврат. Интеграция относится к оплате счетов; операции вывода и автоматические регулярные списания API ParityPay не включаются.

Начисления и возвраты

Начисление выполняется в одной транзакции с фиксацией успешной оплаты. Дубликаты не продлевают подписку и не увеличивают лимиты повторно. Проверяются провайдер, внешний ID, сумма и валюта. Поздний статус ожидания не отменяет уже подтверждённую оплату; старое успешное уведомление не восстанавливает возвращённый платёж.

Подтверждённый провайдером возврат снимает лимиты соответствующей докупки, но не завершает всю подписку клиента. Возврат оплаты самого тарифа фиксируется в учёте, решение о доступе остаётся за администратором. Партнёрское начисление корректируется. Кнопка «Возврат» в панели регистрирует уже выполненный возврат; деньги нужно возвращать в кабинете провайдера.

Новые модули добавляются отключёнными. Установка обновления не создаёт кассы и не подставляет владельцу тестовые ключи.

Поиск по документации

СодержаниеВсе категории