Method: disburseFunds

Avvia il trasferimento di denaro tra l'elaboratore dei pagamenti e l'account del cliente. La combinazione di requestId nell'intestazione e paymentIntegratorAccountId è la chiave di idempotenza e identifica in modo univoco questa transazione. Tutte le mutazioni di questa transazione completano il valore requestId nel campo disburseFundsRequestId.

Se l'endpoint rileva un errore durante l'elaborazione della richiesta, il corpo della risposta da 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",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "208000000"
}

Ecco un esempio di risposta:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA",
  "disburseFundsResult": {
    "disburseFundsResultCode": "SUCCESS"
  }
}

Richiesta HTTP

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

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "transactionDescription": string,
  "currencyCode": string,
  "amount": string,

  // Union field destinationFopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  }
  // End of list of possible types for union field destinationFopDetails.
}
Campi
requestHeader

object (RequestHeader)

REQUIRED: intestazione comune per tutte le richieste.

paymentIntegratorAccountId

string

REQUIRED: questo è l'identificatore dell'account dell'integratore dei pagamenti che identifica i vincoli contrattuali relativi a questa transazione.

transactionDescription

string

REQUIRED: questa è la descrizione della transazione che può essere inserita nell'estratto conto del cliente. Localizzazione nella userLocale trovata in requestHeader. Questo formato può essere modificato senza preavviso e non deve mai essere analizzato.

currencyCode

string

OBBLIGATORIO: codice valuta ISO 4217 di tre lettere

amount

string (Int64Value format)

OBBLIGATORIO: l'importo dell'acquisto espresso in micro dell'unità di valuta.

Campo di unione destinationFopDetails.

destinationFopDetails può essere solo uno dei seguenti:

upiDetails

object (UpiDetails)

FACOLTATIVO: dettagli di pagamento specifici per gli strumenti UPI.

Corpo della risposta

Oggetto della risposta per il metodo di erogazione dei fondi.

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

Rappresentazione JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "disburseFundsResult": {
    object (DisburseFundsResult)
  }
}
Campi
responseHeader

object (ResponseHeader)

REQUIRED: intestazione comune per tutte le risposte.

paymentIntegratorTransactionId

string

REQUIRED: questo identificatore è specifico per l'integratore e viene generato da quest'ultimo. Si tratta dell'identificatore con cui l'integratore conosce la transazione.

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

disburseFundsResult

object (DisburseFundsResult)

REQUIRED: il risultato della chiamata per l'erogazione dei fondi.

UpiDetails

Dettagli sul conto UPI a cui effettuare l'erogazione.

Rappresentazione JSON
{
  "vpa": string
}
Campi
vpa

string

OBBLIGATORIO: l'indirizzo virtuale per i pagamenti (VPA) dell'utente utilizzato per trasferire denaro tramite il protocollo UPI. ad esempio foo@icici.

DisburseFundsResult

Informazioni sul risultato finale di un pagamento.

Rappresentazione JSON
{
  "disburseFundsResultCode": enum (DisburseFundsResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string
  // End of list of possible types for union field FailureDetail.
}
Campi
disburseFundsResultCode

enum (DisburseFundsResultCode)

OBBLIGATORIO: codice risultato di questo pagamento.

rawResult

object (RawResult)

FACOLTATIVO: risultato non elaborato di questo pagamento. Utilizzato per fornire informazioni utili al motore dei rischi e all'analisi di Google. Nelle situazioni in cui la mappatura del codice viene rifiutata, a volte i dati 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, scope corrisponde a "visa" e rawCode corrisponde a ciò che la rete VISA ha restituito.

Questo valore è obbligatorio se result non è SUCCESS.

Campo di unione FailureDetail.

FailureDetail può essere solo uno dei seguenti:

transactionMaxLimit

string (Int64Value format)

FACOLTATIVO: se disburseFundsResultCode è DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT, questo sarà il valore della transazione massima consentita. Questa funzionalità viene utilizzata per i messaggi strutturati rivolti agli utenti e per l'analisi della percentuale di rifiuto.

Questo importo è pari a micro dello stesso currencyCode della chiamata al metodo disburseFunds originale.

transactionMinLimit

string (Int64Value format)

FACOLTATIVO: se disburseFundsResultCode è DISBURSEMENT_UNDER_TRANSACTION_LIMIT, questo sarà il valore della transazione minima consentita. Questa funzionalità viene utilizzata per i messaggi strutturati rivolti agli utenti e per l'analisi della percentuale di rifiuto.

Questo importo è pari a micro dello stesso currencyCode della chiamata al metodo disburseFunds originale.

DisburseFundsResultCode

Codici risultato per una chiamata di pagamento dei fondi.

Enum
UNKNOWN_RESULT Non impostare mai questo valore predefinito.
SUCCESS Erogazione eseguita correttamente.
DISBURSEMENT_UNDER_TRANSACTION_LIMIT L'importo dell'esborso richiesto non soddisfa l'importo minimo per transazione dell'integratore. Se viene utilizzato questo codice, compila il campo transactionMinLimit con l'importo minimo della transazione ai fini dei messaggi per gli utenti.
DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT L'importo del pagamento richiesto supera il limite massimo per transazione dell'integratore. Se viene utilizzato questo codice, compila il campo transactionMaxLimit con il limite di transazioni ai fini della messaggistica per gli utenti.
ACCOUNT_CLOSED L'account dell'utente mantenuto presso l'integratore è stato chiuso. Questo valore restituito comporterà la chiusura dello strumento dell'utente con Google. L'utente dovrà aggiungere un nuovo strumento.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER L'account dell'utente con l'integratore è stato chiuso, sospetta violazione dell'account. Questo valore restituito comporterà la chiusura dello strumento dell'utente con Google. L'utente dovrà aggiungere un nuovo strumento.
ACCOUNT_CLOSED_FRAUD L'account dell'utente mantenuto presso l'integratore è stato chiuso a causa di attività fraudolente. Questo valore restituito comporterà la chiusura dello strumento dell'utente con Google. L'utente dovrà aggiungere un nuovo strumento.
ACCOUNT_ON_HOLD L'account dell'utente è sospeso.

RawResult

Oggetto risultato non elaborato.

Rappresentazione JSON
{
  "scope": string,
  "rawCode": string
}
Campi
scope

string

FACOLTATIVO: l'ambito di rawCode può essere vuoto.

rawCode

string

OBBLIGATORIO: codice non elaborato dall'integratore o dai sottosistemi al suo interno.