Method: refund

Возвращает часть или всю транзакцию, инициированную посредством capture . Комбинация requestId в заголовке и paymentIntegratorAccountId является ключом идемпотентности, который однозначно идентифицирует эту транзакцию.

Если конечная точка обнаруживает ошибку при обработке запроса, тело ответа от этой конечной точки должно иметь тип ErrorResponse .

Пример запроса выглядит так:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "liUrreQY233839dfFFb24gaQM",
    "requestTimestamp": "1502220434778"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
  "currencyCode": "INR",
  "refundAmount": "208000000"
}

Пример ответа выглядит так:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "result": "SUCCESS",
  "paymentIntegratorRefundId": "cmVmdW5kIGlkZW50aWZpZXINCg"
}

HTTP-запрос

POST https://www.integratorhost.example.com/v1/refund

Тело запроса

Тело запроса содержит данные следующей структуры:

JSON-представление
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "currencyCode": string,
  "refundAmount": string
}
Поля
requestHeader

object ( RequestHeader )

ОБЯЗАТЕЛЬНО : общий заголовок для всех запросов.

paymentIntegratorAccountId

string

ОБЯЗАТЕЛЬНО : это идентификатор учетной записи платежного интегратора, который определяет договорные ограничения для этой транзакции.

captureRequestId

string

ОБЯЗАТЕЛЬНО : уникальный идентификатор для этой транзакции. Это requestId , сгенерированный Google во время вызова capture , с которым связан этот запрос.

currencyCode

string

ТРЕБУЕТСЯ : трехбуквенный код валюты ISO 4217.

refundAmount

string ( Int64Value format)

ОБЯЗАТЕЛЬНО : Сумма возврата, положительное число микро валютной единицы.

Тело ответа

Объект ответа для метода возврата.

В случае успеха тело ответа содержит данные следующей структуры:

JSON-представление
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorRefundId": string,
  "result": enum (RefundResultCode),
  "rawResult": {
    object (RawResult)
  }
}
Поля
responseHeader

object ( ResponseHeader )

ОБЯЗАТЕЛЬНО : общий заголовок для всех ответов.

paymentIntegratorRefundId

string

НЕОБЯЗАТЕЛЬНО : этот идентификатор специфичен для интегратора и генерируется интегратором. Это идентификатор, по которому интегратор узнает этот возврат.

Для удобства этот идентификатор включен в детали денежного перевода.

result

enum ( RefundResultCode )

ОБЯЗАТЕЛЬНО : Результат этого возврата.

rawResult

object ( RawResult )

НЕОБЯЗАТЕЛЬНО : необработанный результат возврата. Используется для информирования системы рисков и аналитики Google. В ситуациях отказа от сопоставления кода данные иногда теряются. Интегратор может предоставить Google необработанный код. Например, шлюз кредитных карт (интегратор) может использовать это поле, чтобы сообщить Google точный код отклонения, полученный из сети VISA. В этом случае scope будет «visa», а rawCode — то, что вернула сеть VISA.

Это значение является обязательным , если result не SUCCESS .

Код результата возврата

Возврат средств по уникальным кодам результатов.

Перечисления
UNKNOWN_RESULT Никогда не устанавливайте это значение по умолчанию!
SUCCESS Успешный возврат.
NO_MONEY_LEFT_ON_TRANSACTION v1.refund не удалось, на транзакции не осталось денег. Обычно это означает ошибку между интегратором и Google. Google не должен требовать возмещения суммы, превышающей первоначальную сумму.
ACCOUNT_CLOSED

Счет у интегратора закрыт.

Возврат этого значения приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент, повторно пройдя процедуру связывания.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Аккаунт пользователя у интегратора закрыт, подозрение на захват аккаунта.

Возврат этого значения приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент, повторно пройдя процедуру связывания.

ACCOUNT_CLOSED_FRAUD

Аккаунт пользователя у интегратора закрыт из-за мошенничества.

Возврат этого значения приведет к закрытию инструмента пользователя в Google. Пользователь будет вынужден добавить новый инструмент, повторно пройдя процедуру связывания.

ACCOUNT_ON_HOLD Учетная запись пользователя в настоящее время заблокирована и не может принять возврат средств, но позже учетная запись пользователя сможет принять возврат средств. Google может запросить еще один возврат средств в будущем, но сделает это с новым requestId , поэтому этот запрос следует считать завершенным.
REFUND_EXCEEDS_MAXIMUM_BALANCE Возврат не может быть обработан в настоящее время, поскольку это приведет к тому, что баланс пользователя превысит максимально допустимую сумму. Google может запросить еще один возврат средств в будущем, но сделает это с новым requestId , поэтому этот запрос следует считать завершенным.
REFUND_WINDOW_EXCEEDED Возврат не может быть обработан, поскольку запрос находится за пределами разрешенного периода возврата.