Finance OS / API

Refunds

Возврат создаётся по конкретному платежу — полностью или на часть суммы. Несколько частичных возвратов по одному платежу допустимы, пока их сумма не превысила сумму платежа.

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

Параметры

payment_id string required
Платёж, по которому возвращаются деньги.
amount string required
Сумма возврата строкой. Должна быть больше нуля и не превышать невозвращённый остаток платежа.
receipt object optional
Состав чека возврата. См. Receipts.
Указывайте сумму явно
Пустая сумма трактуется как возврат всей суммы платежа. Если ваш код может передать пустое значение при ошибке расчёта, частичный возврат молча превратится в полный.

Статусы возврата

Жизненный цикл

new enum optional
Возврат принят к исполнению.
in_progress enum optional
Исполняется.
postponed enum optional
Отложен — исполнение продолжится позже. Не отказ, повторять не нужно.
in_finish enum optional
Завершается.
completed enum optional
Деньги возвращены плательщику.
error enum optional
Ошибка исполнения. В ответе есть код отказа.
Это не статусы платежа
У возврата свой набор: нет paid, зато есть in_finish и postponed. Общий только completed.

Проверка результата

Поля возврата

id string optional
Идентификатор возврата.
payment_id string optional
Платёж, по которому сделан возврат.
amount string optional
Сумма возврата.
status enum optional
Текущий статус.
refunded_at string optional
Когда возврат фактически исполнен.
receipts array optional
Чеки возврата.

Список возвратов доступен по платежу — это надёжный способ узнать, сколько уже возвращено, и не уйти в перевозврат.

Не повторяйте возврат после таймаута
Запрос не идемпотентен: повтор создаёт второй возврат. Если ответ не пришёл, запросите список возвратов по платежу и решайте по нему.