Referência de objeto

Nesta referência, descrevemos as opções de objeto da API Google Pay para usar com seu site. Há três tipos de objetos abordados nesta referência:

Objetos de solicitação

Para configurar a experiência esperada, um objeto de solicitação é passado para um método de classe na biblioteca cliente da API Google Pay. Há vários objetos de solicitação a serem configurados para fazer solicitações à API Google Pay.

PaymentOptions

Depois de testar sua implementação e estar pronto para receber pagamentos de compradores, configure este objeto para um ambiente de produção.

Se você configurar as Atualizações dinâmicas de preço na sua integração, adicione os seguintes campos MerchantInfo e PaymentDataCallbacks:

Propriedade Tipo Necessidade Descrição
environment string Opcional
  • PRODUCTION: usado para retornar formas de pagamento sujeitas a cobrança quando um ID válido do comerciante do Google for especificado e configurado para o domínio.
  • TEST: formas de pagamento fictícias adequadas para testes (padrão).
MerchantInfo MerchantInfo Opcional Esse objeto apresenta informações sobre o comerciante que solicita os dados de pagamento.
paymentDataCallbacks PaymentDataCallbacks Opcional Este objeto declara os callbacks usados para Atualizações dinâmicas de preços.

Exemplo

O exemplo de configuração a seguir usa formas de pagamento não sujeitas a cobrança que são adequadas para um ambiente de teste. Isso inclui informações do comerciante e callback dos dados de pagamento.

{
  environment: "TEST",
  merchantInfo: {
    merchantName: "Example Merchant",
    merchantId: "0123456789"
  },
  paymentDataCallbacks: {
    onPaymentDataChanged: onPaymentDataChanged,
    onPaymentAuthorized: onPaymentAuthorized
  }
}

IsReadyToPayRequest

Este objeto especifica que formas de pagamento são aceitas.

Propriedade Tipo Necessidade Descrição
apiVersion number Obrigatório Versão principal da API. O valor é 2 para esta especificação.
apiVersionMinor number Obrigatório Versão secundária da API. O valor é 0 para esta especificação.
allowedPaymentMethods PaymentMethod[] Obrigatório

Especifica o suporte a uma ou mais formas de pagamento aceitas pela API Google Pay.

Uma tokenizationSpecification não é necessária para determinar a disponibilidade de pagamento do visualizador. Forneça todas as propriedades parameters necessárias para cada PaymentMethod aceita.

existingPaymentMethodRequired boolean Opcional

Se definido como true, o objeto IsReadyToPayResponse incluirá mais uma propriedade que descreve a disponibilidade do visitante de pagar com uma ou mais formas de pagamento especificadas em allowedPaymentMethods.

Exemplo

Neste exemplo, mostramos como aceitar cartões de pagamento e tokens de dispositivos Android de todas as redes de cartões aceitas.

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "allowedPaymentMethods": [
    {
      "type": "CARD",
      "parameters": {
        "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
        "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
      }
    }
  ]
}

PaymentDataRequest

Use este objeto para configurar a compatibilidade do site com a API Google Pay.

Propriedade Tipo Necessidade Descrição
apiVersion number Obrigatório Versão principal da API. O valor é 2 para esta especificação.
apiVersionMinor number Obrigatório Versão secundária da API. O valor é 0 para esta especificação.
merchantInfo MerchantInfo Obrigatório Informações sobre o comerciante que solicita os dados de pagamento.
allowedPaymentMethods PaymentMethod[] Obrigatório Especifica o suporte a uma ou mais formas de pagamento aceitas pela API Google Pay.
transactionInfo TransactionInfo Obrigatório Detalhes sobre a autorização da transação, dependendo de o usuário concordar ou não com ela. Inclui o preço total e o status do preço.
callbackIntents string[] Opcional Especifica os intents de callback a seguir para PaymentDataCallbacks:
  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
emailRequired boolean Opcional Defina como true para solicitar um endereço de e-mail.
shippingAddressRequired boolean Opcional Defina como true para solicitar um endereço de entrega completo.
shippingAddressParameters ShippingAddressParameters Opcional Se shippingAddressRequired estiver definido como true, especifique as restrições de endereço de entrega.
shippingOptionRequired boolean Opcional Defina como true quando o intent de callback SHIPPING_OPTION for usado. Este campo é obrigatório se você implementar o suporte para Autorizar pagamentos ou Atualizações dinâmicas de preços. Para detalhes, consulte ShippingOptionParameters.
shippingOptionParameters ShippingOptionParameters[] Opcional Defina as opções padrão.

Exemplo

