Refund - Возврат средств
Запрос выполняется командой Refund.
Запрос используется для осуществления возврата денежных средств на карту Пользователя, предварительно списанных командой Charge.
Результатом обработки запроса является возврат (полный или частичный) списанных денежных средств на карту Пользователя.
Внимание: для успешного возврата необходимо, чтобы на момент исполнения запроса платеж имел статус Charged.
Название |
Описание |
Формат |
Обязательный1 |
key |
Идентификатор Продавца. Выдается с параметрами тестового/боевого доступа |
Строка |
|
map_order_id |
Идентификатор платежа в системе theMAP |
Строка (максимум 50 символов) |
|
amount |
Сумма блокировки в минимальных единицах валюты (копейках) |
Целое число |
|
custom_params_rdy |
Список дополнительных параметров операции в формате "ключ - значение" |
Объект формата {"param1":"test", "param2":"test"...} |
|
split |
Используется для разделение суммы произведенного возврата на составные части для последующих расчетов с контрагентами. Общая сумма всех составных частей должна соответствовать amount |
Массив объектов |
|
├─ split_terminal_id 2 |
Номер терминала для проведения операции |
Число |
|
├─ amount 2 |
Сумма разделения |
Число |
|
├─ purpose 2 |
Описание |
Строка |
|
├─ fee 2 |
Размер комиссии |
Число |
|
1 Требования обязательности параметров одинаковы для каналов оплаты: eCom
, AP
, GP
, SBP
2 При передаче split
параметр обязательный
Пример передачи split
:
"split": [{"split_terminal_id": 1,"amount": 150,"purpose": "Test1","fee": 10},{"split_terminal_id": 2,"amount": 150,"purpose": "Test2","fee": 10}]
При возврате есть возможность указать возвращаемые товары - goods
. Для этого необходимо прописать дополнительные параметры в запрос.
Если параметр goods
не указан в запросе, то:
- в случае полного возврата в чеке будут указаны позиции из списания по заказу;
- в случае частичного возврата в фискальном чеке будет указана позиция "Частичный возврат" с параметрами для фискализации по-умолчанию (из настроек терминала).
Название |
Описание |
Формат |
Обязательный1 |
Key |
Идентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступа |
Строка |
|
OrderId |
Идентификатор платежа в системе theMAP |
Строка (максимум 50 символов) |
|
Amount |
Сумма для возврата в минимальных единицах валюты (копейках) |
Целое число |
|
Params |
Список дополнительных параметров операции |
Cтрока, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно) |
|
Split |
Используется для разделение суммы произведенного возврата на составные части для последующих расчетов с контрагентами |
Строка, содержащая группы пар ключ-значение, где группы содержатся в фигурных скобках {}, пары ключ-значение разделены символом «,» (запятая). Ключ и значение разделены символом «:» (двоеточие). Строка обособляется прямоугольными скобками «[]». Параметры ключей и значений выдаются Продавцу с параметрами тестового/боевого доступа. Общая сумма всех составных частей должна соответствовать Amount |
|
├─ split_terminal_id 2 |
Номер терминала для проведения операции |
Число |
|
├─ amount 2 |
Сумма разделения |
Число |
|
├─ purpose 2 |
Описание |
Строка |
|
├─ fee 2 |
Размер комиссии |
Число |
|
1 Требования обязательности параметров одинаковы для каналов оплаты: eCom
, AP
, GP
, SBP
2 При передаче Split
параметр обязательный
Пример передачи Split
:
"Split": [{"split_terminal_id": 1,"amount": 150,"purpose": "Test1","fee": 10},{"split_terminal_id": 2,"amount": 150,"purpose": "Test2","fee": 10}]
При возврате есть возможность указать возвращаемые товары - Goods
. Для этого необходимо прописать дополнительные параметры в запрос.
Если параметр Goods
не указан в запросе, то:
- в случае полного возврата в чеке будут указаны позиции из списания по заказу;
- в случае частичного возврата в фискальном чеке будет указана позиция "Частичный возврат" с параметрами для фискализации по-умолчанию (из настроек терминала).
Пример запроса POST:
Content-Type: application/json
https:{domain}/Refund
{
"key": "TestTerminal",
"map_order_id": "TestOrder123",
"amount": 300,
"custom_params_rdy": {
"Email": "testmail@ya.ru",
"param1": "one"
}
}
Пример реализации запроса в программном коде:
curl -X POST \
https:https:{domain}/Refund \
-H 'Content-Type: application/json' \
-d '{"key": "TestTerminal","map_order_id": "TestOrder123","amount": 300,"custom_params_rdy": {"Email": "testmail@ya.ru","param1": "one"}}'
Пример запроса POST:
Content-Type: application/x-www-form-urlencoded
https:{domain}/Refund
Key:TestTerminal
Amount:300
OrderId:TestOrder123
Пример реализации запроса в программном коде:
curl -X POST \
https:https:{domain}/Refund \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'Key=TestTerminal&Amount=300&OrderId=TestOrder123'
Название |
Описание |
Формат |
Обязательный1 |
Success |
Флаг успешности операции |
true/false |
|
OrderId |
Идентификатор платежа в системе Продавца |
Соответствует переданному в запросе |
|
NewAmount |
Оставшаяся списанная сумма |
Целое число |
2 |
ErrCode |
Описание ошибки |
см. коды ошибок |
3 |
ErrMessage |
Опциональный параметр. Дополнительное описание ошибки |
Строка |
|
CustomParams |
Параметр является опциональным. Список дополнительных параметров операции |
Соответствует Params, переданному в запросе Block |
|
FeePercent |
Ставка комиссии за эквайринг |
Число |
|
TerminalID |
ID терминала в системе MAP, по которому фактически выполнена операция |
Число |
|
RRN |
RRN операции |
Строка |
|
BankName |
Наименование Банка-эмитента |
Строка |
|
Key |
Идентификатор Продавца. Соответствует переданному в запросе |
Строка |
|
ProcessingResponse |
Оригинальный отказ эквайера |
Строка |
|
ReceiptId |
Идентификатор чека (ФЗ54) |
Строка |
|
1 Требования обязательности параметров одинаковы для каналов оплаты: eCom
, AP
, GP
, SBP
2 Передаётся, если в ответе Success=true
3 Передаётся, если в ответе Success=false
Пример ответа на успешный запрос:
{
"Success": true,
"OrderId": "TestOrder123",
"NewAmount": 0,
"ErrCode": ""
}
Пример ответа на не успешный запрос:
{
"Success": false,
"OrderId": "TestOrder123",
"Key": "TestTerminal",
"NewAmount": 0,
"ErrCode": "AMOUNT_EXCEED"
}