Getnet DocsGetnet Docs

Pagamentos com Google Pay™

Este documento se aplica ao seguinte país:

Brasil

Aceite pagamentos com o Google Pay™, a carteira digital do Google. O comprador paga com um cartão salvo em sua conta do Google, e sua integração recebe um token de pagamento criptografado em vez do número real do cartão.

Este guia orienta você na criação de um payment intent, na obtenção do token do Google Pay no frontend e no envio do pagamento por meio de uma única integração com a API Web Checkout.

Como funciona

Use o Google Pay quando quiser oferecer aos compradores um checkout rápido e tokenizado no Android e na web, sem que eles precisem digitar os dados do cartão. Principais características:

  • Sem digitação de cartão: o comprador paga com os cartões já salvos em sua conta do Google.
  • Token criptografado: o frontend obtém um token de pagamento da API do Google Pay e o encaminha para a Getnet. O número real do cartão nunca é exposto.
  • Autenticação nativa: ignora o fluxo 3DS.
  • Sem validação prévia de sessão: o Google Pay não exige uma etapa de validação de sessão.
  • Processamento síncrono: o envio do pagamento retorna o resultado (status / authorization_code) na mesma chamada.

O fluxo completo envolve o comprador, seu frontend, seu backend e a API Getnet Web Checkout:

Antes de começar

Certifique-se de que os itens abaixo estejam prontos antes de integrar:

  • O vendedor (x-seller-id) tem o Google Pay habilitado.
  • Sua integração com a API do Google Pay no frontend está configurada com o gateway e o gatewayMerchantId corretos, para que o token possa ser processado pela Getnet.
  • Gere seu token seguindo o documento de Authentication
  • O onboarding do domínio está concluído para seu tipo de integração (veja abaixo).

Onboarding técnico por tipo de integração

Tipo de integraçãoRegistro de domínio
Link & Redirect APIUsa o domínio da Getnet; não é necessário registrar o domínio do estabelecimento.
Iframe & LightboxO domínio do estabelecimento é diferente do domínio da Getnet. O estabelecimento deve informar seu domínio na configuração do Web Checkout para que a Getnet possa registrá-lo junto ao Google.

O tipo de checkout (Iframe & Lightbox) e as opções que serão aceitas podem ser definidos no Merchant Portal ou por API. Siga as etapas do documento para configurar pelo Merchant Portal ou pela API.

Etapa 1: Crie o payment intent

Chame a API Web Checkout para criar um payment intent. Ela retorna um payment_intent_id e uma redirect_url.

Endpoint
POST /payment-intent

Campos obrigatórios

CampoTipoDescriçãoExemplo
payment.currencyStringCódigo da moeda.BRL
payment.amountIntegerValor da compra em formato inteiro, onde os últimos 2 dígitos representam os centavos. Para países onde não se aplicam centavos, preencha o valor com 2 zeros à direita.92500
customer.customer_idStringRecomenda-se usar o número do documento do cliente, apenas letras e números, sem caracteres especiais, separadores ou espaços.12345678912
customer.first_nameStringPrimeiro nome do cliente.John
customer.last_nameStringSobrenome do cliente.Doe Smith
customer.nameStringNome completo do cliente.John Doe Smith
customer.emailStringEndereço de e-mail do cliente.[email protected]
customer.document_typeStringTipo de documento usado para identificar o cliente.CPF
customer.document_numberStringNúmero do documento usado para identificar o cliente.12345678912
customer.billing_address.streetStringNome de uma rua.Av. Brasil
customer.billing_address.numberStringNúmero que identifica a posição de um imóvel na rua.1000
customer.billing_address.countryStringCódigo do país.BR
customer.billing_address.postal_codeStringCEP ou código postal.90230060

Campos opcionais

CampoTipoDescriçãoExemplo
configurations.3dsbooleanControla a autenticação 3D Secure.true ou false
configurations.preauthorizationbooleanIndica se o pagamento é uma pré-autorização.true ou false
configurations.card_verificationbooleanIndica se este é um fluxo de verificação de cartão.true ou false
configurations.success_urlstringURL de redirecionamento em caso de pagamento bem-sucedido.https://www.mystore.com/checkout/success
configurations.error_urlstringURL de redirecionamento em caso de erro durante o pagamento.https://www.mystore.com/checkout/error
productarrayItens do pedido.---
soft_descriptorstringDescrição do pagamento exibida no comprovante do clienteLoja BR
expires_atstringExpiração do payment intent.3d4h15m

