Method: getDisputeInquiryReport

Obtén un informe que proporcione información para facilitar una conversación de asistencia al cliente con un usuario en relación con una posible disputa de pago.

Si el extremo encuentra un error mientras se procesa la solicitud, la respuesta de este extremo será del tipo ErrorResponse.

Es posible que las respuestas a esta consulta estén vacías si este método no muestra un HTTP 200. El cuerpo de la respuesta está vacío en los casos en que se pueda usar un elemento ErrorResponse con una descripción clara para ayudar a un atacante a comprender el identificador de la cuenta del integrador de pagos de otros integradores. En estos casos, en los que la clave de firma no coincide, no se encontró el identificador del integrador de pago o la clave de encriptación es desconocida, este método mostrará un HTTP 404 con un cuerpo vacío. Si se pudo verificar la firma de la solicitud, se mostrará información adicional sobre el error en el cuerpo de la respuesta.

Una solicitud de ejemplo se ve de la siguiente manera:


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

Una respuesta de ejemplo se ve de la siguiente manera:


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

Solicitud HTTP

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

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "paymentLookupCriteria": {
    object (PaymentLookupCriteria)
  },
  "existingGoogleClaimId": string,
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Campos
requestHeader

object (RequestHeader)

OBLIGATORIO: Es un encabezado común para todas las solicitudes.

paymentIntegratorAccountId

string

OBLIGATORIO: Es el identificador de la cuenta del integrador de pagos que identifica al emisor y las restricciones contractuales asociadas a esta interacción.

paymentLookupCriteria

object (PaymentLookupCriteria)

OBLIGATORIO: Son los criterios que indican el pago que se debe buscar para esta consulta.

existingGoogleClaimId

string

OPCIONAL: Es una string generada por Google que muestra una llamada anterior a getDisputeInquiryReport y que identifica de forma única este reclamo de disputa del cliente.

Si no está presente, se generará un ID de reclamo nuevo. El emisor puede proporcionar un googleClaimId que mostró una llamada anterior a getDisputeInquiryReport si es una continuación de la misma disputa del cliente.

El ID del reclamo que se propaga aquí o se genera en el campo googleClaimId de la respuesta.

No es válido proporcionar un googleClaimId que no se mostró mediante una llamada anterior a getDisputeInquiryReport. Si esto ocurre, se mostrará HTTP 400 Bad Request.

requestOriginator

object (RequestOriginator)

OBLIGATORIO: Información sobre la organización o el subgrupo de la organización que originó esta solicitud.

Cuerpo de la respuesta

Carga útil de respuesta para el método getDisputeInquiryReport.

Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:

Representación JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
Campos
responseHeader

object (ResponseHeader)

OBLIGATORIO: Es el encabezado común para todas las respuestas.

result

enum (GetDisputeInquiryReportResultCode)

OBLIGATORIO: Resultado de esta llamada.

googleClaimId

string

OPCIONAL: Es una string generada por Google que identifica de forma única la disputa del cliente. (Presente solo si result tiene éxito).

Si se propagó existingGoogleClaimId en la solicitud, este será el mismo valor. De lo contrario, será un valor recién generado. Este valor se puede proporcionar en solicitudes futuras de getDisputeInquiryReport si forman parte de la misma disputa del cliente.

report

object (PurchaseReport)

OPCIONAL: Son los detalles relevantes de la disputa del pago que se identificó en la solicitud. (Presente solo si result tiene éxito).

Criterios de PaymentLookup

Contenedor para criterios que pueden buscar un pago de manera única. Se debe propagar un campo de miembro (y solo uno).

Representación 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ón criteria.

criteria puede ser una de las siguientes opciones:

arnCriteria

object (ArnCriteria)