O exemplo a seguir mostra como aceitar cartões de pagamento e tokens de dispositivos Android de todas as redes de cartões aceitas. Os cartões de pagamento são tokenizados para um gateway de exemplo. A solicitação é de uma forma de pagamento para cobrar um valor final de US$ 12,34.

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "merchantInfo": {
    "merchantName": "Example Merchant"
  },
  "allowedPaymentMethods": [
    {
      "type": "CARD",
      "parameters": {
        "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
        "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
      },
      "tokenizationSpecification": {
        "type": "PAYMENT_GATEWAY",
        "parameters": {
          "gateway": "example",
          "gatewayMerchantId": "exampleGatewayMerchantId"
        }
      }
    }
  ],
  "transactionInfo": {
    "totalPriceStatus": "FINAL",
    "totalPrice": "12.34",
    "currencyCode": "USD"
  }
}

PaymentDataCallbacks

Se você configurar as Atualizações dinâmicas de preços em sua integração, adicione os seguintes callbacks onPaymentDataChanged e onPaymentAuthorized:

Propriedade Tipo Necessidade Descrição
onPaymentDataChanged função Opcional Chamado quando os seguintes valores callbackIntents são definidos em PaymentDataRequest:
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
onPaymentAuthorized função Obrigatório Chamado quando os seguintes valores callbackIntents são definidos em PaymentDataRequest: PAYMENT_AUTHORIZATION

Exemplo

O exemplo de configuração a seguir usa os callbacks necessários para configurar as Atualizações dinâmicas de preços:

{
  onPaymentDataChanged: onPaymentDataChanged,
  onPaymentAuthorized: onPaymentAuthorized
}

PaymentDataRequestUpdate

Este objeto especifica novas informações de transação, opções de envio e erro para atualizar a página de pagamento.

Propriedade Tipo Necessidade Descrição
newTransactionInfo TransactionInfo Opcional Atualiza as informações da transação na página de pagamento.
newShippingOptionParameters ShippingOptionParameters Opcional Atualiza as opções de envio na página de pagamento.
error PaymentDataError Opcional Adiciona uma mensagem de erro à página de pagamento.

Exemplo

O exemplo a seguir mostra todas as atualizações de solicitação de dados de pagamento que podem ser retornadas à API Google Pay.

{
  newTransactionInfo: {
   	displayItems: [
    {
      label: "Subtotal",
      type: "SUBTOTAL",
      price: "11.00",
    },
    {
      label: "Tax",
      type: "TAX",
      price: "1.00",
    }
  ],
  currencyCode: "USD",
  totalPriceStatus: "FINAL",
  totalPrice: "12.00",
  totalPriceLabel: "Total"
  },
  newShippingOptions: {
    defaultSelectedOptionId: "shipping-001",
    shippingOptions: [
      {
        "id": "shipping-001",
        "label": "Free: Standard shipping",
        "description": "Free Shipping delivered in 5 business days."
      }
    ]
  },
  error: {
    reason: "SHIPPING_ADDRESS_UNSERVICEABLE",
    message: "Cannot ship to the selected address",
    intent: "SHIPPING_ADDRESS"
  }
}

MerchantInfo

Esse objeto apresenta informações sobre o comerciante que solicita os dados de pagamento.

Propriedade Tipo Necessidade Descrição
merchantId string Obrigatório Um identificador do comerciante do Google emitido depois que seu site é aprovado pelo Google. Necessário quando PaymentsClient é inicializado com uma propriedade environment de PRODUCTION. Consulte a Lista de verificação de integração para mais informações sobre o processo de aprovação e como conseguir um identificador do comerciante do Google.
merchantName string Opcional Nome do comerciante codificado como UTF-8. O nome do comerciante é processado na página de pagamento. No ambiente TEST, ou se um comerciante não for reconhecido, a mensagem "Comerciante não verificado do Google Pay" aparecerá na página de pagamento.
merchantOrigin string Opcional

O domínio totalmente qualificado do provedor que faz uma solicitação em nome do comerciante. Obrigatório quando um site exibe um botão de pagamento do Google Pay e solicita informações de pagamento em nome de outro site, normalmente por meio de uma Integração de finalização de compra hospedada.

Exemplo

O exemplo a seguir mostra um objeto merchantInfo com merchantName.

merchantInfo: {
    merchantName: "Example Merchant",
}

PaymentMethod

Esse objeto especifica uma ou mais formas de pagamento compatíveis com a API Google Pay e aceitas pelo seu site.

Propriedade Tipo Necessidade Descrição
type string Obrigatório

Um identificador curto para a forma de pagamento aceita. No momento, apenas CARD e PAYPAL são entradas aceitas.

parameters object Obrigatório Parâmetros necessários para configurar o tipo de forma de pagamento fornecido. Consulte CardParameters para mais informações sobre valores esperados para a forma de pagamento CARD. Consulte PAYPALParameters para mais informações sobre os valores esperados para a forma de pagamento PAYPAL.
tokenizationSpecification PaymentMethodTokenizationSpecification Opcional

Configure uma conta ou um provedor de descriptografia para receber informações de pagamento.

Essa propriedade é obrigatória para a forma de pagamento CARD.

Essa propriedade não terá efeito se estiver incluída como parte de um IsReadyToPayRequest.

CARD

