Method: getDisputeInquiryReport

Generare un report che fornisce informazioni per agevolare una conversazione con l'assistenza clienti relativa a una potenziale contestazione di un pagamento.

Se si verifica un errore durante l'elaborazione della richiesta, la risposta di questo endpoint sarà di tipo ErrorResponse.

Le risposte a questa query potrebbero essere vuote se questo metodo non restituisce un codice HTTP 200. Il corpo della risposta è vuoto nel caso in cui un ErrorResponse con una descrizione chiara possa essere utilizzato per aiutare un utente malintenzionato a comprendere l'identificatore di account integratore di pagamento di altri integratori. In questi casi, in cui la chiave di firma non corrisponde, non è stato trovato l'identificatore dell'integratore dei pagamenti o la chiave di crittografia era sconosciuta, questo metodo restituirà un errore HTTP 404 con un corpo vuoto. Se è stato possibile verificare la firma della richiesta, nel corpo della risposta verranno restituite ulteriori informazioni sull'errore.

Una richiesta di esempio ha il seguente aspetto:


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

Un esempio di risposta è:


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

Richiesta HTTP

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

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "paymentLookupCriteria": {
    object (PaymentLookupCriteria)
  },
  "existingGoogleClaimId": string,
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Campi
requestHeader

object (RequestHeader)

REQUIRED: intestazione comune per tutte le richieste.

paymentIntegratorAccountId

string

REQUIRED: l'identificatore dell'account integrato del pagamento che identifica il chiamante e i vincoli contrattuali associati a questa interazione.

paymentLookupCriteria

object (PaymentLookupCriteria)

REQUIRED: i criteri che indicano il pagamento da ricercare per la richiesta di informazioni.

existingGoogleClaimId

string

OPTIONAL: una stringa generata da Google restituita da una chiamata precedente a getDisputeInquiryReport che identifica in modo univoco la rivendicazione di questa contestazione del cliente.

Se non è presente, verrà generato un nuovo ID rivendicazione. Il chiamante può fornire un googleClaimId restituito da una chiamata precedente a getDisputeInquiryReport se si tratta della continuazione della stessa contestazione del cliente.

L'ID rivendicazione che viene inserito qui o generato verrà restituito nel campo googleClaimId della risposta.

Non è valido fornire un googleClaimId che non è stato restituito da una chiamata precedente a getDisputeInquiryReport. In questo caso, verrà restituita una richiesta HTTP 400 non valida.

requestOriginator

object (RequestOriginator)

REQUIRED: informazioni sull'organizzazione o sul sottogruppo dell'organizzazione da cui ha avuto origine questa richiesta.

Corpo della risposta

Payload della risposta per il metodo getDisputeInquiryReport.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
Campi
responseHeader

object (ResponseHeader)

REQUIRED: intestazione comune per tutte le risposte.

result

enum (GetDisputeInquiryReportResultCode)

REQUIRED: risultato della chiamata.

googleClaimId

string

OPTIONAL: una stringa generata da Google che identifica in modo univoco questa contestazione del cliente. (presenta se e solo se result è SUCCESSO.)

Se nella richiesta è stato completato existingGoogleClaimId, questo sarà lo stesso valore. In caso contrario, sarà un valore appena generato. Questo valore può essere fornito in futuro in getDisputeInquiryReport richieste se fanno parte della stessa contestazione del cliente.

report

object (PurchaseReport)

FACOLTATIVO: i dettagli relativi alla contestazione del pagamento identificato nella richiesta. (presenta se e solo se result è SUCCESSO.)

Criteri di ricerca dei pagamenti

Contenitore per criteri che possono cercare in modo univoco un pagamento. È necessario compilare un (e un solo) campo membro.