OPCIONAL: Búsqueda basada en el número de referencia del adquirente (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

OPCIONAL: Búsqueda basada en el número de referencia de la transacción de Google.

captureRequestCriteria

object (CaptureRequestCriteria)

OPCIONAL: Busca en función del ID de solicitud de captura.

Criterios de Arn

Los criterios de búsqueda de pagos se basan en el número de referencia del adquirente (ARN).

Representación JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Campos
acquirerReferenceNumber

string

OBLIGATORIO: Es el número de referencia del adquirente (ARN) que identifica de forma única el pago. Debe tener 23 dígitos.

authorizationCode

string

OBLIGATORIO: Es el código de autorización de la transacción.

Número de referencia de transacción de Google

Criterios de búsqueda de pagos basados en el número de referencia de la transacción generado por Google

Representación JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Campos
googleTransactionReferenceNumber

string

OBLIGATORIO: Es el número de referencia de la transacción generado por Google que identifica el pago de forma única.

authorizationCode

string

OBLIGATORIO: Es el código de autorización de la transacción.

CaptureRequestCriterios

Criterios de búsqueda de pagos basados en la solicitud de captura original.

Representación JSON
{
  "captureRequestId": string
}
Campos
captureRequestId

string

OBLIGATORIO: Es un identificador único para esta transacción. Este es el requestId generado por Google durante la llamada a capture que se busca.

RequestOriginator

Incluye información sobre la organización o el subgrupo de la organización y, opcionalmente, el empleado del que se originó esta solicitud. Esto le permite a Google identificar problemas o abusos, así como implementar controles a un nivel más detallado que el paymentIntegratorAccountId. Es especialmente útil cuando el emisor es un proveedor de servicios intermediario que obtiene solicitudes de varios clientes externos.

Representación JSON
{
  "organizationId": string,
  "organizationDescription": string,
  "agentId": string
}
Campos
organizationId

string

OBLIGATORIO: Es un identificador de la empresa, organización o grupo que organizó esta solicitud. Debe ser único en esta paymentIntegratorAccountId.

organizationDescription

string

OBLIGATORIO: Es un nombre legible o una descripción de la organización, que se puede usar para facilitar la comunicación entre los empleados de Google y el integrador en relación con esa organización.

agentId

string

OPCIONAL: Es un identificador único para el agente específico (empleado) de la organización que identifica organizationId, de donde proviene esta solicitud. Debe ser único en esta organizationId.

Se obtiene el informe del resultado de la investigación

Es el resultado de la llamada al método getDisputeInquiryReport.

Enumeradores
UNKNOWN_RESULT No establezcas este valor predeterminado.
SUCCESS Se encontró el pago y se proporcionó un informe.
PAYMENT_NOT_FOUND No se encontró el pago solicitado.
PAYMENT_TOO_OLD Se encontró el pago solicitado, pero no se proporcionó un informe debido a la antigüedad del pago.
ORDER_CANNOT_BE_RETURNED El pago solicitado pertenece a un pedido que existe, pero no se puede devolver. Entre los motivos, se incluyen los casos en los que el pedido se quitó a pedido de su propietario.
NO_ADDITIONAL_DETAILS Se encontró el pago solicitado, pero no hay un informe disponible.

Informe de compra

Es un informe que contiene detalles relevantes de la compra asociada con el pago solicitado.

Representación JSON
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
Campos
customerAccount

object (CustomerAccount)

OBLIGATORIO: Incluye información sobre el cliente y su cuenta.

order

object (Order)

OBLIGATORIO: Información sobre el pedido en el que se realizó el pago.

payment

object (Payment)

OPCIONAL: La información relacionada con el pago Nota: es posible realizar varios pagos en un solo pedido, pero solo contendrá información para el pago que se identificó en la solicitud original. No está disponible para todos los tipos de pedidos.

Cuenta del cliente

Información de la cuenta del cliente

Representación JSON
{
  "customerEmail": string,
  "customerName": string
}
Campos
customerEmail

string

OBLIGATORIO: La dirección de correo electrónico asociada con la Cuenta de Google del cliente

customerName

string

OBLIGATORIO: Indica el nombre del cliente.

Ordenar

Información sobre el pedido.

Representación 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: Es la marca de tiempo del momento en que se realizó el pedido, representado como milisegundos desde el ciclo de entrenamiento. No está disponible para todos los tipos de pedidos.

orderId

string

OPCIONAL: Es una string que identifica de forma única este orden. No está disponible para todos los tipos de pedidos.

currencyCode

string

OPCIONAL: Código de moneda en formato ISO 4217 de 3 letras para todos los importes de este pedido. No está disponible para todos los tipos de pedidos.

subTotalAmount

string (Int64Value format)

OPCIONAL: Es el importe total de este pedido sin impuestos, representado como micros de la moneda especificada en order.currencyCode. Esto equivale a SUM(items.totalPrice). No está disponible para todos los tipos de pedidos.

totalAmount

string (Int64Value format)

OPCIONAL: Es el importe total de este pedido, incluidos los impuestos, representado como micros de la moneda especificada en order.currencyCode. Esto equivale a subTotalAmount + SUM(taxes.amount). No está disponible para todos los tipos de pedidos.

shippingAddress

object (Address)

OPCIONAL: Dirección de envío de artículos físicos de este pedido.

items[]

object (Item)

OBLIGATORIO: Lista de artículos que fueron parte de este pedido.

taxes[]

object (Tax)

OBLIGATORIO: Lista de artículos que fueron parte de este pedido. La lista puede estar vacía.

Dirección

Estructura que contiene información sobre una dirección.

Representación JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
Campos
name

string

OPCIONAL: El nombre completo del cliente.

addressLine[]

string

OPCIONAL: Contiene texto de dirección no estructurado.

localityName

string

OPCIONAL: Es un término confuso, pero, por lo general, hace referencia a la parte de la ciudad o el pueblo de una dirección. En regiones del mundo en las que las localidades no estén bien definidas o no se ajusten bien a esta estructura (por ejemplo, Japón y China), deja la localidad en blanco y usa addressLine.

Ejemplos: ciudad de EE.UU., comuna de Italia o ciudad postal en el Reino Unido.

administrativeAreaName

string

OPCIONAL: Subdivisión administrativa de nivel superior de este país. Por ejemplo, estado de EE.UU., región de TI, provincia de CN o prefectura de Japón.

postalCodeNumber

string

OPCIONAL: A pesar de su nombre, los valores postales suelen ser alfanuméricos. Ejemplos: “94043”, “SW1W”, “SW1W 9TQ”.

countryCode

string

OPCIONAL: Es el código de país de la dirección del cliente, que se espera que sea ISO-3166-1 alfa-2.

Elemento

Incluye información sobre un artículo del pedido.

Representación JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Campos
description

string

OPCIONAL: Una descripción del artículo que se compró. No está disponible para todos los tipos de pedidos.

merchant

string

OBLIGATORIO: Es el vendedor, el artista o el fabricante del artículo.

quantity

string (Int64Value format)

OPCIONAL: Es la cantidad que se pidió de este artículo.

Este campo se omitirá si las cantidades de números enteros no son aplicables al producto (por ejemplo, los productos medidos pueden tener cantidades fraccionarias).

totalPrice

string (Int64Value format)

OPCIONAL: El precio total de este elemento, representado como micros de la moneda especificada en order.currencyCode. Si se propaga quantity, esto refleja el precio total de la cantidad completa. No está disponible para todos los tipos de pedidos.

googleProductName

string

OBLIGATORIO: Es el nombre del servicio de productos de Google correspondiente al artículo.

Impuesto

Información sobre un impuesto que se aplica a este pedido.

Representación JSON
{
  "description": string,
  "amount": string
}
Campos
description

string

OBLIGATORIO: Es una descripción del impuesto.

amount

string (Int64Value format)

OBLIGATORIO: El importe del impuesto, representado como micros de la moneda especificada en order.currencyCode.

Pago

Información sobre el pago.

Representación 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)