No exemplo a seguir, mostramos como aceitar cartões de pagamento e tokens de dispositivos Android de todas as redes de cartões aceitas. Mostramos a tokenização por meio de um gateway de exemplo.

{
  "type": "CARD",
  "parameters": {
    "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
    "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
  },
  "tokenizationSpecification": {
    "type": "PAYMENT_GATEWAY",
    "parameters": {
      "gateway": "example",
      "gatewayMerchantId": "exampleGatewayMerchantId"
    }
  }
}
PAYPAL

No exemplo a seguir, mostramos como aceitar forma de pagamento PAYPAL.

{
  “type”: “PAYPAL”,
  parameters: {
  	"purchase_context": {
    	     "purchase_units": [{
        		"payee": {
          		      "merchant_id": "PAYPAL_ACCOUNT_ID"
                      	   }
       	       } ]
  	  }
    },
   “tokenizationSpecification”: {
	type: “DIRECT”  }
}

TokenizationSpecification

Esse objeto permite que você configure uma conta para receber informações de pagamento sujeito a cobrança.

Propriedade Tipo Necessidade Descrição
type string Obrigatório

É aceito um tipo de tokenização de forma de pagamento para o PaymentMethod fornecido. Para a forma de pagamento CARD, use PAYMENT_GATEWAY ou DIRECT . Para PAYPAL PaymentMethod, use DIRECT sem parâmetro.

parameters object Obrigatório Parâmetros específicos para o tipo de tokenização da forma de pagamento selecionada.

Gateway

Defina type como PAYMENT_GATEWAY para recuperar informações de pagamento e de clientes de um gateway de pagamento compatível com a API Google Pay. Defina as propriedades parameters conforme descrito pelo seu gateway. As propriedades comuns incluem o identificador do gateway emitido pelo Google e o código da conta do gateway fornecido por seu gateway.

Exemplo
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "exemplo",
    "gatewayMerchantId": "exampleGatewayMerchantId"
  }
}
ACI
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "aciworldwide",
    "gatewayMerchantId": "YOUR_ENTITY_ID"
  }
}
Adyen
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "adyen",
    "gatewayMerchantId": "YOUR_MERCHANT_ACCOUNT_NAME"
  }
}
Alfa-Bank
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "alfabank",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Blue Media
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "bluemedia",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
BlueSnap
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "bluesnap",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Braintree
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "braintree",
    "braintree:apiVersion": "v1",
    "braintree:sdkVersion": braintree.client.VERSION,
    "braintree:merchantId": "YOUR_BRAINTREE_MERCHANT_ID",
    "braintree:clientKey": "YOUR_BRAINTREE_TOKENIZATION_KEY"
  }
}
Braspag
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cielo",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
CardConnect
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cardconnect",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Chase Paymentech
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "chase",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ACCOUNT_NUMBER"
  }
}
Checkout.com
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "checkoutltd",
    "gatewayMerchantId": "YOUR_PUBLIC_KEY"
  }
}
CloudPayments
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cloudpayments",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
CyberSource
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cybersource",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
Datatrans
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "datatrans",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
EBANX
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "ebanx",
    "gatewayMerchantId": "YOUR_PUBLIC_INTEGRATION_KEY"
  }
}
First Data
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "firstdata",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
Global Payments
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "globalpayments",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
GoPay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "gopay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
GMO Payment Gateway
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "gmopg",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
HiTrust
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "hitrustpay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
IMSolutions
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "imsolutions",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
iQmetrix
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "iqmetrixpaymentservicesgateway",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Lyra
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "lyra",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
MPGS
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "mpgs",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Money.Mail.Ru
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "moneymailru",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Mundipagg
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "mundipagg",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Newebpay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "newebpay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Nexi
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "nexi",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
NMI
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "creditcall",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Paysafe
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "paysafe",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Payture
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "payture",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
PayU
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "payu",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Przelewy24
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "przelewy24",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
RBKmoney
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "rbkmoney",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
Redsys
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "redsys",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Sberbank
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sberbank",
    "gatewayMerchantId": "YOUR_ORGANIZATION_NAME"
  }
}
Softbank Payment Service
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sbps",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Sony Payment Services
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sonypaymentservices",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Square
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "square",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Stripe
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "stripe",
    "stripe:version": "2018-10-31",
    "stripe:publishableKey": "YOUR_PUBLIC_STRIPE_KEY"
  }
}
TapPay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "tappay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Tinkoff
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "tinkoff",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Uniteller
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "uniteller",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Vantiv
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "vantiv",
    "vantiv:merchantPayPageId": "YOUR_PAY_PAGE_ID",
    "vantiv:merchantOrderId": "YOUR_ORDER_ID",
    "vantiv:merchantTransactionId": "YOUR_TRANSACTION_ID",
    "vantiv:merchantReportGroup": "*web"
  }
}
Veritrans
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "veritrans",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Vindicia
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "vindicia",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Worldpay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "worldpay",
    "gatewayMerchantId": "YOUR_WORLDPAY_MERCHANT_ID"
  }
}
Yandex
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "yandexcheckout",
    "gatewayMerchantId": "YOUR_SHOP_ID"
  }
}

