1. Рекуррентные СБП-подписки
Platega.io API
  • Авторизация
  • Модули CMS
  • SDK
  • Платежи
    • Приём карт по H2H
    • Рекуррентные СБП-подписки
      • Пробный доступ и изменение суммы подписки
      • Подписки по H2H
      • Создать подписку
        POST
      • Получить подписку
        GET
      • Список подписок
        GET
      • Отменить подписку
        POST
      • Проверка возможности обновить подписку
        GET
      • Обновление подписки
        POST
    • Создание платежной ссылки без заданного метода
      POST
    • Создание платежной ссылки с заданным методом
      POST
    • Получение QR-кода для H2H-транзакции
      GET
    • Проверка статуса оплаты платежа
      GET
    • Выгрузка транзакций в CSV
      POST
    • Выгрузка транзакций в Excel
      POST
    • Выгрузка транзакций в Json
      POST
  • Балансы
    • Получение балансов
      GET
  • Возвраты
    • Проверка возможности отмены транзакции
      GET
    • Отмена транзакции
      POST
    • Частичная отмена транзакции
      POST
  • Выводы
    • Создаёт вывод на рублёвую карту через Payout API
    • Создаёт вывод на криптокошелек через Payout API
    • Получение сохранённых карт
      GET
    • Получение сохраненных криптокошельков
      GET
  • Callbacks
    • Колбэки — общая информация
    • CONFIRMED
    • CANCELED
    • CHARGEBACKED
    • PARTIALLY_REFUNDED
    • DISPUTED
  • Schemas
    • Schemas
      • PaymentStatus
      • PaymentMethodInt
      • CreateTransactionRequest
      • CreateTransactionResponse
      • TransactionStatusResponse
      • SubscriptionStatus
      • CallbackSubscriptionStatus
      • SubscriptionInterval
    • Статус платежа в колбэке
    • Результат операции возврата
    • Общие поля колбэка
    • Поля колбэка по возврату
    • CallbackPayload
    • Поля колбэка по подписке
  1. Рекуррентные СБП-подписки

Подписки по H2H

Сценарий из двух запросов: сначала создаётся подписка, затем она активируется у провайдера и плательщик подтверждает согласие на автосписания. Платёжная форма в этом сценарии не используется.

Авторизация#

Оба запроса выполняются с вашего сервера.
ЗаголовокЗначение
X-MerchantIdИдентификатор мерчанта, UUID
X-SecretСекретный ключ мерчанта
Content-Typeapplication/json
X-Secret передавать в браузер нельзя.

Шаг 1. Создать подписку#

POST /transaction/process
ПолеТипОбяз.Описание
paymentMethodnumberда6 — подписка
paymentDetails.amountnumberдаСумма регулярного списания
paymentDetails.currencystringдаКод валюты, например RUB
paymentDetails.intervalnumberдаЕдиница периода: 1 — день, 2 — неделя, 3 — месяц, 4 — год
paymentDetails.intervalCountnumberнетСколько единиц периода между списаниями, по умолчанию 1
descriptionstringнетОписание подписки
Допустимые значения intervalCount зависят от interval: для дня — от 1 до 730, для недели — от 1 до 4, для месяца — от 1 до 12, для года — от 1 до 99. Нестандартные периоды доступны только при согласованном тарифе, уточняйте у менеджера.
Поля return, failedUrl и siteLink в этом сценарии не применяются.

Пример запроса#

{
  "paymentMethod": 6,
  "paymentDetails": {
    "amount": 1000,
    "currency": "RUB",
    "interval": 3,
    "intervalCount": 1
  },
  "description": "Подписка на сервис"
}

Пример ответа, 200#

{
  "paymentMethod": "Subscription",
  "transactionId": "3f1a2b4c-5e6d-4a7b-9c8d-1e2f3a4b5c6d",
  "redirect": "https://pay.platega.io/subscription/3f1a2b4c-5e6d-4a7b-9c8d-1e2f3a4b5c6d",
  "status": "pending",
  "merchantId": "8b2f1c3a-0d4e-4f51-9a62-7c8d9e0f1a2b"
}
transactionId — идентификатор подписки, он же {id} на шаге 2. Сохраните его.
redirect — ссылка на платёжную форму. В сценарии H2H она не нужна, открывать её не требуется.
На этом шаге списание не выполняется: создаётся запись со статусом ожидания согласия. Она действительна 30 минут. Если за это время не вызвать шаг 2, подписка переходит в статус Failed.

Ошибка валидации периода, 400#

{
  "errorId": "WRONG_INPUT_PARAMETERS",
  "additionalInfo": [
    {
      "key": "paymentDetails.interval",
      "message": "Subscription requires interval: 1=daily, 2=weekly, 3=monthly, 4=yearly."
    }
  ]
}
Если неверен intervalCount, ключ в additionalInfo будет paymentDetails.intervalCount, а в сообщении — допустимый диапазон для выбранного interval.

Шаг 2. Активировать подписку#

POST /subscription/{id}/start
В пути — transactionId, полученный на шаге 1.
ПолеТипОбяз.Описание
emailstringдаЭлектронная почта плательщика, передаётся для оформления подписки

Пример запроса#

{
  "email": "customer@example.com"
}

Пример ответа, 200#

{
  "subscriptionId": "3f1a2b4c-5e6d-4a7b-9c8d-1e2f3a4b5c6d",
  "confirmationUrl": "https://example.com/confirm/xyz123"
}
confirmationUrl — страница подтверждения. Направьте плательщика на неё: там он подтверждает согласие на регулярные списания. Дальше списания выполняются по расписанию без участия мерчанта.
Повторный вызов на уже активированной подписке возвращает тот же confirmationUrl.

Нет доступных реквизитов#

Ответ приходит с кодом 200, ошибкой это не считается. Повторите попытку позже.
{
  "subscriptionId": "3f1a2b4c-5e6d-4a7b-9c8d-1e2f3a4b5c6d",
  "confirmationUrl": null,
  "error": "No available subscription cascades.",
  "allProvidersUnavailable": true
}

Подписка отменена, 400#

{
  "errorId": "WRONG_INPUT_PARAMETERS",
  "additionalInfo": [
    { "key": "subscriptionId", "message": "Subscription is cancelled" }
  ]
}

Истекло окно согласия, 400#

Шаг 2 вызван позже чем через 30 минут после шага 1. Подписка переводится в статус Failed, активировать её уже нельзя — создайте новую.
{
  "errorId": "WRONG_INPUT_PARAMETERS",
  "additionalInfo": [
    { "key": "subscriptionId", "message": "Subscription agreement window has expired" }
  ]
}
Modified at 2026-10-29 16:28:15
Previous
Пробный доступ и изменение суммы подписки
Next
Создать подписку
Built with