Способы пополнения, доступные сейчас, с минимумом и максимумом
POST /payments
billing:write
Начать пополнение. В ответе — адрес страницы оплаты
GET /payments
billing:read
Платежи аккаунта, новые первыми
GET /payments/{id}
billing:read
Один платёж: оплачен ли он
GET /payments/cards
billing:read
Сохранённые карты
POST /payments/cards
billing:write
Начать привязку карты. В ответе — адрес страницы банка
DELETE /payments/cards/{card_id}
billing:write
Удалить сохранённую карту
POST /payments/charge
billing:write
Пополнить с сохранённой карты, сразу
GET /payments/auto-recharge
billing:read
Настройки автопополнения
PUT /payments/auto-recharge
billing:write
Включить автопополнение или изменить его
DELETE /payments/auto-recharge
billing:write
Выключить автопополнение
Что открывают права
Право
Смысл
billing:read
Только смотреть: баланс, платежи и их статус, способы оплаты, сохранённые карты (маска номера), настройки автопополнения
billing:write
Тратить деньги владельца: открыть платёж, списать с сохранённой карты любую сумму в пределах лимитов, включить автопополнение, привязать и удалить карту. Включает billing:read
amount — целые рубли, от 500 до 1 000 000. card_id — из GET /payments/cards.
200 и "charged": true — деньги списаны и уже на балансе.
202 и "charged": false — ответ банка не пришёл. Платёж остаётся pending; чем он закончился, скажет GET /payments/{id}. Не повторяйте списание, пока платёж не завершён.
Банк отклонил списание — 400 с metadata.codecharge_declined; на баланс ничего не зачисляется.
Автопополнение
Автопополнение само списывает с сохранённой карты, когда баланс опускается ниже порога. PUT /payments/auto-recharge включает его или меняет настройки:
Карта, с которой идёт списание: её id из GET /payments/cards и маска номера. В запросе передаётся card_id
threshold
Порог, ₽: списание запускается, когда баланс опускается ниже. Целое число, не меньше 100
target_amount
До какой суммы пополнять баланс, ₽. Целое число от 500 до 1 000 000, больше порога. Списывается разница между этой суммой и балансом, но не меньше 500 ₽
monthly_limit
Сколько автопополнение может списать за календарный месяц, ₽. 0 — без лимита. Не передано — остаётся прежним
last_error
Почему банк отклонил последнее списание, иначе null
consecutive_failures
Отказов банка подряд. После третьего автопополнение выключается
GET /payments/auto-recharge возвращает тот же объект. Если автопополнение не настраивали — "enabled": false.
DELETE /payments/auto-recharge выключает его и отвечает 204.
Включение и выключение записываются в журнал активности.
Ошибки
Статус
Смысл
400
invalid_request — неверное поле (error.metadata.fields), сумма вне пределов способа или отказ платёжной системы. metadata.code: payment_method_unavailable — способ сейчас не предлагается, payment_provider_refused — платёжная система не открыла платёж, charge_declined — банк отклонил списание с карты (в metadata.payment_id — номер платежа)
401
authentication_failed — ключа нет, он неверный, отозван или истёк
403
permission_denied — у ключа нет нужного права, IP не в списке разрешённых или метод вызван API-ключом
404
not_found — «Платеж не найден» или «Карта не найдена»
503
provider_unavailable — «Платёжная система временно недоступна. Повторите попытку позже.»