П Платёжка Документация

Автосписания

Автосписание — платёж без участия покупателя: абонемент, подписка, регулярная оплата услуги. Покупатель один раз платит по СБП и в приложении банка соглашается привязать счёт; дальше вы списываете деньги запросом с сервера.

Как включить. В кабинете: Интеграция → Платёжная страница → «Разрешить автосписания по СБП». Тестовый и боевой магазины включаются отдельно. Пока галочка снята, запросы с save_payment_method и payment_method_id отвечают 403 recurring_disabled.

Ограничения. Способ оплаты сохраняется только при оплате по СБП. Автосписания с карты пока не поддерживаются.

Шаг 1. Первый платёж с сохранением способа

Создайте платёж с save_payment_method: true и идентификатором покупателя в customer.id. Покупатель попадает на страницу с QR СБП (карта для такого платежа не предлагается), платит и подтверждает привязку счёта в приложении банка.

curl -X POST https://platezhka.online/api/v1/payments \\
  -H "Authorization: Bearer sk_test_XXXX" -H "Idempotency-Key: sub-305-first" -H "Content-Type: application/json" \\
  -d '{"amount": 250000, "order_id": "sub-305-2026-10", "description": "Абонемент, октябрь",
       "save_payment_method": true, "customer": {"id": "client-305", "email": "player@example.com"},
       "return_url": "https://club.example/subscriptions/305"}'

После оплаты приходят два события: payment_method.saved с объектом способа оплаты и payment.succeeded, где способ указан в поле payment_method. Сохраните payment_method.id у себя рядом с покупателем.

{
  "id": "pm_5cDeFgHiJkLmNoPqRsTuVw",
  "object": "payment_method",
  "type": "sbp",
  "status": "active",
  "title": "СБП",
  "test": true,
  "customer_id": "client-305",
  "first_payment_id": "pay_3kZ1x9QmT0aBcDeFgHiJkL",
  "created_at": "2026-10-05T12:05:00+03:00"
}

Покупатель может оплатить, но отказаться от привязки. Тогда платёж будет успешным, а события payment_method.saved и поля payment_method не будет: предложите привязать счёт при следующей оплате. Событие payment_method.saved может прийти на несколько минут позже payment.succeeded.

Шаг 2. Списание без участия покупателя

Создайте платёж с payment_method_id. Страница оплаты не нужна: ответ уже содержит результат.

curl -X POST https://platezhka.online/api/v1/payments \\
  -H "Authorization: Bearer sk_test_XXXX" -H "Idempotency-Key: sub-305-2026-11" -H "Content-Type: application/json" \\
  -d '{"amount": 250000, "order_id": "sub-305-2026-11", "description": "Абонемент, ноябрь",
       "payment_method_id": "pm_5cDeFgHiJkLmNoPqRsTuVw"}'
status в ответеЧто это значит
succeededДеньги списаны. Придёт payment.succeeded и чек.
canceledСписание не прошло: cancel_reason = charge_failed, причина в decline.message. Повторять тот же платёж нельзя — создайте новый или попросите покупателя оплатить обычным способом.
pendingБанк ещё не ответил. Результат придёт вебхуком; не создавайте второй платёж за тот же период.

График и суммы списаний ведёте вы: мы не списываем сами по расписанию. Обязательно передавайте Idempotency-Key (например, номер подписки и период), чтобы повтор запроса не списал деньги дважды. Контакт для чека берётся из первого платежа, если не передан customer.

Управление способами оплаты

ПолеТипОписание
idstringИдентификатор способа оплаты, pm_…
objectstringВсегда payment_method
typestringТип способа оплаты: sbp
statusstringactive — можно списывать, inactive — отключён: active inactive
titlestringНазвание для показа покупателю
testbooleantrue для способа оплаты тестового магазина
customer_idstringПокупатель в вашей системе (customer.id первого платежа)
first_payment_idstringПлатёж, при котором способ сохранён
last_used_atdatetimeПоследнее списание
created_atdatetimeВремя сохранения
  • GET /payment_methods?customer_id=client-305 — способы оплаты покупателя.
  • GET /payment_methods/{id} — один способ.
  • DELETE /payment_methods/{id} — отключить: списаний по нему больше не будет (status = inactive). Саму привязку счёта покупатель снимает в приложении своего банка.

Дайте покупателю в своём интерфейсе понятный способ отменить подписку и вызывайте при этом DELETE.

Как проверить

В тестовом магазине создайте платёж с save_payment_method: true, откройте payment_url и под QR в виджете нажмите «Оплата с привязкой (158)». Затем создайте платёж с полученным payment_method_id. Сценарий «Оплата без привязки (1581)» проверяет отказ покупателя от привязки.