Платёжные интеграции
Подключение выполняется в панели: Продажи → Платёжки и валюты → Ключи и настройки. Модули работают с покупкой и продлением тарифа, а также с отдельными докупками трафика и устройств в Telegram-боте и Mini App.
- Создайте и активируйте кассу у выбранного провайдера.
- Внесите её реквизиты в форму модуля и сохраните.
- Скопируйте адрес HTTP-уведомлений из формы и укажите его в кабинете провайдера. Адрес должен быть доступен извне по HTTPS:
https://panel.example.com/api/pay/webhook/ID_МОДУЛЯ. - Включите модуль и нужную поддерживаемую валюту. Цены тарифов и докупок задаются отдельно в разделе «Тарифы».
- Проведите собственный контрольный платёж с реквизитами вашей кассы. Подключение и начисления проверены на изолированных счетах и имитации 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, сумма и валюта. Поздний статус ожидания не отменяет уже подтверждённую оплату; старое успешное уведомление не восстанавливает возвращённый платёж.
Подтверждённый провайдером возврат снимает лимиты соответствующей докупки, но не завершает всю подписку клиента. Возврат оплаты самого тарифа фиксируется в учёте, решение о доступе остаётся за администратором. Партнёрское начисление корректируется. Кнопка «Возврат» в панели регистрирует уже выполненный возврат; деньги нужно возвращать в кабинете провайдера.
Новые модули добавляются отключёнными. Установка обновления не создаёт кассы и не подставляет владельцу тестовые ключи.