OBLIGATORIO: Dirección de facturación para este pago

amount

string (Int64Value format)

OBLIGATORIO: Importe de este pago, representado como micros de la moneda especificada en order.currencyCode. Nota: Es posible que este importe no coincida con order.totalAmount si el pedido se pagó mediante varios pagos.

refunds[]

object (Refund)

OBLIGATORIO: Lista de reembolsos realizados en este pago. La lista puede estar vacía.

Campo de unión fopDetails.

fopDetails puede ser una de las siguientes opciones:

cardDetails

object (PaymentCardDetails)

OPCIONAL: Detalles del pago específicos para las FoP de las tarjetas de crédito y débito

Reembolso

Información sobre un reembolso realizado en un pago.

Representación JSON
{
  "amount": string,
  "initiatedTimestamp": string
}
Campos
amount

string (Int64Value format)

OBLIGATORIO: Es el importe reembolsado, una cantidad positiva de micros de la moneda especificada en order.currencyCode.

initiatedTimestamp

string (int64 format)

OBLIGATORIO: Marca de tiempo del momento en que se inició el reembolso, representado como milisegundos desde el ciclo de entrenamiento.

Detalles de la tarjeta de pago

Detalles específicos de las tarjetas de crédito y débito

Representación JSON
{
  "authResult": enum (AuthResult)
}
Campos
authResult

enum (AuthResult)

OBLIGATORIO: Resultado de la autenticación del pago.

AuthResult

Resultados de la autenticación del pago

Enumeradores
UNKNOWN_RESULT No establezcas este valor predeterminado.
APPROVED Aprobación aprobada.
DENIED Se denegó la autenticación.
NOT_ATTEMPTED No se intentó la autenticación.