Direct

Defina type como DIRECT para descriptografar uma resposta diretamente nos servidores. Essa configuração tem outros requisitos de segurança de dados do Google e complexidade adicional de conformidade com PCI DSS.

Propriedade Tipo Necessidade Descrição
protocolVersion string Obrigatório A versão do protocolo de criptografia/assinatura esperada na resposta. Atualmente, ECv2 é aceita. Consulte Criptografia de dados de pagamento para mais informações sobre os protocolos de criptografia e assinatura disponíveis.
publicKey string Obrigatório Chave pública de curva elíptica codificada em Base64. Consulte a seção Formato de chave pública de criptografia em nossa documentação de criptografia do comerciante para mais informações.
Exemplo

No exemplo a seguir, o valor de publicKey é abreviado para facilitar a leitura.

"tokenizationSpecification": {
  "type": "DIRECT",
  "parameters": {
    "protocolVersion": "ECv2",
    "publicKey": "BOdoXP1aiNp.....kh3JUhiSZKHYF2Y="
  }
}

CardParameters

Este objeto permite definir os tipos de cartões de pagamento aceitos. O Google filtra os cartões de pagamento disponíveis do pagador de acordo com as opções configuradas.

Propriedade Tipo Necessidade Descrição
allowedAuthMethods string[] Obrigatório

Campos aceitos para autenticar uma transação de cartão.

  • PAN_ONLY: esse método de autenticação está associado a cartões de pagamento armazenados em arquivo com a Conta do Google do usuário. Os dados de pagamento retornados incluem o Número da conta pessoal (PAN, na sigla em inglês) com o mês e o ano de vencimento.
  • CRYPTOGRAM_3DS: este método de autenticação está associado a cartões armazenados como tokens de dispositivos Android. Os dados de pagamento retornados incluem um criptograma 3-D Secure (3DS) gerado no dispositivo.
allowedCardNetworks string Obrigatório

Uma ou mais redes de cartões aceitas por você e pela API Google Pay.

  • AMEX
  • DISCOVER
  • INTERAC
  • JCB
  • MASTERCARD
  • VISA
allowPrepaidCards boolean Opcional Defina como false se você não aceitar cartões pré-pagos. Padrão: a classe de cartão pré-pago é compatível com as redes de cartões especificadas.
billingAddressRequired boolean Opcional Defina como true se você precisar de um endereço de faturamento. Um endereço de faturamento só deve ser solicitado se for necessário para processar a transação. Outras solicitações de dados podem aumentar o atrito no processo de finalização de compra e gerar uma taxa de conversão mais baixa.
billingAddressParameters BillingAddressParameters Opcional Os campos esperados retornados se billingAddressRequired estiver definido como true.

Exemplo para CARD

A seguir, apresentamos um exemplo de como aceitar todas as redes de cartões e métodos de autenticação de cartão disponíveis:

{
  "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
  "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
}

BillingAddressParameters

Esse objeto permite definir campos extras a serem retornados para um endereço de faturamento solicitado.

Propriedade Tipo Necessidade Descrição
format string Opcional

Formato do endereço de faturamento necessário para concluir a transação.

  • MIN: nome, código do país e código postal (padrão).
  • FULL: nome, endereço, localização, região, código do país e código postal.
phoneNumberRequired boolean Opcional Defina como true se for necessário um número de telefone para processar a transação.

Exemplo

A seguir, apresentamos um exemplo de solicitação de uma versão mínima do endereço de faturamento, que é o valor padrão atual da propriedade.

{
  "format": "MIN"
}

ShippingAddressParameters

Esse objeto é usado para definir restrições de envio.

Propriedade Tipo Necessidade Descrição
allowedCountryCodes string[] Opcional Valores de código do país ISO 3166-1 alpha-2 dos países para os quais a entrega é permitida. Se esse objeto não for especificado, todos os países do endereço de entrega serão permitidos.
phoneNumberRequired boolean Opcional Defina como true se um número de telefone for necessário para o endereço de entrega fornecido.

Exemplo

O exemplo a seguir é uma solicitação de um endereço de entrega nos Estados Unidos.

{
  "allowedCountryCodes": ["US"]
}

ShippingOptionParameters

Propriedade Tipo Necessidade Descrição
shippingOptions SelectionOption Obrigatório Todas as opções de envio disponíveis para a solicitação atual.
defaultSelectedOptionId String Opcional Um identificador da opção de envio selecionada por padrão. Se este campo não for fornecido, a primeira opção será a opção padrão.

Exemplo

O exemplo a seguir mostra todas as opções de envio da página de pagamento e uma opção de envio padrão.

