Method: refund

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

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",
  "captureRequestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
  "currencyCode": "INR",
  "refundAmount": "208000000"
}

Voici un 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)

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

paymentIntegratorAccountId

string

OBLIGATOIRE: numéro de compte de l'intégrateur de paiement qui définit les contraintes contractuelles liées à cette transaction.

captureRequestId

string

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

currencyCode

string

OBLIGATOIRE: code de devise ISO 4217 à trois lettres

refundAmount

string (Int64Value format)

OBLIGATOIRE: Montant du remboursement. Il s'agit d'un nombre positif de micros correspondant à l'unité monétaire.

Corps de la réponse

Objet de réponse pour la méthode 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)

OBLIGATOIRE: en-tête commun à 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 par lequel l'intégrateur connaît le remboursement.

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

result

enum (RefundResultCode)

OBLIGATOIRE: résultat de ce remboursement.

rawResult

object (RawResult)

FACULTATIF: résultat brut de ce remboursement. 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.

RefundResultCode

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

Enums
UNKNOWN_RESULT Ne définissez jamais cette valeur par défaut.
SUCCESS Remboursement réussi.
NO_MONEY_LEFT_ON_TRANSACTION Échec de v1.refund. Il ne reste plus d'argent pour la transaction. Il s'agit généralement d'un bug entre l'intégrateur et Google. Google ne doit pas demander de remboursement d'un montant supérieur à celui de l'enregistrement d'origine.
ACCOUNT_CLOSED

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

Le renvoi de cette valeur entraîne la clôture du mode de paiement de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument en reprenant le flux d'association.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Le compte de l'utilisateur associé à l'intégrateur a été clôturé. Le compte a probablement été piraté.

Le renvoi de cette valeur entraîne la clôture du mode de paiement de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument en reprenant le flux d'association.

ACCOUNT_CLOSED_FRAUD

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

Le renvoi de cette valeur entraîne la clôture du mode de paiement de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument en reprenant le flux d'association.

ACCOUNT_ON_HOLD Le compte de l'utilisateur est actuellement suspendu et ne peut pas accepter le remboursement. Toutefois, le compte de l'utilisateur pourra peut-être le faire ultérieurement. Google pourra demander un autre remboursement à l'avenir, mais procédera avec un nouveau requestId. Cette demande doit donc être considérée comme traitée.
REFUND_EXCEEDS_MAXIMUM_BALANCE Impossible de traiter le remboursement pour le moment, car le solde de l'utilisateur risquerait de dépasser le montant maximal autorisé. Google pourra demander un autre remboursement à l'avenir, mais procédera avec un nouveau requestId. Cette demande doit donc être considérée comme traitée.
REFUND_WINDOW_EXCEEDED Impossible de traiter le remboursement, car la demande est en dehors du délai de remboursement autorisé.