Method: getDisputeInquiryReport

Receba um relatório com informações para facilitar a conversa de suporte ao cliente com um usuário sobre uma possível disputa de pagamento.

Se o endpoint encontrar um erro ao processar a solicitação, a resposta desse endpoint será do tipo ErrorResponse.

As respostas a esta consulta poderão ficar vazias se o método não retornar um HTTP 200. O corpo da resposta fica vazio nas situações em que um ErrorResponse com uma descrição clara pode ser usado para ajudar um invasor a entender o identificador da conta do integrador de pagamentos de outros integradores. Nessas situações, em que a chave de assinatura não corresponde, o identificador do integrador de pagamentos não foi encontrado ou a chave de criptografia é desconhecida, esse método retorna um HTTP 404 com um corpo vazio. Se a assinatura da solicitação puder ser verificada, informações adicionais sobre o erro serão retornadas no corpo da resposta.

Este é um exemplo de solicitação:


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

Um exemplo de resposta é semelhante a:


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

Solicitação HTTP

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

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "paymentLookupCriteria": {
    object (PaymentLookupCriteria)
  },
  "existingGoogleClaimId": string,
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Campos
requestHeader

object (RequestHeader)

OBRIGATÓRIO: cabeçalho comum para todas as solicitações.

paymentIntegratorAccountId

string

OBRIGATÓRIO: o identificador da conta do integrador de pagamentos que identifica o autor da chamada e as restrições contratuais associadas para essa interação.

paymentLookupCriteria

object (PaymentLookupCriteria)

OBRIGATÓRIO: critérios que indicam o pagamento que deve ser pesquisado para a consulta.

existingGoogleClaimId

string

OPCIONAL: uma string gerada pelo Google retornada por uma chamada anterior para getDisputeInquiryReport que identifica de forma exclusiva a reivindicação de disputa do cliente.

Se esse valor não estiver presente, um novo ID de reivindicação será gerado. O autor da chamada poderá informar uma googleClaimId retornada por uma chamada anterior para getDisputeInquiryReport se for a continuação da disputa.

O ID da declaração preenchido aqui ou gerado será retornado no campo googleClaimId da resposta.

Não é válido fornecer um googleClaimId que não tenha sido retornado por uma chamada anterior para getDisputeInquiryReport. Se isso ocorrer, HTTP 400 Bad Request será retornado.

requestOriginator

object (RequestOriginator)

OBRIGATÓRIO: informações sobre a organização ou o subgrupo organizacional que originou a solicitação.

Corpo da resposta

Payload de resposta para o método getDisputeInquiryReport.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
Campos
responseHeader

object (ResponseHeader)

OBRIGATÓRIO: cabeçalho comum para todas as respostas.

result

enum (GetDisputeInquiryReportResultCode)

REQUIRED: resultado da chamada.

googleClaimId

string

OPCIONAL: uma string gerada pelo Google que identifica de forma exclusiva a disputa do cliente. Presente apenas se result for SUCCESS.

Se existingGoogleClaimId tiver sido preenchido na solicitação, ele terá o mesmo valor. Caso contrário, será um valor recém-gerado. Esse valor poderá ser informado em solicitações getDisputeInquiryReport futuras se elas fizerem parte da disputa do mesmo cliente.

report

object (PurchaseReport)

OPCIONAL: detalhes relevantes para a disputa do pagamento identificado na solicitação. Presente apenas se result for SUCCESS.

RequestHeader

Objeto "Header" definido em todas as solicitações enviadas ao servidor.

Representação JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Campos
requestId

string

OBRIGATÓRIO: identificador exclusivo da solicitação.

Essa é uma string com tamanho máximo de 100 caracteres e apenas os caracteres "a-z", "A-Z", "0-9", ":", "-" e "_".

requestTimestamp

string (int64 format)

REQUIRED: carimbo de data/hora da solicitação representado como milissegundos desde a época. O receptor precisa verificar se esse carimbo de data/hora tem ± 60 s de "now". Esse carimbo de data/hora da solicitação não é idempotente em novas tentativas.

userLocale
(deprecated)

string

OBSOLETO: um código de idioma ISO 639-2 Alfa 3 de duas ou três letras opcionalmente seguido por um hífen e um código de país ISO 3166-1 Alfa-2, por exemplo, 'pt', 'pt-BR', 'fil' ou 'fil-PH'. Use isso para ajudar a direcionar os campos userMessage na resposta.

protocolVersion

object (Version)

OBRIGATÓRIO: a versão da solicitação.

Versão

O objeto Version, que é uma forma estruturada da estrutura de versão clássica do a.b.c. As principais versões do mesmo número têm garantia de compatibilidade. Pequenas e revisões podem ser alteradas com frequência e sem aviso prévio. O integrador precisa oferecer suporte a todas as solicitações para a mesma versão principal.

Representação JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Campos
major

integer

OBRIGATÓRIO: versão principal. Isso é marcado para solicitações de compatibilidade com versões diferentes.

