Документация/Приём платежей/Capture и возврат

Capture, отмена и возврат

Три операции над уже созданным платежом. Каждая доступна, только если её поддерживает канал — проверяйте возможности до того, как строить на них бизнес-процесс.

Сначала возможности канала

Операция, не поддержанная каналом, возвращает 422 capability_not_supported. Это штатный ответ, а не сбой: он означает, что поток нужно согласовать, а не повторить запрос.

Capture

Списывает ранее удержанную сумму по платежу в статусе authorized. Пустое тело означает полное списание доступной суммы; частичное списание доступно только при соответствующей возможности канала.

POST /api/v1/payments/{payment_id}/capture
Idempotency-Key: capture-order-20260817-001

{ "amount_minor": 1001 }

Отмена

Снимает удержание до списания. После отмены платёж переходит в финальный статус canceled и не может быть возобновлён — новая попытка оплаты означает новый платёж со своим order_id.

POST /api/v1/payments/{payment_id}/cancel
Idempotency-Key: cancel-order-20260817-001

Возврат

Возврат создаётся по успешному платежу. Сумма меньше исходной делает возврат частичным, и платёж переходит в partially_refunded; полный возврат — в refunded. Список возвратов по платежу читается отдельным запросом.

Создать возврат

POST /api/v1/payments/{payment_id}/refunds
Idempotency-Key: refund-order-20260817-001-1

{ "amount_minor": 500 }

Список возвратов

GET /api/v1/payments/{payment_id}/refunds

Событие возврата одно

Частичный и полный возврат отправляют одно и то же событие payment.refunded. Различить их можно только по полю status в теле — события payment.partially_refunded не существует.

Возможность возврата зависит от подключённого провайдера

Если провайдер канала не поддерживает возврат, вызов вернёт 422 capability_not_supported. Проверьте возможности канала до того, как обещать возвраты в клиентском интерфейсе.

Была ли страница полезной?