Method: getDisputeInquiryReport

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

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

As respostas a esta consulta podem ficar vazias se o método não retornar 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. 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 vai retornar um HTTP 404 com corpo vazio. Se for possível verificar a assinatura da solicitação, informações adicionais sobre o erro serão retornadas no corpo da resposta.

Um exemplo de solicitação é semelhante a este:


{
  "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 que será verificado para a consulta.

existingGoogleClaimId

string

OPCIONAL: uma string gerada pelo Google e retornada por uma chamada anterior para getDisputeInquiryReport que identifica exclusivamente 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 um googleClaimId que foi retornado em uma chamada anterior para getDisputeInquiryReport se for a continuação da mesma disputa do cliente.

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 foi 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)

OBRIGATÓRIO: resultado da chamada.

googleClaimId

string

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

Se existingGoogleClaimId tiver sido preenchido na solicitação, esse valor terá o mesmo valor. Caso contrário, será um valor gerado recentemente. Esse valor poderá ser informado em solicitações futuras de 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 SUCESSO.

PaymentLookupCriteria

Contêiner para critérios que podem pesquisar um pagamento de maneira 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)
  },
  "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: 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.

captureRequestCriteria

object (CaptureRequestCriteria)

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

ArnCriteria

Critérios de busca 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

Critérios de busca 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 maneira exclusiva.

authorizationCode

string

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

CaptureRequestCriteria

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

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

string

OBRIGATÓRIO: um identificador exclusivo para esta transação. Esse é o requestId gerado pelo Google durante a chamada capture que está sendo pesquisada.

RequestOriginator

Informações sobre a organização ou o subgrupo organizacional 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 do que o paymentIntegratorAccountId. Ele é especialmente valioso 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: um identificador da empresa, organização ou grupo organizacional que originou a solicitação. Precisa ser exclusivo nesse paymentIntegratorAccountId.

organizationDescription

string

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

agentId

string

OPCIONAL: um identificador exclusivo para o agente específico (funcionário) da organização identificado por organizationId de quem esta solicitação foi originada. Precisa ser exclusivo nesse organizationId.

GetDisputeInquiryReportResultCode

Resultado da chamada de método getDisputeInquiryReport.

Enums
UNKNOWN_RESULT Nunca defina esse valor padrão.
SUCCESS O pagamento foi encontrado, e um relatório foi fornecido.
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 existente, 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 essa opção só vai conter informações do 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

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 o período. Não está disponível para todos os tipos de pedido.

orderId

string

OPCIONAL: uma string que identifica exclusivamente esse pedido. 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 desse pedido. Não está disponível para todos os tipos de pedido.

subTotalAmount

string (Int64Value format)

OPCIONAL: 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: valor total desse pedido incluindo tributos, 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 do pedido.

taxes[]

object (Tax)

OBRIGATÓRIO: lista de itens que fizeram parte do 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: 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 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 localeName 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 do país Exemplos: estado dos EUA, região da Itália, província da China, prefeitura do Japão."

postalCodeNumber

string

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

countryCode

string

OPCIONAL: código de país do endereço do cliente, que precisa ser ISO-3166-1 Alpha-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 que foi comprado. Não está disponível para todos os tipos de pedido.

merchant

string

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

quantity

string (Int64Value format)

OPCIONAL: a quantidade encomendada do item.

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

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 reflete 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 do produto do Google referente ao item.

Tributo

São informações sobre tributos que se aplicam a este 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 do pagamento, representado como micros da moeda especificada em order.currencyCode. Observação: isso pode não corresponder a order.totalAmount se o pedido foi pago por meio de vários pagamentos.

refunds[]

object (Refund)

OBRIGATÓRIO: lista de reembolsos feitos para o 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 crédito e FoPs de cartão de 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.

PaymentCardDetails

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

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

enum (AuthResult)

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

AuthResult

Resultados de 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.