- Solicitação HTTP
- Corpo da solicitação
- Corpo da resposta
- RequestHeader
- Carimbo de data/hora
- Versão
- PaymentLookupCriteria
- ArnCriteria
- GoogleTransactionReferenceNumberCriteria
- CaptureRequestCriteria
- RequestOriginator
- GetDisputeInquiryReportResponse
- ResponseHeader
- GetDisputeInquiryReportResult
- SuccessDetails
- PurchaseReport
- CustomerAccount
- Pedido
- Valor
- Endereço
- Item
- Tributos
- Pagamento
- Reembolsar
- PaymentCardDetails
- AuthResult
- Vazio
- ErrorResponse
- ErrorResponseResult
- InvalidApiVersion
- InvalidPayloadSignature
- InvalidPayloadEncryption
- RequestTimestampOutOfRange
- InvalidIdentifier
- IdempotencyViolation
- InvalidFieldValue
- MissingRequiredField
- PreconditionViolation
- UserActionInProgress
- InvalidDecryptedRequest
- Proibido
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.
As respostas a esta consulta poderão ficar vazias se o método não retornar um HTTP 200.
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
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.ErrorResponse
Este é um exemplo de solicitação:
{
"requestHeader": {
"protocolVersion": {
"major": 3
},
"requestId": "HsKv5pvtQKTtz7rdcw1YqE",
"requestTimestamp": {
"epochMillis": "1519996751331"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD"
},
"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": {
"epochMillis": "1519996752221"
}
},
"result": {
"success": {
"googleClaimId": "138431383281",
"report": {
"customerAccount": {
"customerEmail": "example@gmail.com",
"customerName" : "Example Customer"
},
"order": {
"timestamp": {
"epochMillis": "1517992525972"
},
"orderId": "SOP.8976-1234-1234-123456..99",
"subTotalAmount": {
"amountMicros": "206990000",
"currencyCode": "USD"
},
"totalAmount": {
"amountMicros": "212990000",
"currencyCode": "USD"
},
"shippingAddress": {
"addressLine": ["123 Main St"],
"localityName": "Springfield",
"administrativeAreaName": "CO",
"postalCodeNumber": "80309",
"countryCode": "US"
},
"taxes": [
{
"description": "Colorado Sales Tax",
"amount": {
"amountMicros": "6000000",
"currencyCode": "USD"
}
}
],
"items": [
{
"description": "Super cool gizmo",
"merchant": "HTC",
"googleProductName": "Google Store",
"quantity": "2",
"totalPrice": {
"amountMicros": "198000000",
"currencyCode": "USD"
}
},
{
"description": "Gizmo charger",
"merchant": "HTC",
"googleProductName": "Google Store",
"quantity": "1",
"totalPrice": {
"amountMicros": "8990000",
"currencyCode": "USD"
}
}
]
},
"payment": {
"billingAddress" : {
"addressLine": ["123 Main St"],
"localityName": "Springfield",
"administrativeAreaName": "CO",
"postalCodeNumber": "80309",
"countryCode": "US"
},
"amount": {
"amountMicros": "100000000",
"currencyCode": "USD"
},
"refunds": [
{
"amount": {
"amountMicros": "9250000",
"currencyCode": "USD"
},
"initiatedTimestamp": {
"epochMillis": "1518811245384"
}
}
],
"cardDetails": {
"authResult": "APPROVED"
}
}
}
}
}
}
Solicitação HTTP
POST https://vgw.googleapis.com/secure-serving/gsp/v3/getDisputeInquiryReport/:PIAID
Corpo da solicitação
O corpo da solicitação contém dados com a seguinte estrutura:
Representação JSON |
---|
{ "requestHeader": { object ( |
Campos | |
---|---|
requestHeader |
OBRIGATÓRIO: cabeçalho comum para todas as solicitações. |
paymentLookupCriteria |
OBRIGATÓRIO: critérios que indicam o pagamento que deve ser pesquisado para a consulta. |
existingGoogleClaimId |
OPCIONAL: uma string gerada pelo Google retornada por uma chamada anterior para Se esse valor não estiver presente, um novo ID de reivindicação será gerado. O autor da chamada poderá informar uma O ID da declaração preenchido aqui ou gerado será retornado no campo Não é válido fornecer um |
requestOriginator |
OBRIGATÓRIO: informações sobre a organização ou o subgrupo organizacional que originou a solicitação. |
Corpo da resposta
Esse método oferece suporte a vários tipos de retorno. Para mais informações sobre qual código de status HTTP 4XX ou 5XX retornar com ErrorResponse
, consulte o objeto ErrorResponse
e a documentação sobre códigos de status HTTP.
Esse método oferece suporte a vários tipos de retorno. Para mais informações sobre qual código de status HTTP 4XX ou 5XX retornar com ErrorResponse
, consulte o objeto ErrorResponse
e a documentação sobre códigos de status HTTP.
Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:
Possíveis mensagens de resposta | |
---|---|
Status HTTP 200 |
|
Status HTTP 4XX / 5XX |
|
RequestHeader
Objeto "Header" definido em todas as solicitações enviadas ao servidor.
Representação JSON |
---|
{ "requestId": string, "requestTimestamp": { object ( |
Campos | |
---|---|
requestId |
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 |
OBRIGATÓRIO: carimbo de data/hora da solicitação. O destinatário precisa verificar se esse carimbo de data/hora está ± 60 segundos de "agora" e rejeitar a solicitação se não estiver. Esse carimbo de data/hora da solicitação não é idempotente em novas tentativas. |
protocolVersion |
OBRIGATÓRIO: a versão da solicitação. |
paymentIntegratorAccountId |
OBRIGATÓRIO: identifica uma conta exclusiva com restrições contratuais. |
Carimbo de data/hora
Um objeto de carimbo de data/hora que representa um ponto na linha do tempo ISO em milissegundos desde a época Unix.
Representação JSON |
---|
{ "epochMillis": string } |
Campos | |
---|---|
epochMillis |
OBRIGATÓRIO: milissegundos desde a época do Unix. |
Versão
O objeto Version contém a versão principal da API. As versões da mesma versão principal têm garantia de compatibilidade. O integrador precisa oferecer suporte a todas as solicitações para a mesma versão principal.
Representação JSON |
---|
{ "major": integer } |
Campos | |
---|---|
major |
OBRIGATÓRIO: versão principal. Isso é marcado para solicitações de compatibilidade com versões diferentes. |
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 |
Campos | |
---|---|
Campo de união
|
|
arnCriteria |
OPCIONAL: pesquisa com base no número de referência do adquirente (ARN, na sigla em inglês). |
googleTransactionReferenceNumberCriteria |
OPCIONAL: pesquisa com base no número de referência da transação do Google. |
captureRequestCriteria |
OPCIONAL: pesquisa com base na solicitação de captura original. |
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 |
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 |
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 |
OBRIGATÓRIO: o número de referência da transação gerado pelo Google que identifica exclusivamente o pagamento. |
authorizationCode |
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 |
OBRIGATÓRIO: um identificador exclusivo para a transação. Este é 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
. Ele é especialmente valioso quando o chamado é um provedor de serviços intermediário que fornece solicitações de vários clientes externos.
Representação JSON |
---|
{ "organizationId": string, "organizationDescription": string, "agentId": string } |
Campos | |
---|---|
organizationId |
OBRIGATÓRIO: identificador da empresa, organização ou grupo organizacional que originou a solicitação. Precisa ser exclusivo neste |
organizationDescription |
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 |
OPCIONAL: um identificador exclusivo do agente específico (funcionário) da organização identificado por |
GetDisputeInquiryReportResponse
Payload de resposta para o método getDisputeInquiryReport
.
Representação JSON |
---|
{ "responseHeader": { object ( |
Campos | |
---|---|
responseHeader |
OBRIGATÓRIO: cabeçalho comum para todas as respostas. |
result |
REQUIRED: resultado da chamada. |
ResponseHeader
Objeto de cabeçalho que é definido em todas as respostas enviadas pelo servidor.
Representação JSON |
---|
{
"responseTimestamp": {
object ( |
Campos | |
---|---|
responseTimestamp |
OBRIGATÓRIO: carimbo de data/hora da resposta. O destinatário precisa verificar se esse carimbo de data/hora tem ± 60 segundos de "agora" e rejeitar a resposta se não for. |
GetDisputeInquiryReportResult
Representação JSON |
---|
{ // Union field |
Campos | |
---|---|
Campo de união
|
|
success |
O pagamento foi encontrado, e um relatório é fornecido. |
paymentNotFound |
O pagamento solicitado não foi encontrado. |
paymentTooOld |
O pagamento solicitado foi encontrado, mas um relatório não foi fornecido devido ao tempo de processamento do pagamento. |
orderCannotBeReturned |
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. |
noAdditionalDetails |
O pagamento solicitado foi encontrado, mas não há um relatório disponível. |
SuccessDetails
Representação JSON |
---|
{
"googleClaimId": string,
"report": {
object ( |
Campos | |
---|---|
googleClaimId |
OBRIGATÓRIO: uma string gerada pelo Google que identifica de forma exclusiva a disputa do cliente. Se |
report |
OBRIGATÓRIO: detalhes relevantes para a disputa do pagamento identificado na solicitação. |
PurchaseReport
Um relatório com detalhes relevantes da compra associada ao pagamento solicitado.
Representação JSON |
---|
{ "customerAccount": { object ( |
Campos | |
---|---|
customerAccount |
OBRIGATÓRIO: informações sobre o cliente e a conta dele. |
order |
OPCIONAL: informações sobre o pedido em que o pagamento foi feito. Não está disponível para todos os relatórios de compras. |
payment |
OBRIGATÓRIO: 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. |
CustomerAccount
Informações sobre a conta do cliente.
Representação JSON |
---|
{ "customerEmail": string, "customerName": string } |
Campos | |
---|---|
customerEmail |
OPCIONAL: o endereço de e-mail associado à Conta do Google do cliente. |
customerName |
OBRIGATÓRIO: o nome do cliente. |
Pedido
São informações sobre o pedido.
Representação JSON |
---|
{ "timestamp": { object ( |
Campos | |
---|---|
timestamp |
OBRIGATÓRIO: carimbo de data/hora de quando o pedido foi feito. |
orderId |
OBRIGATÓRIO: uma string que identifica exclusivamente esse pedido. |
subTotalAmount |
OBRIGATÓRIO: valor total do pedido sem tributos. |
totalAmount |
OBRIGATÓRIO: valor total do pedido, incluindo tributos. |
shippingAddress |
OPCIONAL: o endereço de entrega dos itens físicos neste pedido. |
items[] |
OBRIGATÓRIO: lista de itens que fizeram parte deste pedido. |
taxes[] |
OBRIGATÓRIO: lista de tributos que faziam parte do pedido. Esta lista pode estar vazia. |
Valor
Associa um valor em micros a um código de moeda.
Representação JSON |
---|
{ "amountMicros": string, "currencyCode": string } |
Campos | |
---|---|
amountMicros |
OBRIGATÓRIO: um valor em micros. |
currencyCode |
OBRIGATÓRIO: código de moeda ISO 4217 de três letras |
Endereço
Estrutura com informações sobre um endereço físico.
Representação JSON |
---|
{ "addressLine": [ string ], "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string } |
Campos | |
---|---|
addressLine[] |
OPCIONAL: contém texto de endereço não estruturado. |
localityName |
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 |
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 |
OPCIONAL: apesar do nome, os valores de postalCodeNumber costumam ser alfanuméricos. Exemplos: "94043", "SW1W", "SW1W 9TQ". |
countryCode |
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": {
object ( |
Campos | |
---|---|
description |
OBRIGATÓRIO: uma descrição do item que foi comprado. |
merchant |
OBRIGATÓRIO: o vendedor, artista ou fabricante do item. |
quantity |
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 |
OBRIGATÓRIO: o preço total do item. |
googleProductName |
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": {
object ( |
Campos | |
---|---|
description |
OBRIGATÓRIO: uma descrição do tributo. |
amount |
OBRIGATÓRIO: o valor dos tributos. |
Pagamento
Informações sobre o pagamento.
Representação JSON |
---|
{ "billingAddress": { object ( |
Campos | |
---|---|
billingAddress |
OBRIGATÓRIO: endereço de faturamento para esse pagamento. |
amount |
OBRIGATÓRIO: valor do pagamento. |
refunds[] |
OBRIGATÓRIO: lista de reembolsos feitos para esse pagamento. Esta lista pode estar vazia. |
Campo de união
|
|
cardDetails |
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": { object ( |
Campos | |
---|---|
amount |
OBRIGATÓRIO: o valor reembolsado. |
initiatedTimestamp |
OBRIGATÓRIO: carimbo de data/hora de quando o reembolso foi iniciado. |
PaymentCardDetails
Detalhes de pagamento específicos de cartões de crédito e débito.
Representação JSON |
---|
{
"authResult": enum ( |
Campos | |
---|---|
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. |
Vazio
Esse tipo não tem campos.
Esse objeto é usado para extensibilidade porque booleanos e enumerações geralmente precisam ser estendidos com dados extras. O implementador a utiliza para determinar a presença. A enumeração que representa pode ser estendida para conter dados em versões futuras.
A representação JSON de Empty
é o objeto JSON vazio {}
.
ErrorResponse
Objeto de resposta de erro para todos os métodos.
Representação JSON |
---|
{ "responseHeader": { object ( |
Campos | |
---|---|
responseHeader |
OBRIGATÓRIO: cabeçalho comum para todas as respostas. |
errorDescription |
OPCIONAL: forneça uma descrição desse status para que os representantes de suporte depurem os erros. Isso nunca é mostrado aos usuários. Pode conter texto descritivo e não confidencial usado para depuração. Alguns valores de errorResponseCode devem ser acompanhados por detalhes adicionais neste campo. Aviso: não inclua tokens nesta mensagem, a menos que eles sejam definidos como públicos. |
paymentIntegratorErrorIdentifier |
OPCIONAL: esse identificador é específico para o integrador e gerado por ele. Ele é usado para fins de depuração apenas para identificar essa chamada. O integrador conhece essa chamada pelo identificador. |
errorResponseResult |
OPCIONAL: um código que captura o tipo de erro ocorrido. |
ErrorResponseResult
Códigos de erro
Representação JSON |
---|
{ // Union field |
Campos | |
---|---|
Campo de união
|
|
invalidApiVersion |
Usado se a versão da API da solicitação não for compatível. Código HTTP recomendado: 400 |
invalidPayloadSignature |
Usado se a assinatura do payload for para uma chave desconhecida ou inativa. Código HTTP recomendado: 401 |
invalidPayloadEncryption |
Usado se a criptografia do payload for para uma chave desconhecida ou inativa. Código HTTP recomendado: 400 |
requestTimestampOutOfRange |
Usado se o requestTimestamp não for ± 60s de agora. Código HTTP recomendado: 400 |
invalidIdentifier |
Usado se um identificador enviado na solicitação for inválido ou desconhecido. Isso pode incluir PIAID, captureRequestId, Google Payment Token etc. Código HTTP recomendado: 404 |
idempotencyViolation |
Usado se a solicitação viola os requisitos de idempotência da solicitação. Código HTTP recomendado: 412 |
invalidFieldValue |
Usado se a solicitação contém um valor para um campo que não esteja no conjunto de valores compatíveis. Código HTTP recomendado: 400 |
missingRequiredField |
Usado se um campo obrigatório não estiver definido na solicitação. Código HTTP recomendado: 400 |
preconditionViolation |
Usado se uma restrição na operação for violada (por exemplo, quando uma solicitação de reembolso excede o valor restante na transação). Código HTTP recomendado: 400 |
userActionInProgress |
Usado se a solicitação não puder ser processada no momento porque interromperia uma ação do usuário em andamento, que atua como um bloqueio do sistema. Esse código não pode ser usado para indicar falhas devido a erros de simultaneidade internos específicos da implementação. Código HTTP recomendado: 423 |
invalidDecryptedRequest |
Usado se o payload da solicitação puder ser descriptografado, mas a mensagem resultante não puder ser analisada. Código HTTP recomendado: 400 |
forbidden |
O acesso ao recurso solicitado é proibido. Código HTTP recomendado: 403 |
InvalidApiVersion
Representação JSON |
---|
{ "requestVersion": { object ( |
Campos | |
---|---|
requestVersion |
OBRIGATÓRIO: a versão inválida especificada na solicitação. |
expectedVersion |
REQUIRED: a versão esperada. |
InvalidPayloadSignature
Esse tipo não tem campos.
Esta mensagem está intencionalmente vazia no momento. Novos campos podem ser adicionados no futuro.
InvalidPayloadEncryption
Esse tipo não tem campos.
Esta mensagem está intencionalmente vazia no momento. Novos campos podem ser adicionados no futuro.
RequestTimestampOutOfRange
Representação JSON |
---|
{ "requestTimestamp": { object ( |
Campos | |
---|---|
requestTimestamp |
OBRIGATÓRIO: o carimbo de data/hora fornecido na solicitação |
serverTimestampAtReceipt |
OBRIGATÓRIO: o horário do servidor no recebimento, usado para comparação. |
InvalidIdentifier
Representação JSON |
---|
{ "invalidIdentifierType": string } |
Campos | |
---|---|
invalidIdentifierType |
OBRIGATÓRIO: o tipo de identificador inválido, por exemplo, PIAID, captureRequestId etc. |
IdempotencyViolation
Esse tipo não tem campos.
Esta mensagem está intencionalmente vazia no momento. Novos campos podem ser adicionados no futuro.
InvalidFieldValue
Representação JSON |
---|
{ "invalidFieldName": string } |
Campos | |
---|---|
invalidFieldName |
OBRIGATÓRIO: o nome do campo inválido. |
MissingRequiredField
Representação JSON |
---|
{ "missingFieldNames": [ string ] } |
Campos | |
---|---|
missingFieldNames[] |
OBRIGATÓRIO: os nomes dos campos ausentes. |
PreconditionViolation
Esse tipo não tem campos.
Esta mensagem está intencionalmente vazia no momento. Novos campos podem ser adicionados no futuro.
UserActionInProgress
Esse tipo não tem campos.
Esta mensagem está intencionalmente vazia no momento. Novos campos podem ser adicionados no futuro.
InvalidDecryptedRequest
Esse tipo não tem campos.
Esta mensagem está intencionalmente vazia no momento. Novos campos podem ser adicionados no futuro.
Proibido
Esse tipo não tem campos.
Esta mensagem está intencionalmente vazia no momento. Novos campos podem ser adicionados no futuro.