- Created by Общий аккаунт ТП, last modified on 12.05.2020
Система предполагает возможность провидения возврата по успешным транзакциям. Возврат можно провести из ЛК или посредством API.
Функционал активируется для выбранного сервиса и канала оплаты по отдельному согласованию. Возврат платежа может быть недоступен для определенных каналов.
Если канал оплаты не поддерживает возврат, будет выведено сообщение “Канал оплаты не поддерживает возвраты”
Для Visa/MasterCard/МИР возвраты:
- проведенные день-в-день проходят без дополнительной комиссии и с минимальной задержкой. Зачисление денежных средств на счет плательщика происходит в течении 2 часов.
- проведенные на следующий день облагаются комиссией и срок зачисления денежных средств может составлять до 7 рабочих дней, в зависимости от эмитента.
Операция возврата необратима! В случае если вы ошиблись с суммой возврата или id транзакции - обратитесь в техническую поддержку банка.
Возврат через личный кабинет
Перейдите в Личный Кабинет → Отчеты → Статистика. Найдите нужную транзакцию и нажмите "Запросить возврат":
Произойдет автоматическая переадресация на страницу управления возвратами, где необходимо указать сумму, причину и id возврата (опционально):
Если id возврата не указан, то система присвоит значение автоматически
Множественный возврат
Для Visa/MasterCard/МИР возможно произвести несколько возвратов, в рамках одной транзакции. Это возможно, если один возврат был проведен на сумму, меньшую оригинальной.
Инициализация происходит со страницы управления возвратами Личный Кабинет → Инструменты → Сервисы → Возвраты (справа от основного окна).
Заполнить поля:
- ID Транзакции в рамках которой будут инициироваться возвраты.
- Сумма возврата за вычетом предыдущего\предыдущих возвратов.
- Ваш ID возврата. Если возврат всего один, заполнять не обязательно.
После ввода данных и подтверждения, появится информационное сообщение и ранее созданный возврат:
Кликните на чекбокс и нажмите Создать.
Статусы
Операция возврата может находится в нескольких статусах:
- В процессе - операция создана в системе и находится в процессе проведения;
- В очереди - операция создана в системе и находится в очереди на выполнение;
- Отменена - операция не завершена, возникла ошибка, обратитесь в техническую поддержку;
- Выполнена - операция выполнена, возврат проведен. Чек возврата доступен в статистике транзакций по клику → transaction ID → показать чек.
Сумма возврата может превышать общую сумму транзакций за день. В этом случае возврат находится в очереди до тех пор, пока необходимая сумма накопится (до зачисления на расчётный счёт). После каждого перечисления на расчётный счёт сумма будет копиться заново. Банк не может взимать средства для возврата с расчётного счёта, поэтому в возвратах участвует только та сумма, которая накопилась за день.
Возврат по API
Для создания заявки через API необходимо выполнить POST запрос на адрес https://partner.rficb.ru/alba/refund/
В запросе необходимо передать (Content-Type: “application/x-www-form-urlencoded”):
- version – “2.0”
- tid – id транзакции
- amount – опциональный параметр, сумма указывается в формате xxx.xx. Если значение не указано - произойдет возврат всей суммы
- reason – опциональный параметр – причина возврата
- refund_ext_id - id возврата
- check – Электронная подпись запроса. См. приложение №1
В ответ возвращается JSON с результатом обработки запроса:
- Успех: {‘status’: ‘success’, ‘payback_id’: }
- Неуспех: {‘status’: ‘error’, ‘message’: ”}
Результат определяет создание/инициализацию возврата в системе, но не сам процесс возврата денежных средств. Информацию о ходе выполнения операции следует смотреть на странице управления возвратами или в статистике.
SDK
- php
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(); } |
- python
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)) |
- Java
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() ); |