Method: refund

Rimborsa una parte o l'intera transazione avviata tramite capture. La combinazione di requestId nell'intestazione e paymentIntegratorAccountId è la chiave di idempotency, che identifica in modo univoco questa transazione.

Se si verifica un errore durante l'elaborazione della richiesta, il corpo della risposta di questo endpoint deve essere di tipo ErrorResponse.

Una richiesta di esempio ha il seguente aspetto:


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

Un esempio di risposta è:


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

Richiesta HTTP

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

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "currencyCode": string,
  "refundAmount": string
}
Campi
requestHeader

object (RequestHeader)

REQUIRED: intestazione comune per tutte le richieste.

paymentIntegratorAccountId

string

REQUIRED: è l'ID account integrato del pagamento che definisce i vincoli contrattuali relativi a questa transazione.

captureRequestId

string

REQUIRED: un identificatore univoco per questa transazione. Questo è l'requestId generato da Google durante la chiamata capture a cui è associata questa richiesta.

currencyCode

string

REQUIRED: codice valuta ISO 4217 di tre lettere.

refundAmount

string (Int64Value format)

REQUIRED: l'importo del rimborso, espresso come numero positivo di micro unità di valuta.

Corpo della risposta

Oggetto della risposta per il metodo di rimborso.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorRefundId": string,
  "result": enum (RefundResultCode),
  "rawResult": {
    object (RawResult)
  }
}
Campi
responseHeader

object (ResponseHeader)

REQUIRED: intestazione comune per tutte le risposte.

paymentIntegratorRefundId

string

FACOLTATIVO: questo identificatore è specifico per l'integratore e viene generato dall'integratore. Si tratta dell'identificatore utilizzato dall'integratore per conoscere il rimborso.

Per praticità, questo identificatore è incluso nei dettagli di versamento

result

enum (RefundResultCode)

REQUIRED: risultato del rimborso.

rawResult

object (RawResult)

FACOLTATIVO: risultato non elaborato di questo rimborso. Utilizzato per informare il motore di analisi e il rischio del rischio di Google. In situazioni di mappatura con codice rifiutato, a volte i dati vengono persi. L'integratore può scegliere di fornire a Google un codice non elaborato. Ad esempio, il gateway di una carta di credito (l'integratore) potrebbe utilizzare questo campo per comunicare a Google l'esatto codice di rifiuto ricevuto dalla rete VISA. In questo caso, scope sarà "visto" e rawCode sarà qualsiasi cosa restituisce la rete VISA.

Questo valore è obbligatorio se result non è SUCCESS.

CodiceRisultatoRimborso

I rimborsi per i codici univoci.

Enum
UNKNOWN_RESULT Non impostare questo valore predefinito.
SUCCESS Rimborso inviato.
NO_MONEY_LEFT_ON_TRANSACTION v1.refund non riuscito, non è rimasto denaro nella transazione. In genere si tratta di un bug tra l'integratore e Google. Google non deve chiedere il rimborso di un importo superiore a quello originale.
ACCOUNT_CLOSED

L'account in possesso dell'integratore è stato chiuso.

Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento attraversando nuovamente la procedura di associazione.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

L'account dell'utente con l'integratore è stato chiuso, il sospetto sospetto di violazione dell'account.

Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento attraversando nuovamente la procedura di associazione.

ACCOUNT_CLOSED_FRAUD

L'account dell'utente in possesso dell'integratore è stato chiuso a causa di attività fraudolente.

Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento attraversando nuovamente la procedura di associazione.

ACCOUNT_ON_HOLD L'account dell'utente è attualmente sospeso e non può accettare il rimborso, ma l'account dell'utente potrebbe essere in grado di accettare il rimborso in un secondo momento. Google potrebbe richiedere un altro rimborso in futuro, ma lo farà con un nuovo requestId, pertanto questa richiesta deve essere considerata completata.
REFUND_EXCEEDS_MAXIMUM_BALANCE Non è possibile elaborare il rimborso al momento perché, così facendo, il saldo dell'utente supera l'importo massimo consentito. Google potrebbe richiedere un altro rimborso in futuro, ma lo farà con un nuovo requestId, pertanto questa richiesta deve essere considerata completata.
REFUND_WINDOW_EXCEEDED Non è possibile elaborare il rimborso perché la richiesta non rientra nel periodo di rimborso consentito.