Method: refund

Rembourse une partie ou l'intégralité de la transaction lancée via capture La combinaison de requestId dans l'en-tête et paymentIntegratorAccountId est la clé d'idempotence, qui identifie de manière unique cette transaction.

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.

Exemple de requête:


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

Exemple de réponse:


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

Requête HTTP :

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

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,
  "captureRequestId": string,
  "currencyCode": string,
  "refundAmount": string
}
Champs
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

REQUIRED: ID de compte d'intégrateur de paiement qui définit les contraintes contractuelles liées à cette transaction.

captureRequestId

string

REQUIRED: identifiant unique pour cette transaction. Il s'agit de l'requestId généré par Google lors de l'appel capture auquel cette requête est associée.

currencyCode

string

OBLIGATOIRE: code de devise à trois lettres ISO 4217

refundAmount

string (Int64Value format)

OBLIGATOIRE: montant du remboursement, soit un nombre positif de micros unités de la devise.

Corps de la réponse

Objet de réponse pour le mode de remboursement.

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)
  },
  "paymentIntegratorRefundId": string,
  "result": enum (RefundResultCode),
  "rawResult": {
    object (RawResult)
  }
}
Champs
responseHeader

object (ResponseHeader)

REQUIRED: en-tête commun pour toutes les réponses.

paymentIntegratorRefundId

string

FACULTATIF: cet identifiant est spécifique à l'intégrateur et est généré par celui-ci. Il s'agit de l'identifiant que l'intégrateur connaît pour ce remboursement.

Pour plus de commodité, cet identifiant est inclus dans les informations de paiement

result

enum (RefundResultCode)

OBLIGATOIRE: Résultat de ce remboursement.

rawResult

object (RawResult)

FACULTATIF: Résultat brut de ce remboursement. Permet de guider le moteur de gestion des risques et les analyses de Google. Dans les situations de mappage de code refusé, les données sont parfois perdues. L'intégrateur peut choisir de donner à Google un code brut. Par exemple, une passerelle de carte de crédit (l'intégrateur) peut utiliser ce champ pour indiquer à Google le code de refus exact reçu par le réseau VISA. Dans ce cas, le scope serait "visa" et le rawCode correspondrait à ce que le réseau VISA renvoyait.

Cette valeur est obligatoire si l'élément result n'est pas SUCCESS.

PaymentResultCode (Code de résultat du remboursement)

Les codes de résultats uniques sont remboursés.

Enums
UNKNOWN_RESULT Ne définissez jamais cette valeur par défaut.
SUCCESS Remboursement effectué.
NO_MONEY_LEFT_ON_TRANSACTION Échec de la v1.refund. Il ne reste aucune somme d'argent sur la transaction. En général, cela représente un bug entre l'intégrateur et Google. Google ne doit pas demander le remboursement d'un montant supérieur à celui de la capture d'origine.
ACCOUNT_CLOSED

Le compte détenu par l'intégrateur a été clôturé.

Si vous renvoyez cette valeur, l'instrument de l'utilisateur sera fermé avec Google. L'utilisateur sera contraint d'ajouter un nouvel instrument en suivant à nouveau le flux d'association.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Le compte de l'utilisateur associé à l'intégrateur a été clôturé. Il risque d'être piraté.

Si vous renvoyez cette valeur, l'instrument de l'utilisateur sera fermé avec Google. L'utilisateur sera contraint d'ajouter un nouvel instrument en suivant à nouveau le flux d'association.

ACCOUNT_CLOSED_FRAUD

Le compte de l'utilisateur détenu par l'intégrateur a été clôturé pour cause de fraude.

Si vous renvoyez cette valeur, l'instrument de l'utilisateur sera fermé avec Google. L'utilisateur sera contraint d'ajouter un nouvel instrument en suivant à nouveau le flux d'association.

ACCOUNT_ON_HOLD Le compte de l'utilisateur est actuellement suspendu et ne peut pas accepter le remboursement. Il pourra par la suite accepter le remboursement. Google pourra demander un nouveau remboursement ultérieurement, mais avec un nouveau requestId. Cette demande devrait donc être considérée comme terminée.
REFUND_EXCEEDS_MAXIMUM_BALANCE Le remboursement ne peut pas être effectué pour le moment, car cela entraînerait un dépassement du montant maximal autorisé. Google pourra demander un nouveau remboursement ultérieurement, mais avec un nouveau requestId. Cette demande devrait donc être considérée comme terminée.
REFUND_WINDOW_EXCEEDED Impossible de traiter le remboursement, car la demande est en dehors de la période de remboursement autorisée.