В главное меню

Возврат денежных средств


Введение

Данный метод позволяет вернуть как часть денежных средств, так и полную сумму оплаты, даже через год. Так же он позволяет возвращать как часть затраченного кешбека, так и всю сумму кешбека. Возврат кешбека можно выполнять отдельно от возврата денежных средств, т.е. в разных запросах.

Для всех мерчантов стандартное ограничение на проведение возвратов – в течение 1 дня по 1 уникальной карте в 1 МИДе может пройти 4 возврата (на 5 блокировать) на сумму не более 30 000 руб. за 1 возврат.

Решение ситуаций

  • При получении ошибки с кодом 02000008 - необходимо повторить операцию еще раз, полностью с тем же набором данных, включая Request-Id.
    • интервал 30сек.
    • кол-во повторов 5.
  • При получении ошибки с кодом 02000014 - необходимо проанализировать, почему указанная сумма превышает сумму проведенного платежа:
    • в случаях использования данного метода для частичных возвратов. Когда, например платеж был на 10р, запросили возврат на 4р, потом еще раз на 4р, и по какой то причине еще раз 4р;
    • при получении ответа с кодом ошибки 02000008, после чего отправили запрос повторно, но изменили Request-Id.

Входные параметры

Заголовок запроса

POST
Endpoint: https://sandbox.pay.mts.ru/private/v1/payments/{id}/refund HTTP/1.1
Content-Type: application/json
<Основные параметры>

Параметр запроса

Поле

Тип

Обяз.

Описание

id

int64

да

Идентификатор платежа

Основные параметры

Поле

Тип

Обяз.

Описание

Request-IdguidдаИдентификатор конкретного запроса

Requestor-Name

string

нет

Наименование сервиса.

  • Для веба - домен, на котором запущен виджет.
  • Для SDK - идентификатор приложения.
  • Для API - имя вызывающей системы.
Requestor-Typestringнет

Тип витрины.

  • API
  • Web Widget
  • Web Page
  • SDK Apple
  • SDK Android
Requestor-VersionstringнетВерсия виджета/sdk

Тело запроса

Поле

Тип

Обяз.

Описание

amount

amountда (условно)

Сумма которую необходимо вернуть (не может быть больше суммы платежа).
Число с фиксированной точкой, две цифры после точки.
Обязателен, если отсутствует loyaltyAmount.

loyaltyAmount

intда (условно)

Сумма баллов лояльности, которую необходимо вернуть пользователю.
Обязателен, если отсутствует amount.

receiptId

int64

нет

id операции фискализации

Выходные параметры

Заголовок ответа

Content-Type: application/json; charset=utf-8
http-code: 200
http-status: OK

Тело ответа

Поле

Тип

Обяз.

Описание

id

int64

нет

Идентификатор возврата

processingData

object

нет

Дополнительная информация об операции

resultobjectнетДетали проведения оплаты

Описание структуры processingData

Поле

Тип

Обяз.

Описание

rrn

string

нет

RRN Банка

Структура result

Поле

Тип

Обяз.

Описание

statusstatusEnumда

Статус платежа 

  • inProgress - в процессе исполнения
  • executed - выполнен

Тело ответа

{
  "id": 0,
  "result": {
    "status": "executed"
  },
  "processingData": {
    "rrn": "string"
  }
}

Примеры

Запрос

Заголовок

POST /payments/10234/refund HTTP/1.1
Host:
Content-Type: application/json
<Основные параметры> (пример в описании)

Тело

{
  "amount" : 8.2
}
{
  "amount" : 8.2,
  "loyaltyAmount" : 2
}

Ответ

Заголовок

Content-Type: application/json; charset=utf-8
http-code: 200
http-status: OK

Тело

{
  "id": 177898,
  "result": {
    "status": "inProgress"
  }
}
{
  "id": 177898,
  "result": {
    "status": "executed"
  }
}

Возможные коды ошибок

code

message

userMessage

00299998

Validation error

Не пройдена валидация данных

00299999

An unexpected error has occurred

Непредвиденная ошибка

02000001This method is not supported for this payment tool. Payment tool: {paymentToolType}Данный метод не поддерживается для этого способа оплаты. Способ оплаты: {paymentToolType}

02000004

Payment {0} not found from merchant {1}

Платеж не найден

02000008

Operation is processed. Repeat operation once again, with the same data set to know the result of operation.

Операция обрабатывается. Повторите операцию еще раз, с тем же набором данных, чтобы узнать результат операции

02000014Refunds amount exceeds transaction amountСумма возмещений превышает сумму транзакции. Уменьшите сумму и повторите операцию.
02000015Refunds loyalty amount exceeds transaction loyalty amountCумма возмещений баллов системы лояльности превышает сумму баллов в исходной транзакции. Уменьшите сумму и повторите операцию.
00200020Fiscalization not available for merchantФискальные операции недоступны мерчанту
00200021The required block of parameters of the fiscal operation is missingОтсутствует обязательный блок параметров фискальной операции

02005000

Processing: Not identified error

Не классифицированная ошибка

02005007PCEK: service unavailableСервис временно недоступен. Попробуйте повторить позже.
02005027PCEK Provider: On this payment reversaling is executed earlier extSystemErrorCode: [errorCode]По данному платежу выполнена отмена ранее
02005028PCEK Provider: On this payment refunding is executed earlier extSystemErrorCode: [errorCode]По данному платежу выполнен полный возврат ранее
02005036Bank issuer: payment restriction. extSystemErrorCode: [errorCode]Ваш банк ограничил оплату с выбранной карты
02005042PCEK: service unavailable. extSystemErrorCode: [errorCode]Сервис временно недоступен
02005061Bank acquirer: general error. extSystemErrorCode: [errorCode]Банк отклонил платёж
02005064Bank issuer: payment restriction. extSystemErrorCode: [errorCode]Ваш банк ограничил оплату с выбранной карты
02005065Bank acquirer: fatal general error. extSystemErrorCode: [errorCode]Банк отклонил платёж
06005101Validation errorНе пройдена валидация данных
06005105


Precondition Required 

+ значение поля {message} ответа внешнего сервиса

Не выполнены условия запроса
06005106

Invalid operation for current invoice status: Current status: {0}

Статус счета не позволяет выполнить данную операцию