Method: refund

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

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

Una solicitud de ejemplo se ve de la siguiente manera:


{
  "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)

OBLIGATORIO: Es un 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 relacionadas con esta transacción.

captureRequestId

string

OBLIGATORIO: Es un identificador único para esta transacción. Este es el requestId generado por 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: Es 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)

OBLIGATORIO: Es el encabezado común para todas las respuestas.

paymentIntegratorRefundId

string

OPCIONAL: Este identificador es específico del integrador y lo genera el integrador. Es el identificador por el cual el integrador conoce este reembolso.

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

result

enum (RefundResultCode)

OBLIGATORIO: Resultado de este reembolso.

rawResult

object (RawResult)

OPCIONAL: Resultado sin procesar de este reembolso. Se usa para ayudar a informar el motor de riesgos y las estadísticas de Google. En situaciones de rechazo del código, es posible que se pierdan datos. El integrador puede optar por darle a Google un código sin procesar. Por ejemplo, una puerta de enlace de tarjetas de crédito (el integrador) puede utilizar este campo para comunicar a Google el código de rechazo exacto que se recibió de la red VISA. En ese caso, el scope sería "visa" y el rawCode sería lo que mostrara la red VISA.

Este valor es obligatorio si result no es SUCCESS.

Código de reembolso

Se reembolsan los códigos de resultado únicos.

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

Se cerró la cuenta que tiene el integrador.

Mostrar este valor hará que se cierre el instrumento de pago con Google. El usuario se verá obligado a agregar un instrumento nuevo nuevamente a través del flujo de asociación.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Se cerró la cuenta del usuario que tiene el integrador y se sospecha que la cuenta tomó el control.

Mostrar este valor hará que se cierre el instrumento de pago con Google. El usuario se verá obligado a agregar un instrumento nuevo nuevamente a través del flujo de asociación.

ACCOUNT_CLOSED_FRAUD

Se cerró la cuenta del usuario que tenía el integrador debido a un fraude.

Mostrar este valor hará que se cierre el instrumento de pago con Google. El usuario se verá obligado a agregar un instrumento nuevo nuevamente a través del flujo de asociación.

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