{
  defaultSelectedOptionId: "0",
  shippingOptions: [
    {
      "id": "shipping-001",
      "label": "$0.00: Free shipping",
      "description": "Free Shipping delivered in 5 business days."
    },
    {
      "id": "shipping-002",
      "label": "$1.99: Standard shipping",
      "description": "Standard shipping delivered in 3 business days."
    },
    {
      "id": "shipping-003",
      "label": "$1000: Express shipping",
      "description": "Express shipping delivered in 1 business day."
    }
  ]
}

SelectionOption

Propriedade Tipo Necessidade Descrição
id String Obrigatório O desenvolvedor pode colocar qualquer valor que precise ser retornado em PaymentData.
label String Obrigatório O rótulo a ser exibido como a opção.
description String Opcional Um texto descritivo exibido abaixo do rótulo da opção.

Exemplo

O exemplo a seguir mostra uma opção de envio.

{
  "id": "shipping-003",
  "label": "$10: Express shipping",
  "description": "Express shipping delivered in 1 business day."
}

TransactionInfo

Este objeto descreve uma transação que determina a capacidade de pagamento do pagador. Ele é usado para apresentar uma caixa de diálogo de autorização de pagamento. Na tabela a seguir, apresentamos os detalhes das propriedades do objeto.

Propriedade Tipo Necessidade Descrição
currencyCode string Obrigatório Código de moeda ISO 4217 em ordem alfabética.
countryCode string Opcional (obrigatório para países do EEE) Código ISO 3166-1 alfa-2 do país em que a transação é processada. Isso é necessário para comerciantes localizados nos países do Espaço Econômico Europeu (EEE).
totalPriceStatus string Obrigatório

O status do preço total usado:

  • NOT_CURRENTLY_KNOWN: usado para uma verificação de capacidade. Não use essa propriedade se a transação for processada em um país do EEE.
  • ESTIMATED: o preço total pode ser ajustado de acordo com os detalhes da resposta, como o tributo sobre vendas coletado com base em um endereço de faturamento.
  • FINAL: o preço total não será alterado em relação ao valor apresentado ao comprador.
totalPrice string Opcional

Valor monetário total da transação com uma precisão opcional de duas casas decimais. Esse campo é obrigatório, a menos que totalPriceStatus esteja definido como NOT_CURRENTLY_KNOWN.

O formato da string precisa seguir o formato regex: ^[0-9]+(\.[0-9][0-9])?$

displayItems DisplayItem[] Opcional Todas as cobranças disponíveis para a solicitação de pagamento atual. Isso só será preenchido na folha de pagamento se você usar Autorizar pagamentos ou Atualizações dinâmicas de preços. Esse campo será obrigatório se você implementar o suporte para "Autorizar pagamentos" ou "Atualizações dinâmicas de preços".
totalPriceLabel string Opcional Rótulo personalizado para o preço total nos itens em exibição.
checkoutOption string Opcional

Afeta o texto do botão de envio exibido na página de pagamento do Google Pay.

  • DEFAULT: o texto padrão se aplica ao totalPriceStatus fornecido (padrão).
  • COMPLETE_IMMEDIATE_PURCHASE: a forma de pagamento selecionada será cobrada imediatamente após o pagador confirmar as seleções. Essa opção está disponível apenas quando totalPriceStatus está definido como FINAL.

Exemplo de preço final

A seguir, apresentamos um exemplo de um preço final em dólares americanos.

{
  displayItems: [
    {
      label: "Subtotal",
      type: "SUBTOTAL",
      price: "11.00",
    },
    {
      label: "Tax",
      type: "TAX",
      price: "1.00",
    }
  ],
    currencyCode: "USD",
    countryCode: "US",
    totalPriceStatus: "FINAL",
    totalPrice: "12.00",
    totalPriceLabel: "Total",
    checkoutOption: "DEFAULT",
    newShippingOptions: {
 	    defaultSelectedOptionId: "shipping-001",
      shippingOptions: [
        {
          "id": "shipping-001",
          "label": "Free: Standard shipping",
          "description": "Free Shipping delivered in 5 business days."
        }
      ]
    },
    error: {
   	  reason: "SHIPPING_ADDRESS_UNSERVICEABLE",
      message: "Cannot ship to the selected address",
      intent: "SHIPPING_ADDRESS"
    }
}

ButtonOptions

Este objeto permite que você configure um botão de pagamento do Google Pay. Para mais informações sobre os tipos de botões, as cores e os requisitos de exibição, consulte as Diretrizes da marca do Google.

Propriedade Tipo Necessidade Descrição
onClick

function or Object

Obrigatório Um callback do listener de eventos para chamar quando um evento de clique for entregue ao destino <button>.
buttonColor string Opcional
  • default: um valor padrão selecionado pelo Google. Atualmente black, mas pode mudar com o tempo (padrão).
  • black: um botão preto adequado para uso em fundos brancos ou claros.
  • white: um botão branco adequado para uso em fundos coloridos.
