Method: refund

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

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

Ecco un esempio di richiesta:


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

Ecco 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: si tratta dell'ID account dell'integratore pagamenti che definisce i vincoli contrattuali relativi a questa transazione.

captureRequestId

string

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

currencyCode

string

OBBLIGATORIO: codice valuta ISO 4217 di tre lettere

refundAmount

string (Int64Value format)

OBBLIGATORIO: importo del rimborso, un numero positivo di micro dell'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 con cui l'integratore conosce questo rimborso.

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

result

enum (RefundResultCode)

REQUIRED: il risultato di questo rimborso.

rawResult

object (RawResult)

FACOLTATIVO: risultato non elaborato di questo rimborso. Utilizzato per fornire informazioni al motore di analisi e al motore di gestione dei rischi di Google. Nei casi in cui la mappatura del codice viene rifiutata, i dati a volte vanno persi. L'integratore può scegliere di fornire a Google un codice non elaborato. Ad esempio, un gateway della carta di credito (l'integratore) può utilizzare questo campo per comunicare a Google l'esatto codice di rifiuto ricevuto dalla rete VISA. In questo caso, il scope è "visto" e rawCode sarebbe qualsiasi cosa restituita dalla rete VISA.

Questo valore è obbligatorio se result non è SUCCESS.

RefundResultCode

I codici risultato univoci vengono rimborsati.

Enum
UNKNOWN_RESULT Non impostare mai questo valore predefinito.
SUCCESS Rimborso eseguito correttamente.
NO_MONEY_LEFT_ON_TRANSACTION v1.refund non riuscito. Non è rimasto alcun 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 dell'acquisizione originale.
ACCOUNT_CLOSED

L'account presso l'integratore è stato chiuso.

Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento ripetendo il flusso di associazione.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

L'account dell'utente con l'integratore è stato chiuso e si è verificata una presenza di presunte violazioni dell'account.

Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento ripetendo il flusso di associazione.

ACCOUNT_CLOSED_FRAUD

L'account dell'utente presso l'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 ripetendo il flusso 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 dovrebbe essere considerata completata.
REFUND_EXCEEDS_MAXIMUM_BALANCE Al momento non è possibile elaborare il rimborso perché così facendo il saldo dell'utente supererebbe l'importo massimo consentito. Google potrebbe richiedere un altro rimborso in futuro, ma lo farà con un nuovo requestId, pertanto questa richiesta dovrebbe essere considerata completata.
REFUND_WINDOW_EXCEEDED Impossibile elaborare il rimborso perché la richiesta è al di fuori del periodo di rimborso consentito.