minor

integer

OBRIGATÓRIO: versão secundária. Isso indica correções de bugs significativas.

revision

integer

OBRIGATÓRIO: versão secundária. Isso indica pequenas correções de bugs.

PaymentLookupCriteria

Contêiner para os critérios que podem procurar um pagamento de forma exclusiva. É necessário preencher um (e apenas um) campo de membro.

Representação 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.
}
Campos

Campo de união criteria.

criteria pode ser apenas de um dos tipos a seguir:

arnCriteria

object (ArnCriteria)

OPCIONAL: pesquisa com base no número de referência do adquirente (ARN, na sigla em inglês).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

OPCIONAL: pesquisa com base no número de referência da transação do Google.

ArnCriteria

Critérios de pesquisa de pagamento com base no número de referência do adquirente (ARN, na sigla em inglês).

Representação JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Campos
acquirerReferenceNumber

string

OBRIGATÓRIO: o número de referência do adquirente (ARN, na sigla em inglês) que identifica exclusivamente o pagamento. Precisa ter 23 dígitos.

authorizationCode

string

OBRIGATÓRIO: o código de autorização da transação.

GoogleTransactionReferenceNumberCriteria

São os critérios de pesquisa de pagamentos com base no número de referência da transação gerado pelo Google.

Representação JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Campos
googleTransactionReferenceNumber

string

OBRIGATÓRIO: o número de referência da transação gerado pelo Google que identifica exclusivamente o pagamento.

authorizationCode

string

OBRIGATÓRIO: o código de autorização da transação.

RequestOriginator

Informações sobre a organização ou o subgrupo organizacional e, opcionalmente, o funcionário que originou esta solicitação. Isso permite que o Google identifique problemas ou abusos e implemente controles em um nível mais detalhado que o paymentIntegratorAccountId. Ela é especialmente valiosa quando o autor da chamada é um provedor de serviços intermediário que origina solicitações de vários clientes externos.

Representação JSON
{
  "organizationId": string,
  "organizationDescription": string,
  "agentId": string
}
Campos
organizationId

string

OBRIGATÓRIO: identificador da empresa, organização ou grupo organizacional que originou a solicitação. Precisa ser exclusivo neste paymentIntegratorAccountId.

organizationDescription

string

OBRIGATÓRIO: um nome legível ou uma descrição da organização que possa ser usado para facilitar a comunicação entre os funcionários do Google e o integrador.

agentId

string

OPCIONAL: um identificador exclusivo do agente específico (funcionário) da organização identificado por organizationId que originou essa solicitação. Precisa ser exclusivo neste organizationId.

GetDisputeInquiryReportResultCode

O resultado da chamada do método getDisputeInquiryReport.

Enums
UNKNOWN_RESULT Nunca defina esse valor padrão.
SUCCESS O pagamento foi encontrado, e um relatório é fornecido.
PAYMENT_NOT_FOUND O pagamento solicitado não foi encontrado.
PAYMENT_TOO_OLD O pagamento solicitado foi encontrado, mas um relatório não foi fornecido devido ao tempo de processamento do pagamento.
ORDER_CANNOT_BE_RETURNED O pagamento solicitado pertence a um pedido que existe, mas não pode ser devolvido. Os motivos incluem casos em que o pedido foi removido a pedido do proprietário.
NO_ADDITIONAL_DETAILS O pagamento solicitado foi encontrado, mas não há um relatório disponível.

PurchaseReport

Um relatório com detalhes relevantes da compra associada ao pagamento solicitado.

Representação JSON
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
Campos
customerAccount

object (CustomerAccount)

OBRIGATÓRIO: informações sobre o cliente e a conta dele.

order

object (Order)

OBRIGATÓRIO: informações sobre o pedido em que o pagamento foi feito.

payment

object (Payment)

OPCIONAL: informações sobre o pagamento. Observação: é possível fazer vários pagamentos em um único pedido, mas isso só vai conter informações sobre o pagamento identificado na solicitação original. Não está disponível para todos os tipos de pedido.

CustomerAccount

Informações sobre a conta do cliente

Representação JSON
{
  "customerEmail": string,
  "customerName": string
}
Campos
customerEmail

string

OBRIGATÓRIO: o endereço de e-mail associado à Conta do Google do cliente.

customerName

string

OBRIGATÓRIO: o nome do cliente.

Pedido

São informações sobre o pedido.