buttonType string Opcional
  • long: botão "Comprar com o Google Pay" (padrão). Um rótulo de botão traduzido poderá aparecer se um idioma especificado no navegador do visitante corresponder a um idioma disponível.
  • short: botão de pagamento do Google Pay sem o texto "Comprar com".

PayPalParameters

Esse objeto permite definir os parâmetros do PayPal.

Propriedade Tipo Necessidade Descrição
purchase_context PurchaseContext Obrigatório Use as informações sobre o pedido para a descrição.

Exemplo para o PayPal

A seguir, apresentamos um exemplo de como aceitar forma de pagamento PayPal:

{
  "purchase_context": {
    "purchase_units": [
      {
        "payee": {
          "merchant_id": "PAYPAL_ACCOUNT_ID"
        }
      }
    ]
  }
}

PurchaseContext

Esse objeto apresenta informações sobre o pedido.

Propriedade Tipo Necessidade Descrição
purchase_units PurchaseUnit[] Obrigatório Descreve o contrato entre o cliente e o comerciante.

PurchaseUnit

Esse objeto descreve um contrato entre o cliente e o comerciante do PayPal. Consulte a purchase_unit na documentação da API PayPal Order para mais informações (links em inglês).

Propriedade Tipo Necessidade Descrição
payee Payee Obrigatório O recebimento de fundos para essa transação.

Beneficiário

Esse objeto apresenta informações sobre o comerciante que recebe os fundos. Consulte "payee" na documentação de referência da API PayPal Orders (em inglês) para mais detalhes.

Consulte os parâmetros opcionais (em inglês) para ver outros parâmetros compatíveis.

Exemplo para o PayPal

A seguir, apresentamos um exemplo de como aceitar a forma de pagamento PayPal.

{
  “type”: “PAYPAL”,
  parameters: {
  	"purchase_context": {
    	     "purchase_units": [{
        		"payee": {
          		      "merchant_id": "PAYPAL_ACCOUNT_ID"
                      	   }
       	       } ]
  	  }
    },
   “tokenizationSpecification”: {
	type: “DIRECT”  }
}

Exemplo

Este exemplo gera um botão de pagamento do Google Pay com um gerenciador de eventos de clique e opções de exibição padrão.

{
  onClick: onGooglePaymentButtonClicked
}

Objetos de resposta

Os objetos de resposta são retornados pelos métodos do cliente da API Google Pay.

IsReadyToPayResponse

Este objeto contém informações sobre a capacidade de um visitante do site de fornecer informações de pagamento ao site que as solicita.

Propriedade Tipo Sempre existe Descrição
result boolean Sim O visitante atual pode fornecer informações de pagamento ao site que as solicita. A capacidade de pagamento de um visitante pode estar vinculada à capacidade do navegador da Web de exibir os componentes necessários para as formas de pagamento especificadas. Isso inclui o momento em que eles fazem login em uma Conta do Google e fornecem uma forma de pagamento.
paymentMethodPresent boolean Não

Se for true, o visitante terá uma ou mais das formas de pagamento especificadas na propriedade allowedPaymentMethods do IsReadyToPayRequest fornecido.

Existe apenas quando existingPaymentMethodRequired foi definido como true em IsReadyToPayRequest.

Se PaymentsClient for inicializado com uma propriedade environment de TEST, uma forma de pagamento será sempre considerada presente.

Exemplo

O exemplo a seguir mostra quando o visitante atual pode fornecer informações de pagamento ao site que as solicita.

{
  "result": true
}

PaymentData

Esse é um objeto de resposta retornado pelo Google depois que um pagador aprova o pagamento.

Propriedade Tipo Sempre existe Descrição
apiVersion number Sim Versão principal da API. O valor na resposta corresponde ao valor fornecido em PaymentDataRequest.
apiVersionMinor number Sim Versão secundária da API. O valor na resposta corresponde ao valor fornecido em PaymentDataRequest.
paymentMethodData PaymentMethodData Sim Dados da forma de pagamento selecionada.
email string Não Endereço de e-mail, se emailRequired estiver definido como true no PaymentDataRequest. Se outra solicitação tiver a propriedade definida como true, não haverá efeito.
shippingAddress Endereço Não Endereço de entrega, se shippingAddressRequired estiver definido como true no PaymentDataRequest.

Exemplo

Neste exemplo de resposta para a API Google Pay versão 2.0, mostramos uma forma de pagamento CARD selecionada na página de pagamento do Google Pay. Um token de forma de pagamento foi gerado para o gateway de example.

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "paymentMethodData": {
    "type": "CARD",
    "description": "Visa •••• 1234",
    "info": {
      "cardNetwork": "VISA",
      "cardDetails": "1234"
    },
    "tokenizationData": {
      "type": "PAYMENT_GATEWAY",
      "token": "examplePaymentMethodToken"
    }
  }
}

IntermediatePaymentData

Este é o objeto retornado pela entrada onPaymentDataChanged() da API Google Pay quando o endereço de entrega ou as opções de envio são alteradas na página de pagamento.