Rappresentazione JSON
{

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

Campo unione criteria.

criteria può essere solo uno dei seguenti:

arnCriteria

object (ArnCriteria)

OPTIONAL: ricerca basata sull'Acquirer Reference Number (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

OPTIONAL: ricerca basata sul numero di riferimento della transazione Google.

captureRequestCriteria

object (CaptureRequestCriteria)

FACOLTATIVO: ricerca basata sull'ID richiesta di acquisizione.

Criteri Arn

Criteri di ricerca dei pagamenti basati sul numero di riferimento Acquirer Reference (ARN).

Rappresentazione JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Campi
acquirerReferenceNumber

string

REQUIRED: il numero di riferimento dell'Acquirer (ARN) che identifica in modo univoco il pagamento. Deve avere una lunghezza di 23 cifre.

authorizationCode

string

REQUIRED: il codice di autorizzazione per la transazione.

Criteri di numero di transazione Google

Criteri di ricerca dei pagamenti basati sul numero di riferimento per la transazione generato da Google.

Rappresentazione JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Campi
googleTransactionReferenceNumber

string

REQUIRED: il numero di riferimento della transazione generato da Google che identifica in modo univoco il pagamento.

authorizationCode

string

REQUIRED: il codice di autorizzazione per la transazione.

Criteri di richiesta di acquisizione

Criteri di ricerca dei pagamenti basati sulla richiesta di acquisizione originale.

Rappresentazione JSON
{
  "captureRequestId": string
}
Campi
captureRequestId

string

REQUIRED: un identificatore univoco per questa transazione. Questo è l'requestId generato da Google durante la chiamata capture che sta cercando.

OriginOriginator

Informazioni sull'organizzazione o sul sottogruppo dell'organizzazione e, facoltativamente, sul dipendente da cui ha avuto origine questa richiesta. In questo modo, Google può identificare i problemi o gli abusi e implementare controlli a un livello più dettagliato rispetto a paymentIntegratorAccountId. Questo è particolarmente importante quando il chiamante è un fornitore di servizi intermediario che raccoglie le richieste da più client esterni.

Rappresentazione JSON
{
  "organizationId": string,
  "organizationDescription": string,
  "agentId": string
}
Campi
organizationId

string

REQUIRED: un identificatore dell'azienda, dell'organizzazione o del gruppo organizzativo da cui ha avuto origine questa richiesta. Deve essere univoco all'interno di questo elemento paymentIntegratorAccountId.

organizationDescription

string

REQUIRED: un nome leggibile o una descrizione dell'organizzazione che può essere utilizzato per facilitare le comunicazioni tra i dipendenti di Google e l'integratore in merito a tale organizzazione.

agentId

string

FACOLTATIVO: un identificatore univoco per l'agente specifico (dipendente) dell'organizzazione identificato da organizationId da cui ha avuto origine la richiesta. Deve essere univoco all'interno di questo elemento organizationId.

GetDisputeInquiryReportResultsCode

Il risultato della chiamata al metodo getDisputeInquiryReport.

Enum
UNKNOWN_RESULT Non impostare questo valore predefinito.
SUCCESS Il pagamento è stato trovato e viene fornito un report.
PAYMENT_NOT_FOUND Il pagamento richiesto non è stato trovato.
PAYMENT_TOO_OLD Il pagamento richiesto è stato trovato, ma non è stato fornito alcun report a causa dell'età del pagamento.
ORDER_CANNOT_BE_RETURNED Il pagamento richiesto appartiene a un ordine esistente, ma non può essere restituito. I motivi includono i casi in cui l'ordine è stato rimosso su richiesta del suo proprietario.
NO_ADDITIONAL_DETAILS Il pagamento richiesto è stato trovato, ma non è disponibile un report.

ReportAcquisto

Un report contenente i dettagli pertinenti dell'acquisto associato al pagamento richiesto.

Rappresentazione JSON
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
Campi
customerAccount

object (CustomerAccount)

REQUIRED: informazioni relative al cliente e al suo account.

order

object (Order)

REQUIRED: informazioni sull'ordine in cui è stato effettuato il pagamento.

payment

object (Payment)

OPTIONAL: informazioni relative al pagamento. Nota: sono possibili più pagamenti per un singolo ordine, ma questi contengono solo i dati per il pagamento identificato nella richiesta originale. Non disponibile per tutti i tipi di ordine.

Account cliente

Informazioni sull'account del cliente

Rappresentazione JSON
{
  "customerEmail": string,
  "customerName": string
}
Campi
customerEmail

string

REQUIRED: l'indirizzo email associato all'Account Google del cliente.

customerName

string

REQUIRED: il nome del cliente.

Ordine

Informazioni sull'ordine.

Rappresentazione JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "shippingAddress": {
    object (Address)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Campi
timestamp

string (int64 format)

FACOLTATIVO: timestamp di quando è stato effettuato l'ordine, rappresentato come millisecondi dall'epoca. Non disponibile per tutti i tipi di ordine.

orderId

string

OPTIONAL: una stringa che identifica in modo univoco questo ordine. Non disponibile per tutti i tipi di ordine.

currencyCode

string

FACOLTATIVO: il codice valuta ISO 4217 di tre lettere per tutti gli importi dell'ordine indicato. Non disponibile per tutti i tipi di ordine.

subTotalAmount

string (Int64Value format)

FACOLTATIVO: l'importo totale dell'ordine al netto delle imposte, rappresentato come micro della valuta specificata in order.currencyCode. Uguale a SUM(items.totalPrice). Non disponibile per tutti i tipi di ordine.

totalAmount

string (Int64Value format)

FACOLTATIVO: l'importo totale dell'ordine, comprensivo di imposte, rappresentato come micro valuta della valuta specificata in order.currencyCode. Uguale a subTotalAmount + SUM(taxes.amount). Non disponibile per tutti i tipi di ordine.

shippingAddress

object (Address)

FACOLTATIVO: indirizzo di spedizione per gli articoli fisici in questo ordine.

items[]

object (Item)

REQUIRED: elenco di articoli che facevano parte di questo ordine.

taxes[]

object (Tax)

REQUIRED: elenco di articoli che facevano parte di questo ordine. Questo elenco potrebbe essere vuoto.

Indirizzo

Struttura contenente informazioni su un indirizzo.

Rappresentazione JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
Campi
name

string

FACOLTATIVO: nome e cognome del cliente.

addressLine[]

string

FACOLTATIVO: contiene il testo dell'indirizzo non strutturato.

localityName

string

FACOLTATIVO: si tratta di un termine incomprensibile, ma generalmente si riferisce alla porzione di città di un indirizzo. Nelle regioni del mondo in cui le località non sono ben definite o non si adattano bene a questa struttura (ad es. Giappone e Cina), lascia vuoto il campo NeighborhoodName e utilizza addressLine.

Esempi: "city" per gli Stati Uniti, "comune" in Italia, "post city" nel Regno Unito.

administrativeAreaName

string

FACOLTATIVO: suddivisione amministrativa di primo livello del paese. Esempi: stato degli Stati Uniti, regione IT, provincia del CN, prefettura del Giappone."

postalCodeNumber

string

FACOLTATIVO: nonostante il nome, i valori postaliCodeNumber sono spesso alfanumerici. Esempi: "94043", "SW1W", "SW1W 9TQ".

countryCode

string

FACOLTATIVO: il codice del paese dell'indirizzo del cliente deve essere conforme allo standard ISO-3166-1 Alpha-2.

Articolo

Informazioni su un articolo dell'ordine.

Rappresentazione JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Campi
description

string

FACOLTATIVO: una descrizione dell'articolo che è stato acquistato. Non disponibile per tutti i tipi di ordine.

merchant

string

REQUIRED: il venditore, l'artista o il produttore dell'articolo.

quantity

string (Int64Value format)

FACOLTATIVO: la quantità ordinata per questo articolo.

Questo campo verrà omesso se le quantità intere non sono applicabili al prodotto (ad es. i prodotti a consumo possono avere quantità frazionarie).

totalPrice

string (Int64Value format)

FACOLTATIVO: il prezzo totale di questo articolo, espresso come micro della valuta specificata in order.currencyCode. Se il valore quantity è completato, si tratta del prezzo totale dell'intera quantità. Non disponibile per tutti i tipi di ordine.

googleProductName

string

REQUIRED: nome del servizio Google del prodotto.

Imposta

Informazioni su una imposta che si applica a questo ordine.

Rappresentazione JSON
{
  "description": string,
  "amount": string
}
Campi
description

string

REQUIRED: una descrizione di tasse.

amount

string (Int64Value format)

REQUIRED: l'importo dell'imposta, calcolato come micro della valuta specificata in order.currencyCode.

Pagamento

Informazioni sul pagamento.

Rappresentazione 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.
}
Campi
billingAddress

object (Address)

REQUIRED: l'indirizzo di fatturazione per questo pagamento.

amount

string (Int64Value format)

REQUIRED: l'importo di questo pagamento, espresso in micro, nella valuta specificata in order.currencyCode. Nota: potrebbe non corrispondere a order.totalAmount se l'ordine è stato pagato tramite più pagamenti.

refunds[]

object (Refund)

REQUIRED: elenco dei rimborsi effettuati per questo pagamento. Questo elenco potrebbe essere vuoto.

Campo unione fopDetails.

fopDetails può essere solo uno dei seguenti:

cardDetails

object (PaymentCardDetails)

FACOLTATIVO: dati di pagamento specifici per i FoP di carte di credito e di debito.

Rimborso

Informazioni su un rimborso effettuato su un pagamento.

Rappresentazione JSON
{
  "amount": string,
  "initiatedTimestamp": string
}
Campi
amount

string (Int64Value format)

REQUIRED: l'importo rimborsato, un numero positivo di micro valuta della valuta specificata in order.currencyCode.

initiatedTimestamp

string (int64 format)

REQUIRED: timestamp di inizio del rimborso, espresso in millisecondi dall'epoca.

Dettagli carta di pagamento

Dettagli sul pagamento specifici per le carte di credito e di debito.

Rappresentazione JSON
{
  "authResult": enum (AuthResult)
}
Campi
authResult

enum (AuthResult)

REQUIRED: risultato dell'autenticazione del pagamento.

RisultatoRisultato autenticazione

Risultati autenticazione pagamento.

Enum
UNKNOWN_RESULT Non impostare questo valore predefinito.
APPROVED Approvato da Auth.
DENIED Autorizzazione negata.
NOT_ATTEMPTED Autenticazione non tentata.