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.

Ecco un esempio di richiesta:


{
  "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: si tratta dell'identificatore dell'account dell'integratore pagamenti che identifica i vincoli contrattuali relativi a questa transazione.

transactionDescription

string

OBBLIGATORIO: questa è la descrizione della transazione che può essere inserita nell'estratto conto del cliente. Localizzato in userLocale trovato 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: importo dell'acquisto, in micro dell'unità di valuta.

Campo 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 risposta per il metodo di pagamento 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 dall'integratore. Si tratta dell'identificatore da cui l'integratore conosce questa transazione.

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

disburseFundsResult

object (DisburseFundsResult)

REQUIRED: il risultato della chiamata di pagamento dei fondi.

UpiDetails

Dettagli sull'account UPI a cui effettuare il pagamento.

Rappresentazione JSON
{
  "vpa": string
}
Campi
vpa

string

OBBLIGATORIO: l'indirizzo per i pagamenti virtuali (VPA) dell'utente utilizzato per trasferire denaro con 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)

REQUIRED: codice risultato di questo pagamento.

rawResult

object (RawResult)

FACOLTATIVO: risultato non elaborato di questo pagamento. 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.

Campo unione FailureDetail.

FailureDetail può essere solo uno dei seguenti:

transactionMaxLimit

string (Int64Value format)

FACOLTATIVO: se disburseFundsResultCode è DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT, questo è il valore del numero massimo di transazioni consentito. Viene utilizzato per la messaggistica strutturata rivolta agli utenti e l'analisi del tasso di rifiuto.

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

transactionMinLimit

string (Int64Value format)

FACOLTATIVO: se disburseFundsResultCode è DISBURSEMENT_UNDER_TRANSACTION_LIMIT, questo è il valore della transazione minima consentita. Viene utilizzato per la messaggistica strutturata rivolta agli utenti e l'analisi del tasso di rifiuto.

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

DisburseFundsResultCode

Codici risultato per una chiamata di pagamento di fondi.

Enum
UNKNOWN_RESULT Non impostare mai questo valore predefinito.
SUCCESS Pagamento eseguito correttamente.
DISBURSEMENT_UNDER_TRANSACTION_LIMIT L'importo di pagamento 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 della messaggistica per gli utenti.
DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT L'importo di esborso richiesto supera il limite massimo per transazione dell'integratore. Se viene usato questo codice, compila il campo transactionMaxLimit con il limite di transazioni per la messaggistica per gli utenti.
ACCOUNT_CLOSED L'account dell'utente presso l'integratore è stato chiuso. Questo valore restituito causerà la chiusura dello strumento dell'utente con Google. L'utente sarà costretto ad aggiungere un nuovo strumento.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER L'account dell'utente con l'integratore è stato chiuso e si è verificata una sospetta acquisizione dell'account. Questo valore restituito causerà la chiusura dello strumento dell'utente con Google. L'utente sarà costretto ad aggiungere un nuovo strumento.
ACCOUNT_CLOSED_FRAUD L'account dell'utente presso l'integratore è stato chiuso a causa di attività fraudolenta. Questo valore restituito causerà la chiusura dello strumento dell'utente con Google. L'utente sarà costretto ad aggiungere un nuovo strumento.
ACCOUNT_ON_HOLD L'account dell'utente è in sospeso.

RawResult

Oggetto risultato non elaborato.

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

string

OPTIONAL: l'ambito del rawCode può essere vuoto.

rawCode

string

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