Method: disburseFunds

Lancer un transfert d'argent entre la société de traitement des paiements et le compte du client La combinaison de requestId dans l'en-tête et de paymentIntegratorAccountId est la clé d'idempotence et identifie cette transaction de manière unique. Toutes les mutations de cette transaction renseignent la valeur requestId dans le champ disburseFundsRequestId.

Si le point de terminaison rencontre une erreur lors du traitement de la requête, le corps de la réponse de ce point de terminaison doit être de type ErrorResponse.

Voici un exemple de requête:


{
  "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"
}

Voici un exemple de réponse:


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

Requête HTTP

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

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Représentation 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.
}
Champs
requestHeader

object (RequestHeader)

OBLIGATOIRE: en-tête commun à toutes les requêtes.

paymentIntegratorAccountId

string

OBLIGATOIRE: identifiant de compte de l'intégrateur de paiement qui identifie les contraintes contractuelles liées à cette transaction.

transactionDescription

string

OBLIGATOIRE: description de la transaction pouvant figurer sur la déclaration du client. Localisé dans le paramètre userLocale trouvé dans requestHeader. Ce format peut être modifié sans préavis et ne doit jamais être analysé.

currencyCode

string

OBLIGATOIRE: code de devise ISO 4217 à trois lettres

amount

string (Int64Value format)

OBLIGATOIRE: montant de l'achat, en micros de la devise.

Champ d'union destinationFopDetails.

destinationFopDetails ne peut être qu'un des éléments suivants :

upiDetails

object (UpiDetails)

FACULTATIF: détails du paiement spécifiques aux modes UPI.

Corps de la réponse

Objet de réponse pour le mode de paiement.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Représentation JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "disburseFundsResult": {
    object (DisburseFundsResult)
  }
}
Champs
responseHeader

object (ResponseHeader)

OBLIGATOIRE: en-tête commun à toutes les réponses.

paymentIntegratorTransactionId

string

OBLIGATOIRE: cet identifiant est spécifique à l'intégrateur et est généré par celui-ci. Il s'agit de l'identifiant par lequel l'intégrateur connaît cette transaction.

Pour plus de commodité, cet identifiant est inclus dans les détails du versement.

disburseFundsResult

object (DisburseFundsResult)

OBLIGATOIRE: résultat de l'appel de paiement.

UpiDetails

Informations sur le compte UPI vers lequel effectuer le versement.

Représentation JSON
{
  "vpa": string
}
Champs
vpa

string

OBLIGATOIRE: adresse de paiement virtuelle (VPA) de l'utilisateur utilisée pour transférer de l'argent à l'aide du protocole UPI. Par exemple : foo@icici.

DisburseFundsResult

Informations sur le résultat final d'un paiement.

Représentation 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.
}
Champs
disburseFundsResultCode

enum (DisburseFundsResultCode)

OBLIGATOIRE: code de résultat de ce paiement.

rawResult

object (RawResult)

FACULTATIF: résultat brut de ce versement. Permet d'informer le moteur de risques et les analyses de Google. En cas de mise en correspondance de code de refus, des données sont parfois perdues. L'intégrateur peut choisir de fournir à Google un code brut. Par exemple, une passerelle de carte de crédit (l'intégrateur) peut utiliser ce champ pour communiquer à Google le code de refus exact envoyé par le réseau VISA. Dans ce cas, le scope correspond à "visa". et rawCode correspond à tout ce que renvoie le réseau VISA.

Cette valeur est obligatoire si result n'est pas SUCCESS.

Champ d'union FailureDetail.

FailureDetail ne peut être qu'un des éléments suivants :

transactionMaxLimit

string (Int64Value format)

FACULTATIF: si disburseFundsResultCode est DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT, il s'agit de la valeur de la transaction maximale autorisée. Elle est utilisée pour les messages structurés destinés aux utilisateurs et pour l'analyse du taux de refus.

Cette valeur correspond à micros du même currencyCode que l'appel de méthode disburseFunds d'origine.

transactionMinLimit

string (Int64Value format)

FACULTATIF: si disburseFundsResultCode est DISBURSEMENT_UNDER_TRANSACTION_LIMIT, il s'agit de la valeur de la transaction minimale autorisée. Elle est utilisée pour les messages structurés destinés aux utilisateurs et pour l'analyse du taux de refus.

Cette valeur correspond à micros du même currencyCode que l'appel de méthode disburseFunds d'origine.

DisburseFundsResultCode

Codes de résultat pour un appel de paiement.

Enums
UNKNOWN_RESULT Ne définissez jamais cette valeur par défaut.
SUCCESS Paiement réussi.
DISBURSEMENT_UNDER_TRANSACTION_LIMIT Le montant du versement demandé n'atteint pas le montant minimal par transaction défini par l'intégrateur. Si vous utilisez ce code, renseignez le champ transactionMinLimit avec le montant minimal de transaction pour diffuser des messages destinés aux utilisateurs.
DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT Le montant du versement demandé dépasse la limite maximale par transaction définie par l'intégrateur. Si vous utilisez ce code, renseignez le champ transactionMaxLimit avec la limite de transaction pour envoyer des messages destinés aux utilisateurs.
ACCOUNT_CLOSED Le compte de l'utilisateur détenu par l'intégrateur a été clôturé. Cette valeur renvoyée entraîne la fermeture de l'instrument de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Le compte de l'utilisateur associé à l'intégrateur a été clôturé. Le compte a probablement été piraté. Cette valeur renvoyée entraîne la fermeture de l'instrument de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument.
ACCOUNT_CLOSED_FRAUD Le compte de l'utilisateur détenu par l'intégrateur a été clôturé pour fraude. Cette valeur renvoyée entraîne la fermeture de l'instrument de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument.
ACCOUNT_ON_HOLD Le compte de l'utilisateur est suspendu.

RawResult

Objet résultat brut.

Représentation JSON
{
  "scope": string,
  "rawCode": string
}
Champs
scope

string

FACULTATIF: champ d'application du brutCode (peut être vide).

rawCode

string

OBLIGATOIRE: code brut de l'intégrateur ou de ses sous-systèmes.