Propriedade Tipo Necessidade Descrição
callbackTrigger String Opcional

Descreve o motivo pelo qual o callback dos dados de pagamento foi invocado.

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
shippingAddress IntermediateAddress Opcional O endereço selecionado na página de pagamento.
shippingOptionData SelectionOptionData Opcional A opção de envio selecionada na página de pagamento.

Exemplo

Este exemplo mostra o payload intermediário retornado pela API Google Pay.

{
  callbackTrigger: "SHIPPING_ADDRESS"
  shippingAddress: {
    administrativeArea: "NY"
    countryCode: "US"
    locality: "New York"
    postalCode: "10011"
  },
  shippingOptionData: {
    id: "shipping-001"
  }
}

PaymentMethodData

Esse objeto fornece dados para uma forma de pagamento selecionada.

Propriedade Tipo Sempre existe Descrição
type string Sim PaymentMethod type selecionado na folha de pagamento do Google Pay.
description string Sim

Mensagem direcionada ao usuário para descrever a forma de pagamento que financia essa transação.

info object Sim O valor dessa propriedade depende da forma de pagamento type retornada. Para CARD, consulte CardInfo.
tokenizationData PaymentMethodTokenizationData Sim Dados de tokenização de pagamento da forma de pagamento selecionada.

Exemplo

Nesta resposta de exemplo, mostramos como uma forma de pagamento CARD selecionada na página de pagamento do Google Pay gera um token de forma de pagamento para o gateway example.

{
  "type": "CARD",
  "description": "Visa •••• 1234",
  "info": {
    "cardNetwork": "VISA",
    "cardDetails": "1234"
  },
  "tokenizationData": {
    "type": "PAYMENT_GATEWAY",
    "token": "examplePaymentMethodToken"
  }
}

CardInfo

Esse objeto apresenta informações sobre o cartão de pagamento selecionado.

Propriedade Tipo Sempre existe Descrição
cardDetails string Sim Os detalhes sobre o cartão. Normalmente, esse valor corresponde aos últimos quatro dígitos do número da conta de pagamento selecionada.
cardNetwork string Sim

A rede do cartão relacionada ao pagamento selecionado. Os valores retornados correspondem ao formato de allowedCardNetworks em CardParameters.

Este valor da rede do cartão não deve ser exibido para o comprador. Ele é usado quando são necessários os dados do cartão de um comprador. Por exemplo, se o suporte ao cliente precisar desse valor para identificar o cartão usado pelo comprador para a transação. Para uma descrição visível ao usuário, use a propriedade description de PaymentMethodData.

billingAddress Endereço Não O endereço de cobrança associado à forma de pagamento fornecida, se billingAddressRequired estiver definido como true em CardParameters.

Exemplo

Neste exemplo, mostramos um cartão na rede Visa.

{
  "cardNetwork": "VISA",
  "cardDetails": "1234"
}

PaymentMethodTokenizationData

Esse objeto fornece dados de tokenização para a forma de pagamento.

Propriedade Tipo Sempre existe Descrição
type string Sim O tipo de tokenização a ser aplicado à forma de pagamento selecionada. Esse valor corresponde ao type definido em PaymentMethodTokenizationSpecification.
token string Não

O token gerado da forma de pagamento.

Exemplo

Este é um exemplo de uma resposta tokenizada preparada para o gateway example.

{
  "type": "PAYMENT_GATEWAY",
  "token": "examplePaymentMethodToken"
}

DisplayItem

Propriedade Tipo Necessidade Descrição
label String Obrigatório O rótulo a ser exibido para a opção fornecida.
type String Obrigatório

Tipo de item de linha exibido:

  • LINE_ITEM
  • SUBTOTAL
price String Obrigatório O valor monetário do item do carrinho com uma precisão decimal opcional de duas casas decimais. São permitidos valores negativos.
status String Opcional

As variáveis a seguir definem a variação de preço:

  • FINAL
  • PENDING

Se não informado, o padrão será FINAL.

Exemplo

Este exemplo mostra uma lista de itens de transação que podem ser mostrados na página de pagamento.

{
  displayItems: [
    {
      label: "Subtotal",
      type: "SUBTOTAL",
      price: "11.00",
    },
    {
      label: "Tax",
      type: "TAX",
      price: "1.00",
    },
    {
      "label": "Shipping",
      "type": "LINE_ITEM",
      "price": "0", // Won't be displayed since status is PENDING
      "status": "PENDING",
    }
  ]
}

PaymentAuthorizationResult

Este objeto apresenta informações sobre o resultado da autorização de pagamento.

Propriedade Tipo Necessidade Descrição
transactionState String Obrigatório O estado da transação é resolvido por um dos seguintes resultados do comerciante:
  • SUCCESS
  • ERROR
error PaymentDataError Opcional O erro a ser processado na página de pagamento para o usuário quando for necessário repetir o pagamento.

Exemplo

O exemplo a seguir mostra o retorno do resultado do pagamento após o processamento dele:

