Method: refund

Reembolsa una parte o la totalidad de la transacción iniciada a través de capture. La combinación de requestId en el encabezado y paymentIntegratorAccountId es la clave de idempotencia, que identifica de forma exclusiva esta transacción.

Si el extremo encuentra un error mientras procesa la solicitud, el cuerpo de la respuesta de este extremo debe ser del tipo ErrorResponse.

A continuación, se muestra una solicitud de ejemplo:


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

Una respuesta de ejemplo se ve de la siguiente manera:


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

Solicitud HTTP

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

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "currencyCode": string,
  "refundAmount": string
}
Campos
requestHeader

object (RequestHeader)

REQUIRED: Encabezado común para todas las solicitudes

paymentIntegratorAccountId

string

OBLIGATORIO: Este es el ID de la cuenta del integrador de pagos que define las restricciones contractuales en torno a esta transacción.

captureRequestId

string

REQUIRED: Es un identificador único para esta transacción. Este es el requestId que genera Google durante la llamada a capture con la que está asociada esta solicitud.

currencyCode

string

OBLIGATORIO: Código de moneda ISO 4217 de 3 letras

refundAmount

string (Int64Value format)

OBLIGATORIO: El importe del reembolso, una cantidad positiva de micros de la unidad de moneda.

Cuerpo de la respuesta

Objeto de respuesta para el método de reembolso.

Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:

Representación JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorRefundId": string,
  "result": enum (RefundResultCode),
  "rawResult": {
    object (RawResult)
  }
}
Campos
responseHeader

object (ResponseHeader)

REQUIRED: Encabezado común para todas las respuestas

paymentIntegratorRefundId

string

OPCIONAL: Este identificador es específico del integrador y lo genera este. Este es el identificador con el que el integrador conoce este reembolso.

Para mayor comodidad, este identificador se incluye en los detalles de la remesa.

result

enum (RefundResultCode)

OBLIGATORIO: Es el resultado de este reembolso.

rawResult

object (RawResult)

OPCIONAL: Es el resultado sin procesar de este reembolso. Se usa para ayudar a fundamentar el motor de riesgos y las estadísticas de Google. En situaciones en las que se genera una asignación de código de rechazo, a veces se pierden los datos. El integrador puede optar por darle a Google un código sin procesar. Por ejemplo, una puerta de enlace de tarjeta de crédito (el integrador) puede usar este campo para comunicar a Google el código de rechazo exacto que se recibió de la red VISA. En ese caso, la scope sería "visa". y el rawCode sería lo que mostrara la red VISA.

Este valor es obligatorio si result no es SUCCESS.

RefundResultCode

Los reembolsos de los códigos de resultado únicos

Enumeraciones
UNKNOWN_RESULT No establezcas nunca este valor predeterminado.
SUCCESS El reembolso se realizó correctamente.
NO_MONEY_LEFT_ON_TRANSACTION v1.refund falló, no queda dinero en la transacción. Por lo general, representa un error entre el integrador y Google. Google no debe solicitar un reembolso por un importe superior al de la captura original.
ACCOUNT_CLOSED

Se cerró la cuenta retenida con el integrador.

Devolver este valor hará que el instrumento del usuario se cierre con Google. El usuario se verá obligado a agregar un nuevo instrumento siguiendo el flujo de asociación nuevamente.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Se cerró la cuenta del usuario con el integrador, por lo que se sospecha que se realizó una apropiación de la cuenta.

Devolver este valor hará que el instrumento del usuario se cierre con Google. El usuario se verá obligado a agregar un nuevo instrumento siguiendo el flujo de asociación nuevamente.

ACCOUNT_CLOSED_FRAUD

La cuenta del usuario que se retuvo con el integrador se cerró debido a un fraude.

Devolver este valor hará que el instrumento del usuario se cierre con Google. El usuario se verá obligado a agregar un nuevo instrumento siguiendo el flujo de asociación nuevamente.

ACCOUNT_ON_HOLD Actualmente, la cuenta del usuario está suspendida y no puede aceptar el reembolso, pero es posible que la cuenta del usuario más adelante pueda aceptar el reembolso. Es posible que Google solicite otro reembolso en el futuro, pero lo hará con un nuevo requestId, por lo que esta solicitud debe considerarse finalizada.
REFUND_EXCEEDS_MAXIMUM_BALANCE No se puede procesar el reembolso en este momento porque, si lo hiciera, el saldo del usuario excedería el importe máximo permitido. Es posible que Google solicite otro reembolso en el futuro, pero lo hará con un nuevo requestId, por lo que esta solicitud debe considerarse finalizada.
REFUND_WINDOW_EXCEEDED No se puede procesar el reembolso porque la solicitud está fuera del período de reembolso permitido.