Method: getDisputeInquiryReport

Receba um relatório com informações para facilitar uma conversa de suporte ao cliente com um usuário em relação a 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 podem estar vazias se esse método não retornar um HTTP 200. O corpo da resposta fica vazio em 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, quando a chave de assinatura não corresponde, o identificador do integrador de pagamentos não é 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.

Veja abaixo 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"
  }
}

Veja um exemplo de resposta:


{
  "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 a ser consultado.

existingGoogleClaimId

string

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

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

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

Não é válido fornecer uma googleClaimId que não foi retornada por uma chamada anterior para getDisputeInquiryReport. Se isso ocorrer, a solicitação inválida HTTP 400 será retornada.

requestOriginator

object (RequestOriginator)

OBRIGATÓRIO: informações sobre a organização ou o subgrupo 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)

OBRIGATÓRIO: resultado da chamada.

googleClaimId

string

OPCIONAL: uma string gerada pelo Google que identifica exclusivamente essa disputa do cliente. Presente apenas se result for SUCCESS.

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

report

object (PurchaseReport)

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

Critérios de pesquisa de pagamento

Contêiner para critérios que podem pesquisar um pagamento de maneira exclusiva. Um (e apenas um) campo de membro deve ser preenchido.

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

Campo de união criteria.

criteria pode ser apenas de um dos tipos a seguir:

arnCriteria

object (ArnCriteria)

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

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

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

captureRequestCriteria

object (CaptureRequestCriteria)

OPCIONAL: pesquise com base no ID de solicitação de captura.

Critério de Arn

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 o pagamento de maneira exclusiva. Precisa ter 23 dígitos.

authorizationCode

string

REQUIRED: o código de autorização da transação.

GoogleTransactionReferenceNumberCriteria

Critérios de pesquisa de pagamento 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 o pagamento de modo exclusivo.

authorizationCode

string

REQUIRED: o código de autorização da transação.

Critério de CaptureRequest

Critérios de pesquisa de pagamento com base na solicitação de captura original.

Representação JSON
{
  "captureRequestId": string
}
Campos
captureRequestId

string

REQUIRED: um identificador exclusivo para a transação. Este é o requestId gerado pelo Google durante a chamada capture que está sendo pesquisada.

Origem

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

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

string

OBRIGATÓRIO: um identificador da empresa, organização ou grupo organizacional de origem desta solicitação. Precisa ser exclusivo dentro deste 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 a respeito dessa organização.

agentId

string

OPCIONAL: um identificador exclusivo do agente específico (funcionário) da organização identificada por organizationId da qual se originou a solicitação. Precisa ser exclusivo dentro deste 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 foi enviado.
PAYMENT_NOT_FOUND O pagamento solicitado não foi encontrado.
PAYMENT_TOO_OLD O pagamento solicitado foi encontrado, mas não foi fornecido um relatório devido à idade 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 um relatório não está disponível.

Relatório de compras

Um relatório contendo 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: vários pagamentos são possíveis em um único pedido, mas conterão apenas as informações do pagamento que foram identificadas na solicitação original. Não está disponível para todos os tipos de pedido.

Conta do cliente

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

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)

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

orderId

string

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

currencyCode

string

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

subTotalAmount

string (Int64Value format)

OPCIONAL: o valor total do pedido sem 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: o 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 de 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.

Address

Estrutura que contém 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: trata-se de um termo confuso, mas geralmente se refere à parte da cidade 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 localityName vazio 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 de TI, província da CN, prefeitura do Japão."

postalCodeNumber

string

OPCIONAL: apesar do nome, os valores de postalCodeNumber são geralmente alfanuméricos. Exemplos: "94043", "SW1W", "SW1W 9TQ".

countryCode

string

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

Item

Informações sobre um item no pedido.

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

string

OPCIONAL: uma descrição do item 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 ordenada 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 estiver preenchido, isso refletirá o preço total da quantidade inteira. 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.

Tributo

Informações sobre um imposto que se aplica a esse pedido.

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

string

OBRIGATÓRIO: uma descrição dos tributos.

amount

string (Int64Value format)

OBRIGATÓRIO: o valor dos tributos, representado como micros da 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 do pagamento.

amount

string (Int64Value format)

OBRIGATÓRIO: valor desse pagamento, representado como micros da moeda especificada em order.currencyCode. Observação: isso pode não corresponder ao order.totalAmount se o pedido foi feito por meio de 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 quando o reembolso foi iniciado, representado em milissegundos desde o período.

Detalhes do cartão de pagamento

Detalhes de pagamento específicos para 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 foi possível realizar a autenticação.