{
  transactionState: "ERROR",
  error: {
    reason: "PAYMENT_DATA_INVALID",
    message: "Cannot pay with payment credentials",
    intent: "PAYMENT_AUTHORIZATION"
  }
}

PaymentDataError

Propriedade Tipo Necessidade Descrição
reason String Obrigatório

Lista de motivos de erro predefinidos:

  • PAYMENT_DATA_INVALID
  • SHIPPING_ADDRESS_INVALID
  • SHIPPING_ADDRESS_UNSERVICEABLE
  • SHIPPING_OPTION_INVALID
  • OTHER_ERROR
message String Obrigatório Mensagem de erro para o usuário exibida em uma caixa de diálogo.
intent String Obrigatório

O intent do erro. Precisa ser aquele registrado em PaymentDataRequest desde o início do fluxo.

  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

Exemplo

Este exemplo mostra o intent do erro e a mensagem a ser renderizada na página de pagamento.

{
  error: {
    reason: "SHIPPING_OPTION_INVALID",
    message: "This shipping option is invalid for the given address",
    intent: "SHIPPING_OPTION"
  }
}

Endereço

Este objeto fornece informações sobre um endereço postal solicitado. Todas as propriedades são strings.

Um formato de endereço MIN pode ser retornado se billingAddressFormat estiver definido como . Um endereço de entrega é retornado no formato de endereço FULL. Todas as propriedades em uma resposta formatada como MIN existem em uma resposta formatada como FULL.

Propriedade Formato do endereço Descrição
name MIN O nome completo do destinatário.
postalCode MIN O código postal ou CEP.
countryCode MIN Código do país de acordo com a norma ISO 3166-1 alfa-2.
phoneNumber MIN Um número de telefone, se phoneNumberRequired estiver definido como true no PaymentDataRequest.
address1 FULL A primeira linha do endereço.
address2 FULL A segunda linha do endereço.
address3 FULL A terceira linha do endereço.
locality FULL Cidade, município, bairro ou subúrbio
administrativeArea FULL Uma subdivisão de país, como um estado ou província.
sortingCode FULL O código de classificação.

Exemplo

Este é um exemplo de endereço nos Estados Unidos com várias linhas de dados.

{
  "name": "John Doe",
  "address1": "c/o Google LLC",
  "address2": "1600 Amphitheatre Pkwy",
  "address3": "Building 40",
  "locality": "Mountain View",
  "administrativeArea": "CA",
  "countryCode": "US",
  "postalCode": "94043",
  "sortingCode": ""
}

IntermediateAddress

Propriedade Tipo Necessidade Descrição
administrativeArea String Obrigatório Uma subdivisão de país, como um estado ou província.
countryCode String Obrigatório Código do país de acordo com a norma ISO 3166-1 alfa-2.
locality String Obrigatório Cidade, município, bairro ou subúrbio
postalCode String Obrigatório O código postal editado de acordo com o país. Para o Canadá e o Reino Unido, essa informação contém apenas os três primeiros caracteres. Para os Estados Unidos, ela contém os cinco primeiros dígitos.

Exemplo

Este exemplo mostra o endereço selecionado na página de pagamento.

{
  administrativeArea: "NY",
  countryCode: "US",
  locality: "New York",
  postalCode: "10011"
}

SelectionOptionData

Propriedade Tipo Necessidade Descrição
id String Obrigatório Corresponde a SelectionOption.id

Exemplo

Este exemplo mostra a opção de envio selecionada na página de pagamento.

{
  id: "shipping-001"
}

Objetos de erro

Objetos de erro são objetos retornados por uma promessa rejeitada de um método JavaScript do cliente.

PaymentsError

Este objeto tem detalhes sobre erros retornados pelos métodos JavaScript do cliente. Talvez os erros não sejam exibidos em uma caixa de diálogo direcionada ao usuário.

Propriedade Tipo Descrição
statusCode string Código curto que descreve o tipo de erro.
statusMessage string Mensagem voltada para o desenvolvedor que descreve o erro encontrado e as possíveis etapas para corrigi-lo.

Erros comuns

Este objeto exibe erros que podem ser encontrados em todos os métodos JavaScript. Não esqueça de verificar o console do desenvolvedor para ver se há outras mensagens de erro.

Código de status Descrição
BUYER_ACCOUNT_ERROR O usuário atual do Google não pode fornecer informações de pagamento.
DEVELOPER_ERROR

Um parâmetro enviado está formatado incorretamente. Uma mensagem de erro pode aparecer no console do navegador para todos os ambientes configurados.

MERCHANT_ACCOUNT_ERROR

O site que acessa a API Google Pay não tem a permissão correta. Isso pode ocorrer devido a uma configuração incorreta ou a um identificador do comerciante incorreto definido na solicitação. Verifique o campo statusMessage para mais detalhes. Se você continuar tendo problemas, entre em contato com o suporte.

INTERNAL_ERROR Erro geral do servidor.