Подписки и возвраты
Условные возможности, которые зависят от способов оплаты и провайдера проекта.
Подписки и возвраты входят в общий API, но не гарантированы для каждого проекта. Возможность определяется способом оплаты и провайдером, назначенным проекту. Это проверяется при запросе, а не обещается заранее для всей платформы.
Подписки
Подписка нужна для регулярных списаний по сохранённому способу. При создании передаётся providerMethodRef — идентификатор, который вернул провайдер после первой оплаты. Это не номер карты и не токен, который Plateshka может раскрыть.
{
"amount": { "amount": "99000", "currency": "RUB" },
"period": { "unit": "month", "count": 1 },
"method": "card",
"providerMethodRef": "pm_..."
}Если подключённый способ не умеет списывать по сохранённому способу, создание сразу вернёт 422 method_unavailable. Не стройте продуктовый сценарий до успешной проверки на своём проекте.
Пауза пропускает периоды без последующего «догоняющего» списания. Отменённую подписку возобновить нельзя; создайте новую. Из past_due возобновление требует нового providerMethodRef.
Возвраты
Возврат создаётся отдельной операцией и не меняет исходную запись платежа задним числом. Полный возврат можно запросить без amount, частичный — с суммой в валюте счёта.
Если провайдер не поддерживает API-возврат, запрос вернёт 422 method_unavailable. Для текущего адаптера Lava возврат оформляется вручную у провайдера; после его события счёт переходит в refunded.
Что может пойти не так
- Подписка создана до проверки поддержки сохранённых способов.
- Повтор изменяющего запроса отправлен с новым ключом идемпотентности.
- Ручной возврат считают завершённым до события провайдера.
- Частичный возврат отправлен в другой валюте или сверх остатка счёта.
Следующий шаг
Перед разработкой проверьте точный контракт подписок и возвратов, включая ответы 422.