Система предполагает возможность провидения возврата по успешным транзакциям. Возврат можно провести из ЛК или посредством API.
Функционал активируется для выбранного сервиса и канала оплаты по отдельному согласованию. Возврат платежа может быть недоступен для определенных каналов.
Если канал оплаты не поддерживает возврат, будет выведено сообщение “Канал оплаты не поддерживает возвраты”
Возвраты по СБП проводятся исключительно в ЛК my.life-pay.ru (найти нужную транзакцию в разделе Продажи, нажать на ее идентификатор - справа внизу - Возврат) |
Для Visa/MasterCard/МИР возвраты:
Возврат через личный кабинетПерейдите в Личный Кабинет → Аналитика→ Статистика. Найдите нужную транзакцию и нажмите "Запросить возврат": Произойдет автоматическая переадресация на страницу управления возвратами, где необходимо указать сумму, причину и id возврата (опционально): Если id возврата не указан, то система присвоит значение автоматически Множественный возвратДля Visa/MasterCard/МИР возможно произвести несколько возвратов, в рамках одной транзакции. Это возможно, если один возврат был проведен на сумму, меньшую оригинальной. Инициализация происходит со страницы управления возвратами Личный Кабинет → Интеграция → Сервисы → Возвраты (справа от колонки "Действия" вашего списка сервисов). Заполнить поля:
После ввода данных и подтверждения, появится информационное сообщение и ранее созданный возврат: Кликните на чекбокс и нажмите Создать. СтатусыОперация возврата может находится в нескольких статусах:
|
Для создания заявки через API необходимо выполнить POST запрос на адрес https://partner.life-pay.ru/alba/refund/
В запросе необходимо передать (Content-Type: “application/x-www-form-urlencoded”):
В ответ возвращается JSON с результатом обработки запроса:
Результат определяет создание/инициализацию возврата в системе, но не сам процесс возврата денежных средств. Информацию о ходе выполнения операции следует смотреть на странице управления возвратами или в статистике.
1 2 3 4 5 6 7 8 | $service = new AlbaService(SERVICE_ID, 'SERVICE_SECRET'); try { $result = $service->refund(TRANSACTION_ID); echo "Возврат поставлен в очередь, payback_id: " . $result->payback_id; } catch (AlbaException $e) { echo "Произошла ошибка:" . $e->getMessage(); } |
1 2 3 4 5 6 7 8 | from alba_client import AlbaService, AlbaException service = AlbaService(SERVICE_ID, 'SERVICE_SECRET') try: result = service.refund(TRANSACTION_ID) print("Возврат поставлен в очередь, payback_id: {}".format(result['payback_id'])) except AlbaException, e: print("Произошла ошибка: {}".format(e)) |
1 2 3 4 5 6 7 8 | AlbaService = new AlbaService(SERVICE_ID, "SERVICE_SECRET"); RefundResponse refundResponse = service.refund( RefundRequest.builder(response.getTransactionId()) .setAmount(new BigDecimal("REFUND_AMOUNT")) .setReason("REFUND_REASON") .build() ); |