Method: refund

Reembolsa uma parte ou toda a transação iniciada por capture. A combinação de requestId no cabeçalho e paymentIntegratorAccountId é a chave de idempotência, que identifica exclusivamente essa transação.

Se o endpoint encontrar um erro ao processar a solicitação, o corpo da resposta desse endpoint precisará ser do tipo ErrorResponse.

Veja abaixo um exemplo de solicitação:


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

Veja um exemplo de resposta:


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

Solicitação HTTP

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

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "currencyCode": string,
  "refundAmount": string
}
Campos
requestHeader

object (RequestHeader)

OBRIGATÓRIO: cabeçalho comum para todas as solicitações.

paymentIntegratorAccountId

string

OBRIGATÓRIO: é o ID da conta do integrador de pagamentos que define restrições contratuais em relação a essa transação.

captureRequestId

string

REQUIRED: um identificador exclusivo para a transação. Este é o requestId gerado pelo Google durante a chamada capture a que esta solicitação está associada.

currencyCode

string

OBRIGATÓRIO: código de moeda ISO 4217 com três letras

refundAmount

string (Int64Value format)

OBRIGATÓRIO: é o valor do reembolso, um número positivo de micros da unidade monetária.

Corpo da resposta

Objeto de resposta para o método de reembolso.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorRefundId": string,
  "result": enum (RefundResultCode),
  "rawResult": {
    object (RawResult)
  }
}
Campos
responseHeader

object (ResponseHeader)

OBRIGATÓRIO: cabeçalho comum para todas as respostas.

paymentIntegratorRefundId

string

OPCIONAL: esse identificador é específico para o integrador e é gerado pelo integrador. Esse é o identificador que o integrador conhece o reembolso.

Por conveniência, este identificador está incluído nos detalhes da remessa

result

enum (RefundResultCode)

OBRIGATÓRIO: resultado do reembolso.

rawResult

object (RawResult)

OPCIONAL: resultado bruto do reembolso. Usado para ajudar a informar o mecanismo de risco e as análises do Google. Em situações de mapeamento de código recusado, os dados às vezes são perdidos. O integrador pode fornecer ao Google um código bruto. Por exemplo, um gateway de cartão de crédito (o integrador) pode usar esse campo para comunicar ao Google o código de recusa exato que foi recebido da rede VISA. Nesse caso, o scope seria "visa", e o rawCode seria o que a rede VISA retornou.

Esse valor será obrigatório se result não for SUCCESS.

Código do reembolso

O resultado exclusivo codifica os reembolsos.

Enums
UNKNOWN_RESULT Nunca defina esse valor padrão.
SUCCESS Reembolso concluído.
NO_MONEY_LEFT_ON_TRANSACTION Falha na v1.refund, não há dinheiro restante na transação. Normalmente, isso representa um bug entre o integrador e o Google. O Google não deve pedir o reembolso de um valor maior que a captura original.
ACCOUNT_CLOSED

A conta associada ao integrador foi encerrada.

Retornar esse valor fará com que o instrumento do usuário seja fechado com o Google. O usuário será forçado a adicionar um novo instrumento passando pelo fluxo de associação novamente.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

A conta do usuário com o integrador foi encerrada. A conta pode ter sido invadida.

Retornar esse valor fará com que o instrumento do usuário seja fechado com o Google. O usuário será forçado a adicionar um novo instrumento passando pelo fluxo de associação novamente.

ACCOUNT_CLOSED_FRAUD

A conta do usuário associada ao integrador foi encerrada por fraude.

Retornar esse valor fará com que o instrumento do usuário seja fechado com o Google. O usuário será forçado a adicionar um novo instrumento passando pelo fluxo de associação novamente.

ACCOUNT_ON_HOLD A conta do usuário está retida no momento e não pode aceitar o reembolso, mas a conta do usuário poderá aceitar o reembolso posteriormente. O Google poderá solicitar outro reembolso no futuro, mas fará isso com um novo requestId. Portanto, a solicitação será considerada concluída.
REFUND_EXCEEDS_MAXIMUM_BALANCE O reembolso não pode ser processado no momento porque isso faria com que o saldo do usuário excedesse o valor máximo permitido. O Google poderá solicitar outro reembolso no futuro, mas fará isso com um novo requestId. Portanto, a solicitação será considerada concluída.
REFUND_WINDOW_EXCEEDED O reembolso não pode ser processado porque a solicitação está fora do período de reembolso permitido.