Regras de preenchimento dos campos:

  • O campo expires_at aceita um valor de duração (por exemplo, 15m, 2h, 7d ou 1d12h30m). Essa duração é aplicada independentemente do fuso horário do estabelecimento. O timestamp de expiração retornado pela API é sempre formatado em GMT+0 (UTC). Se nenhum valor for informado, o payment intent não expira.
  • Quando success_url e error_url são informados na requisição do payment intent, eles substituem o valor configurado na configuração técnica do vendedor.

Exemplo de requisição:

{
  "mode": "instant",
  "order_id": "ORDER_GPAY_BR_0001",
  "configurations": {
    "3ds": true,
    "preauthorization": false,
    "card_verification": false,
    "success_url": "https://www.mystore.com/checkout/success",
    "error_url": "https://www.mystore.com/checkout/error"
  },
  "payment": {
    "currency": "BRL",
    "amount": 92500
  },
  "product": [
    {
      "product_type": "service",
      "title": "Plano Pro",
      "description": "Assinatura 1 mes",
      "value": 92500,
      "quantity": 1
    }
  ],
  "customer": {
    "customer_id": "customer_br_005",
    "first_name": "Jose",
    "last_name": "da Silva",
    "name": "Jose da Silva",
    "email": "[email protected]",
    "document_type": "CPF",
    "document_number": "12345678909",
    "phone_number": "5511999998888",
    "checked_email": true,
    "billing_address": {
      "street": "Av. Paulista",
      "number": "1000",
      "complement": "Cj 101",
      "district": "Bela Vista",
      "city": "Sao Paulo",
      "state": "SP",
      "country": "BR",
      "postal_code": "01310100"
    }
  },
  "soft_descriptor": "Loja BR",
  "expires_at": "1h"
}

Etapa 2: Redirecione e obtenha o token

Redirecione o comprador para a redirect_url, ou exiba a tela de checkout incorporada onde ele escolhe o Google Pay. O comprador se autentica no dispositivo Android ou navegador (sem passar pelo 3DS).

Etapa 3: Confirme o resultado

O Google Pay é síncrono, a chamada retorna status e authorization_code. Confirme também o resultado por webhook para notification.url antes de liberar o pedido.

Webhook status pode ser Authorized ou Denied.

Resposta de webhook aprovada

Exemplo de resposta:

{
  "payment_intent_id": "ee0b7dd5-92da-4ef4-ad3b-0ba369ad0efe",
  "checkout_id": "5ab15d1e-ea8b-4560-84d2-fb3d02179537",
  "order_id": "ORDER_GPAY_BR_0001",
  "mode": "instant",
  "seller": {
    "id": "716d899e-9091-4577-a12f-8a77ec4d1e0b",
    "trade_name": "GetNet Shop",
    "merchant_document": "00000000000",
    "settings": { "notification_url_configured": true }
  },
  "customer": {
    "customer_id": "customer_br_005",
    "name": "Jose da Silva",
    "email": "[email protected]",
    "document_type": "CPF",
    "document_number": "12345678909"
  },
  "payment": {
    "method": "google_pay",
    "amount": 92500,
    "currency": "BRL",
    "result": {
      "payment_id": "9c8f0e2a-1b3d-4c5e-8a7f-2d1e0b9c8a7d",
      "status": "Authorized",
      "authorization_code": "123456",
      "transaction_datetime": "2026-07-08T12:00:00.000Z"
    }
  },
  "created_at": "2026-07-08T11:59:30.000Z",
  "updated_at": "2026-07-08T12:00:00.000Z"
}

Resposta de webhook negada

Exemplo de resposta:

{
  "payment_intent_id": "ee0b7dd5-92da-4ef4-ad3b-0ba369ad0efe",
  "checkout_id": "5ab15d1e-ea8b-4560-84d2-fb3d02179537",
  "order_id": "ORDER_GPAY_BR_0001",
  "mode": "instant",
  "payment": {
    "method": "google_pay",
    "amount": 92500,
    "currency": "BRL",
    "result": {
      "payment_id": "9c8f0e2a-1b3d-4c5e-8a7f-2d1e0b9c8a7d",
      "status": "Denied",
      "transaction_datetime": "2026-07-08T12:01:00.000Z",
      "return_message": "Card not accepted for this operation"
    }
  },
  "created_at": "2026-07-08T11:59:30.000Z",
  "updated_at": "2026-07-08T12:01:00.000Z"
}