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 ( |
Campos | |
---|---|
requestHeader |
OBRIGATÓRIO: cabeçalho comum para todas as solicitações. |
paymentIntegratorAccountId |
OBRIGATÓRIO: é o ID da conta do integrador de pagamentos que define restrições contratuais em relação a essa transação. |
captureRequestId |
REQUIRED: um identificador exclusivo para a transação. Este é o |
currencyCode |
OBRIGATÓRIO: código de moeda ISO 4217 com três letras |
refundAmount |
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 ( |
Campos | |
---|---|
responseHeader |
OBRIGATÓRIO: cabeçalho comum para todas as respostas. |
paymentIntegratorRefundId |
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 |
OBRIGATÓRIO: resultado do reembolso. |
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 Esse valor será obrigatório se |
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. |