Method: getDisputeInquiryReport

Obtenez un rapport qui fournit des informations permettant de faciliter une conversation avec le service client avec un utilisateur au sujet d'une contestation potentielle d'un paiement.

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

Les réponses à cette requête peuvent être vides si cette méthode ne renvoie pas de code HTTP 200. Le corps de la réponse est vide dans les cas où un ErrorResponse avec une description claire pourrait être utilisé pour aider un pirate informatique à comprendre l'identifiant de compte d'intégrateur de paiement d'autres intégrateurs. Dans les cas où la clé de signature ne correspond pas, que l'identifiant de l'intégrateur de paiement est introuvable ou que la clé de chiffrement est inconnue, cette méthode renvoie une réponse HTTP 404 avec un corps vide. Si la signature de la requête a pu être vérifiée, des informations supplémentaires sur l'erreur sont renvoyées dans le corps de la réponse.

Voici un exemple de requête:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1519996751331"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA",
  "paymentLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "existingGoogleClaimId": "138431383281",
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City",
    "agentId": "982749"
  }
}

Voici un exemple de réponse:


{
  "responseHeader": {
    "responseTimestamp": "1519996752221"
  },
  "result": "SUCCESS",
  "googleClaimId": "138431383281",
  "report": {
    "customerAccount": {
      "customerEmail": "example@gmail.com",
      "customerName" : "Example Customer"
    },
    "order": {
      "timestamp": "1517992525972",
      "orderId": "SOP.8976-1234-1234-123456..99",
      "currencyCode": "USD",
      "subTotalAmount": "206990000",
      "totalAmount": "212990000",
      "shippingAddress": {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "taxes": [
        {
          "description": "Colorado Sales Tax",
          "amount": "6000000"
        }
      ],
      "items": [
        {
          "description": "Super cool gizmo",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "2",
          "totalPrice": "198000000"
        },
        {
          "description": "Gizmo charger",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "1",
          "totalPrice": "8990000"
        }
      ]
    },
    "payment": {
      "billingAddress" : {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "amount": "100000000",
      "refunds": [
        {
          "amount": "9250000",
          "initiatedTimestamp": "1518811245384"
        }
      ],
      "cardDetails": {
        "authResult": "APPROVED"
      }
    }
  }
}

Requête HTTP

POST https://vgw.googleapis.com/secure-serving/gsp/v1/getDisputeInquiryReport/:PIAID

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,
  "paymentLookupCriteria": {
    object (PaymentLookupCriteria)
  },
  "existingGoogleClaimId": string,
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Champs
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

OBLIGATOIRE: identifiant de compte de l'intégrateur de paiement qui identifie l'appelant et les contraintes contractuelles associées à cette interaction.

paymentLookupCriteria

object (PaymentLookupCriteria)

OBLIGATOIRE: critères indiquant le paiement à rechercher pour cette demande.

existingGoogleClaimId

string

FACULTATIF: chaîne générée par Google, renvoyée par un appel précédent à getDisputeInquiryReport, et qui identifie de manière unique la réclamation de contestation du client.

S'il n'est pas indiqué, un nouvel ID de revendication est généré. L'appelant peut fournir un googleClaimId qui a été renvoyé par un appel précédent à getDisputeInquiryReport s'il fait suite à la même contestation du client.

L'ID de revendication renseigné ici ou généré est renvoyé dans le champ googleClaimId de la réponse.

Fournir un googleClaimId qui n'a pas été renvoyé par un appel précédent à getDisputeInquiryReport n'est pas valide. Dans ce cas, le code d'état HTTP 400 (Requête incorrecte) est renvoyé.

requestOriginator

object (RequestOriginator)

OBLIGATOIRE: informations sur l'organisation ou le sous-groupe organisationnelle à l'origine de la requête.

Corps de la réponse

Charge utile de réponse pour la méthode getDisputeInquiryReport.

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)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
Champs
responseHeader

object (ResponseHeader)

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

result

enum (GetDisputeInquiryReportResultCode)

OBLIGATOIRE: résultat de cet appel.

googleClaimId

string

FACULTATIF: chaîne générée par Google qui identifie de manière unique le litige avec le client. (présent uniquement si la valeur de result est SUCCESS).

Si existingGoogleClaimId a été renseigné dans la requête, il s'agira de la même valeur. Sinon, il s'agira d'une nouvelle valeur générée. Cette valeur pourra être indiquée dans les futures demandes getDisputeInquiryReport si elles font partie du même litige avec un client.

report

object (PurchaseReport)

FACULTATIF: informations concernant la contestation du paiement identifié dans la demande. (présent uniquement si la valeur de result est SUCCESS).

RequestHeader

Objet d'en-tête qui est défini sur toutes les requêtes envoyées au serveur.

Représentation JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Champs
requestId

string

OBLIGATOIRE: Identifiant unique de cette requête.

Il s'agit d'une chaîne d'une longueur maximale de 100 caractères, qui ne contient que les caractères "a-z", "A-Z", "0-9", ":", "-" et "_".

requestTimestamp

string (int64 format)

REQUIRED: horodatage de cette requête représenté en millisecondes depuis l'epoch. Le récepteur doit vérifier que ce code temporel correspond à environ 60 secondes de "now" (maintenant). Cet horodatage de requête n'est pas idempotent lors de nouvelles tentatives.

userLocale
(deprecated)

string

OBSOLÈTE: code de langue ISO 639-2 Alpha 3 à deux ou trois lettres suivi éventuellement d'un tiret et du code pays ISO 3166-1 Alpha-2 (par exemple, "pt", "pt-BR", "fil" ou "fil-PH"). Utilisez-le pour faciliter le fonctionnement des champs userMessage dans la réponse.

protocolVersion

object (Version)

OBLIGATOIRE: version de cette requête.

Version

Un objet Version, qui est une forme structurée de la structure de version a.b.c classique La compatibilité des versions majeures du même nombre est garantie. Notez que les modifications mineures et révisions peuvent être fréquemment modifiées sans préavis. L'intégrateur doit accepter toutes les requêtes liées à la même version majeure.

Représentation JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Champs
major

integer

OBLIGATOIRE: version majeure. Cette option n'est pas garantie pour les demandes de compatibilité avec différentes versions.

minor

integer

OBLIGATOIRE: version mineure. Cela indique des corrections de bugs importantes.

revision

integer

OBLIGATOIRE: version mineure. Cela indique des corrections de bugs mineurs.

PaymentLookupCriteria

Conteneur pour les critères permettant de rechercher un paiement de manière unique. Un (et un seul) champ de membre doit être renseigné.

Représentation JSON
{

  // Union field criteria can be only one of the following:
  "arnCriteria": {
    object (ArnCriteria)
  },
  "googleTransactionReferenceNumberCriteria": {
    object (GoogleTransactionReferenceNumberCriteria)
  }
  // End of list of possible types for union field criteria.
}
Champs

Champ d'union criteria.

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

arnCriteria

object (ArnCriteria)

FACULTATIF: Recherche basée sur le numéro de référence de l'acquéreur (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

FACULTATIF: effectuez une recherche à l'aide du numéro de référence de la transaction Google.

ArnCriteria

Critères de recherche de paiement basés sur le numéro de référence de l'acquéreur (ARN).

Représentation JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Champs
acquirerReferenceNumber

string

OBLIGATOIRE: numéro de référence de l'acquéreur qui identifie le paiement de manière unique. Doit comporter 23 chiffres.

authorizationCode

string

OBLIGATOIRE: code d'autorisation de la transaction.

GoogleTransactionReferenceNumberCriteria

Critères de recherche de paiement basés sur le numéro de référence de la transaction généré par Google.

Représentation JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Champs
googleTransactionReferenceNumber

string

OBLIGATOIRE: numéro de référence de la transaction généré par Google, qui identifie le paiement de manière unique.

authorizationCode

string

OBLIGATOIRE: code d'autorisation de la transaction.

RequestOriginator

Informations sur l'organisation ou le sous-groupe d'organisations, et éventuellement sur l'employé à l'origine de la demande. Cela permet à Google d'identifier les problèmes ou les utilisations abusives, et de mettre en œuvre des contrôles à un niveau plus précis que paymentIntegratorAccountId. Cela est particulièrement utile lorsque l'appelant est un fournisseur de services intermédiaire qui s'approvisionne en requêtes de plusieurs clients externes.

Représentation JSON
{
  "organizationId": string,
  "organizationDescription": string,
  "agentId": string
}
Champs
organizationId

string

OBLIGATOIRE: identifiant de l'entreprise, de l'organisation ou du groupe organisationnelle d'où provient cette requête. Doit être unique dans cet paymentIntegratorAccountId.

organizationDescription

string

OBLIGATOIRE: nom ou description lisible de l'organisation, qui peut être utilisé pour faciliter la communication entre les employés de Google et l'intégrateur au sujet de cette organisation.

agentId

string

FACULTATIF: identifiant unique de l'agent (employé) spécifique de l'organisation identifié par organizationId à l'origine de la requête. Doit être unique dans cet organizationId.

GetDisputeInquiryReportResultCode

Résultat de l'appel de la méthode getDisputeInquiryReport.

Enums
UNKNOWN_RESULT Ne définissez jamais cette valeur par défaut.
SUCCESS Le paiement a été trouvé, et un rapport est disponible.
PAYMENT_NOT_FOUND Le paiement demandé est introuvable.
PAYMENT_TOO_OLD Le paiement demandé a été trouvé, mais aucun rapport n'a été fourni en raison de l'ancienneté du paiement.
ORDER_CANNOT_BE_RETURNED Le paiement demandé appartient à une commande qui existe, mais ne peut pas être retournée. Il peut s'agir, par exemple, de cas où l'ordonnance a été supprimée à la demande de son propriétaire.
NO_ADDITIONAL_DETAILS Le paiement demandé a été trouvé, mais aucun rapport n'est disponible.

PurchaseReport

Rapport contenant des détails pertinents sur l'achat associé au paiement demandé.

Représentation JSON
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
Champs
customerAccount

object (CustomerAccount)

OBLIGATOIRE: informations concernant le client et son compte.

order

object (Order)

OBLIGATOIRE: informations concernant la commande sur laquelle le paiement a été effectué.

payment

object (Payment)

FACULTATIF: informations concernant le paiement. Remarque: Il est possible de payer plusieurs paiements sur une même commande, mais cette liste ne contiendra que les informations relatives au paiement identifié dans la demande initiale. Non disponible pour tous les types de commandes.

CustomerAccount

Informations sur le compte du client

Représentation JSON
{
  "customerEmail": string,
  "customerName": string
}
Champs
customerEmail

string

OBLIGATOIRE: adresse e-mail associée au compte Google du client.

customerName

string

OBLIGATOIRE: nom du client.

Commande

Informations sur la commande.

Représentation JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "shippingAddress": {
    object (Address)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Champs
timestamp

string (int64 format)

FACULTATIF: code temporel du moment où la commande a été passée, exprimé en millisecondes écoulées depuis l'epoch. Non disponible pour tous les types de commandes.

orderId

string

FACULTATIF: chaîne identifiant la commande de manière unique. Non disponible pour tous les types de commandes.

currencyCode

string

FACULTATIF: code de devise ISO 4217 à trois lettres pour tous les montants de la commande. Non disponible pour tous les types de commandes.

subTotalAmount

string (Int64Value format)

FACULTATIF: montant total hors taxes de la commande, exprimé en micros dans la devise indiquée dans le fichier order.currencyCode. Cela équivaut à SUM(items.totalPrice). Non disponible pour tous les types de commandes.

totalAmount

string (Int64Value format)

FACULTATIF: montant total de la commande, taxes incluses, exprimé en micros dans la devise indiquée dans le fichier order.currencyCode. Cela équivaut à subTotalAmount + SUM(taxes.amount). Non disponible pour tous les types de commandes.

shippingAddress

object (Address)

FACULTATIF: adresse de livraison des articles physiques de cette commande.

items[]

object (Item)

OBLIGATOIRE: liste des éléments qui faisaient partie de cet ordre.

taxes[]

object (Tax)

OBLIGATOIRE: liste des éléments qui faisaient partie de cet ordre. Cette liste peut être vide.

Adresse

Structure contenant des informations sur une adresse.

Représentation JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
Champs
name

string

FACULTATIF: Nom complet du client.

addressLine[]

string

FACULTATIF: contient du texte d'adresse non structuré.

localityName

string

FACULTATIF: ce terme est vague, mais il désigne généralement la partie ville d'une adresse. Dans les régions du monde où les localités ne sont pas bien définies ou ne s'intègrent pas bien dans cette structure (par exemple, le Japon et la Chine), laissez le champ LocalNameName (Nom de la ville) vide et utilisez addressLine.

Exemples : une "city" aux États-Unis, une "comune" en Italie, une "post town" au Royaume-Uni.

administrativeAreaName

string

FACULTATIF : Sous-division administrative de niveau supérieur du pays ("État des États-Unis", "Région IT", "Province du CN", "Préfecture du Japon").

postalCodeNumber

string

FACULTATIF: Malgré le nom, les valeurs "postalCodeNumber" sont souvent alphanumériques. Exemples: "94043", "SW1W", "SW1W 9TQ".

countryCode

string

FACULTATIF: Code pays de l'adresse du client, qui doit être ISO-3166-1 Alpha-2.

Article

Informations sur un article de la commande.

Représentation JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Champs
description

string

FACULTATIF: description de l'article acheté. Non disponible pour tous les types de commandes.

merchant

string

OBLIGATOIRE: vendeur, artiste ou fabricant de l'article.

quantity

string (Int64Value format)

FACULTATIF: quantité commandée pour cet article.

Ce champ est omis si les quantités entières ne sont pas applicables au produit (les produits facturés au compteur peuvent avoir des quantités fractionnaires, par exemple).

totalPrice

string (Int64Value format)

FACULTATIF: prix total de l'article, exprimé en micros dans la devise spécifiée dans le fichier order.currencyCode. Si quantity est renseigné, il s'agit du prix total de la quantité totale. Non disponible pour tous les types de commandes.

googleProductName

string

OBLIGATOIRE: nom du service produit Google associé à l'article.

Taxes

Informations sur les taxes qui s'appliquent à cette commande.

Représentation JSON
{
  "description": string,
  "amount": string
}
Champs
description

string

OBLIGATOIRE: description de la taxe.

amount

string (Int64Value format)

OBLIGATOIRE: montant de la taxe, exprimé en micros de la devise spécifiée dans le champ order.currencyCode.

Paiement

Informations sur le paiement.

Représentation JSON
{
  "billingAddress": {
    object (Address)
  },
  "amount": string,
  "refunds": [
    {
      object (Refund)
    }
  ],

  // Union field fopDetails can be only one of the following:
  "cardDetails": {
    object (PaymentCardDetails)
  }
  // End of list of possible types for union field fopDetails.
}
Champs
billingAddress

object (Address)

OBLIGATOIRE: adresse de facturation pour ce paiement.

amount

string (Int64Value format)

OBLIGATOIRE: montant de ce paiement, exprimé en micros dans la devise spécifiée dans le champ order.currencyCode. Remarque: Il est possible que cette valeur ne corresponde pas à l'attribut order.totalAmount si la commande a été réglée via plusieurs paiements.

refunds[]

object (Refund)

OBLIGATOIRE: liste des remboursements effectués pour ce paiement. Cette liste peut être vide.

Champ d'union fopDetails.

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

cardDetails

object (PaymentCardDetails)

FACULTATIF: détails de paiement spécifiques aux modes de paiement associés à des cartes de crédit et de débit.

Remboursement

Informations sur un remboursement effectué pour un paiement.

Représentation JSON
{
  "amount": string,
  "initiatedTimestamp": string
}
Champs
amount

string (Int64Value format)

OBLIGATOIRE: montant remboursé (nombre positif en micros de la devise spécifiée dans le champ order.currencyCode).

initiatedTimestamp

string (int64 format)

OBLIGATOIRE: horodatage du lancement du remboursement, exprimé en millisecondes écoulées depuis l'epoch.

PaymentCardDetails

Détails de paiement spécifiques aux cartes de crédit et de débit.

Représentation JSON
{
  "authResult": enum (AuthResult)
}
Champs
authResult

enum (AuthResult)

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

AuthResult

Résultats de l'authentification de paiement.

Enums
UNKNOWN_RESULT Ne définissez jamais cette valeur par défaut.
APPROVED Authentification approuvée.
DENIED Authentification refusée.
NOT_ATTEMPTED Échec de l'authentification.