Representação JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "shippingAddress": {
    object (Address)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Campos
timestamp

string (int64 format)

OPTIONAL: carimbo de data/hora de quando o pedido foi feito, representado como milissegundos desde a época. Não está disponível para todos os tipos de pedido.

orderId

string

OPTIONAL: uma string que identifica exclusivamente essa ordem. Não está disponível para todos os tipos de pedido.

currencyCode

string

OPCIONAL: código de moeda ISO 4217 de três letras para todos os valores nesta ordem. Não está disponível para todos os tipos de pedido.

subTotalAmount

string (Int64Value format)

OPCIONAL: valor total do pedido, sem os tributos, representado como micros da moeda especificada em order.currencyCode. Isso é igual a SUM(items.totalPrice). Não está disponível para todos os tipos de pedido.

totalAmount

string (Int64Value format)

OPCIONAL: valor total do pedido, incluindo impostos, representado como micros da moeda especificada em order.currencyCode. Isso é igual a subTotalAmount + SUM(taxes.amount). Não está disponível para todos os tipos de pedido.

shippingAddress

object (Address)

OPCIONAL: endereço de entrega para itens físicos neste pedido.

items[]

object (Item)

OBRIGATÓRIO: lista de itens que fizeram parte deste pedido.

taxes[]

object (Tax)

OBRIGATÓRIO: lista de itens que fizeram parte deste pedido. Esta lista pode estar vazia.

Endereço

Estrutura com informações sobre um endereço.

Representação JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
Campos
name

string

OPCIONAL: o nome completo do cliente.

addressLine[]

string

OPCIONAL: contém texto de endereço não estruturado.

localityName

string

OPCIONAL: é um termo impreciso, mas geralmente se refere à parte da cidade/município de um endereço. Em regiões do mundo onde as localidades não são bem definidas ou não se encaixam bem nessa estrutura (por exemplo, Japão e China), deixe regiãoName em branco e use addressLine.

Exemplos: cidade nos EUA, comunidade na Itália, distrito postal no Reino Unido.

administrativeAreaName

string

OPCIONAL: subdivisão administrativa de nível superior deste país. Exemplos: estado dos EUA, região da TI, província da China e prefeitura do Japão.

postalCodeNumber

string

OPCIONAL: apesar do nome, os valores de postalCodeNumber costumam ser alfanuméricos. Exemplos: "94043", "SW1W", "SW1W 9TQ".

countryCode

string

OPCIONAL: código do país do endereço do cliente, no formato ISO-3166-1 Alfa-2.

Item

São informações sobre um item do pedido.

Representação JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Campos
description

string

OPCIONAL: uma descrição do item que foi comprado. Não está disponível para todos os tipos de pedido.

merchant

string

OBRIGATÓRIO: o vendedor, artista ou fabricante do item.

quantity

string (Int64Value format)

OPCIONAL: a quantidade que foi encomendada do item.

Este campo será omitido se quantidades inteiras não forem aplicáveis ao produto (produtos medidos podem ter quantidades fracionárias, por exemplo).

totalPrice

string (Int64Value format)

OPCIONAL: o preço total do item, representado como micros da moeda especificada em order.currencyCode. Se quantity for preenchido, isso vai refletir o preço total da quantidade total. Não está disponível para todos os tipos de pedido.

googleProductName

string

OBRIGATÓRIO: nome do serviço de produto do Google para o item.

Tributos

São informações sobre um tributo que se aplica a este pedido.

Representação JSON
{
  "description": string,
  "amount": string
}
Campos
description

string

OBRIGATÓRIO: uma descrição do tributo.

amount

string (Int64Value format)

OBRIGATÓRIO: o valor dos tributos, representado como micros na moeda especificada em order.currencyCode.

Pagamento

Informações sobre o pagamento.

Representação 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.
}
Campos
billingAddress

object (Address)

OBRIGATÓRIO: endereço de faturamento para esse pagamento.

amount

string (Int64Value format)

OBRIGATÓRIO: valor do pagamento, representado como micros da moeda especificada em order.currencyCode. Observação: pode não corresponder a order.totalAmount se o pedido tiver sido feito com vários pagamentos.

refunds[]

object (Refund)

OBRIGATÓRIO: lista de reembolsos feitos para esse pagamento. Esta lista pode estar vazia.

Campo de união fopDetails.

fopDetails pode ser apenas de um dos tipos a seguir:

cardDetails

object (PaymentCardDetails)

OPCIONAL: detalhes de pagamento específicos para FoPs de cartão de crédito e débito.

Reembolso

Informações sobre um reembolso feito em um pagamento.

Representação JSON
{
  "amount": string,
  "initiatedTimestamp": string
}
Campos
amount

string (Int64Value format)

OBRIGATÓRIO: o valor reembolsado, um número positivo de micros da moeda especificada em order.currencyCode.

initiatedTimestamp

string (int64 format)

OBRIGATÓRIO: carimbo de data/hora de início do reembolso, representado como milissegundos desde a época.

PaymentCardDetails

Detalhes de pagamento específicos de cartões de crédito e débito.

Representação JSON
{
  "authResult": enum (AuthResult)
}
Campos
authResult

enum (AuthResult)

OBRIGATÓRIO: resultado da autenticação de pagamento.

AuthResult

Resultados da autenticação de pagamento.

Enums
UNKNOWN_RESULT Nunca defina esse valor padrão.
APPROVED Autenticação aprovada.
DENIED Autenticação negada.
NOT_ATTEMPTED Não houve tentativa de autenticação.