POST /v1/payout.
Поток
Посчитать комиссию (необязательно)
Чтобы заранее понять, сколько уйдёт с баланса и сколько получит адрес:
is_subtract: false— комиссия из суммы (получатель получает меньше).is_subtract: true— комиссия сверх суммы (списывается с баланса дополнительно).
is_subtract здесь — параметр предрасчёта calculate. На самой выплате /v1/payout это поле не
действует: кто платит сетевую комиссию, определяет настройка проекта
fee-config. Считайте calculate с тем же вариантом, что стоит
в fee‑config, — тогда превью совпадёт с реальной выплатой.Создать выплату
Idempotency-Key(HTTP‑заголовок) — генерируется до первой отправки и одинаков во всех ретраях. Повтор с тем же ключом вернёт тот же ответ и заголовокIdempotent-Replayed: true. Если предыдущая попытка ещё выполняется — придёт409 idempotency.in_progress: подождите и повторите.order_id— для выплаты обязателен (без него400 payout.order_id_required). Повтор с тем жеorder_idвернёт уже созданную выплату, а не отправит вторую.
call() — Устойчивый
клиент.Отследить статус
Статус выплаты в ответах — укрупнённый (маппинг):
Финал —
is_final: true (paid/fail/cancel). О смене статуса приходит вебхук payout.* — ловите
его так же, как платёжный (проверка подписи, идемпотентность). См.
Настройка вебхуков.Частые ошибки
Важно про безопасность
Выплаты по API‑ключу уходят сразу и необратимы. Ответственность за адрес назначения — на вашей стороне. Рекомендуется:- Включить IP‑allowlist, чтобы выплаты можно было инициировать только с вашего backend.
- Хранить
secretтолько на сервере. - Валидировать адрес получателя на своей стороне до вызова.