Google Pay™

How Google Pay works with Getnet
When a customer chooses Google Pay during checkout, the following flow occurs:
- The customer selects Google Pay as the payment method.
- Google Pay returns payment data containing the customer's payment credentials or tokenized card credentials.
- You send the required Google Pay payment data to Getnet as part of the payment request.
- Getnet processes the transaction through the configured payment processor or card network.
- Getnet returns the authorization result to you.
Integration overview
To process Google Pay payments with Getnet, you integrate two main components:
- Integrate the Google Pay API in your application or website.
- Send the required Google Pay payment data to Getnet for payment processing.
If you offer Google Pay as a payment method to your customers, use only official Google Pay brand assets according to Google's brand guidelines. Do not modify the colors, proportions, layout, or appearance of Google Pay assets.
- Include the Google Pay brand within your websites
- Include the Google Pay brand within your Android applications
Requirements
Before you integrate Google Pay, check the following:
- Google Pay payment with Getnet is available only in Brazil, Chile, Mexico, and Spain.
- Your integration complies with the Google Pay API Acceptable Use Policy and Terms of Service.
- Your frontend environment must be served over HTTPS to initialize the Google Pay SDK.
- Your Google Pay configuration must use the gateway information provided during technical setup.
- Your backend must be able to send the required payment data to Getnet according to the selected processing scenario.
Integration steps
Follow these three steps to accept Google Pay payments with Getnet.
Step 1: Integrate with Google Pay
Follow Google's official documentation to implement the Google Pay API:
- Web integration: https://developers.google.com/pay/api/web/overview
- Android integration: https://developers.google.com/pay/api/android/overview
This integration allows your checkout to display the Google Pay button and request payment data from the user's device or Google account.
Step 2: Configure your Google Pay account
Before you move to production, you must:
- Register your business in the Google Pay & Wallet Console: https://pay.google.com/business/console/
- Configure your domain in the Google Pay allowlist through the Google Developer Console.
These steps ensure your website or application is authorized to request Google Pay payments.
Step 3: Tokenize and process the payment
After the customer authorizes the payment:
- Google Pay returns payment data to you.
- Your system sends the required Google Pay payment data to Getnet.
- Getnet processes the transaction through the configured payment processor or card network.
- Getnet returns the authorization result to you.
Google Pay authorization methods and Getnet processing models
allowedAuthMethods.The Google Pay authorization method defines the type of payment credentials returned by Google Pay. The Getnet processing model defines how you send those credentials to Getnet.
These are different concepts. Don't mix them:
| Concept | Where it is configured or used | Examples |
|---|---|---|
| Google Pay authorization method | Google Pay frontend configuration in allowedAuthMethods | PAN_ONLY, CRYPTOGRAM_3DS |
| Getnet processing model | Server-side payment request sent to Getnet | PAN card data flow, Tokenized card data flow, Authorization Token flow |
Use the sections below to understand the Google Pay authorization methods and the Getnet processing models available for each integration.
PAN_ONLY
PAN_ONLY is a Google Pay authorization method that uses card credentials associated with the customer's Google account. The transaction is processed similarly to a card-not-present payment.When you use this method, the server-side payload you send to Getnet may follow one of these processing models:
- PAN card data flow: you or your merchant-side processor extract the card data and send it to Getnet as structured card fields.
- Authorization Token flow: you send the Google Pay payment token encoded in Base64 in
data.payment.wallet.authorization_token. Getnet processes the token and extracts the payment data required for authorization.
Local regulation, issuer rules, merchant configuration, or transaction risk can require 3D Secure authentication. In that case, an additional 3DS flow may start.
3DS for PAN_ONLY transactions
PAN_ONLY transactions, 3D Secure may be required depending on the country, merchant configuration, issuer rules, or transaction risk.For Spain, 3DS/SCA is required. For Brazil, 3DS may be optional depending on merchant configuration and risk rules.
PAN_ONLY transaction with 3DS, follow the standard Getnet 3DS authentication flow before you create or confirm the payment. After authentication completes, send the 3DS authentication fields in the payment request. These fields include eci, xid, ucaf, tdsver, and tdsdsxid, as described in the Create a 3DS Authenticated Payment documentation.If 3DS is required and you don't send the authentication data, the transaction may be declined. It may also return as pending for additional authentication.
CRYPTOGRAM_3DS
CRYPTOGRAM_3DS is a Google Pay authorization method configured in the frontend using allowedAuthMethods.This method uses tokenized device card credentials and includes a transaction cryptogram generated during the payment process. The cryptogram provides stronger authentication evidence because it is generated for the tokenized device credential.
After Google Pay returns the payment data, you can process it with one of the supported Getnet server-side models:
- Tokenized card data flow: you or your merchant-side processor send tokenized card data as structured payment fields.
- Authorization Token flow: you send the Google Pay payment token encoded in Base64 in
data.payment.wallet.authorization_token.
data.payment.wallet.authorization_token, do not also send card.number, card.expiration_month, card.expiration_year, tokenization.cryptogram, or tokenization.eci.Authorization Token flow
allowedAuthMethods value. It is a Getnet processing model.Use this flow when your backend sends the Google Pay payment token to Getnet instead of sending card data fields.
paymentMethodData.tokenizationData.token. Serialize the Google Pay payment token exactly as returned by Google Pay, and encode it in Base64. Then send the encoded value in data.payment.wallet.authorization_token.Do not decrypt, change, trim, or remove any field from the token content before encoding it.
Merchant gateway
gateway and gatewayMerchantId in the tokenizationSpecification object.gateway value is getnetpayments. The gatewayMerchantId value is the merchant identifier configured during technical setup.| Attribute | Type | Description | Example |
|---|---|---|---|
tokenizationSpecification.type | String | Payment method tokenization type. | "PAYMENT_GATEWAY" |
tokenizationSpecification.parameters | Object | Parameters specific to the selected payment method tokenization type. | -- |
tokenizationSpecification.parameters.gateway | String | Gateway ID configured with Google. | "getnetpayments" |
tokenizationSpecification.parameters.gatewayMerchantId | String | Unique identifier used to represent the merchant in the gateway configuration. | "<Merchant ID assigned during setup>" |
Payment acceptance
Through the Getnet Global API, you can process Google Pay payments with multiple backend scenarios. These include PAN card data flow, Tokenized card data flow, Authorization Token flow, and SDWO-specific transactions.
allowedAuthMethods, based on the authorization methods supported by your integration.| Authorization method | Credential type | 3DS requirement | Supported countries |
|---|---|---|---|
PAN_ONLY | Card credentials associated with the customer's Google account | Required in Spain. Optional in Brazil depending on merchant configuration and transaction risk. | Brazil, Chile, Mexico, and Spain |
CRYPTOGRAM_3DS | Tokenized device card credentials with cryptogram | Generally not required, unless required by regulation, issuer rules, merchant configuration, or transaction risk. | Brazil, Chile, Mexico, and Spain |
Cards
The following cards are available for the transaction.
| Type | Spain | Brazil |
|---|---|---|
| Mastercard | ✅ | ✅ |
| Visa | ✅ | ✅ |
allowedCardNetworks, based on the networks supported by your integration.| Attribute | Type | Description | Example |
|---|---|---|---|
allowedPaymentMethods | Array | Set of payment method and card configurations. | -- |
allowedPaymentMethods.type | String | Payment method type. | "CARD" |
allowedPaymentMethods.parameters.allowedAuthMethods | Array of strings | Supported Google Pay authorization methods. | ["PAN_ONLY", "CRYPTOGRAM_3DS"] |
allowedPaymentMethods.parameters.allowedCardNetworks | Array of strings | Card networks supported by Google Pay and Getnet. | ["MASTERCARD", "VISA"] |
The following is an example of how to support all available payment methods, card networks, and card authentication methods:
Billing address
Note: Request a billing address only when it's required for authorization, fraud prevention, AVS, or local compliance. Asking for additional information may increase checkout friction.
billingAddressParameters to request billing address fields from Google Pay when required for authorization, fraud prevention, AVS, or local compliance.This object lets you define additional billing address fields for Google Pay to return.
| Attribute | Type | Description | Example |
|---|---|---|---|
allowedPaymentMethods.type | String | Payment method type. | "CARD" |
parameters.billingAddressRequired | Boolean | Set to true only if a billing address is required. | true |
parameters.billingAddressParameters.phoneNumberRequired | Boolean | Set to true if a phone number is required. | true |
parameters.billingAddressParameters.format | String | Billing address format required. | "MIN", "FULL" or "FULL-ISO3166" |
Handle the Google Pay payload
PaymentData response object.For the Authorization Token flow, extract the encrypted Google Pay payment token from:
Then complete these steps:
- Extract the value from
paymentMethodData.tokenizationData.token. - Serialize the token exactly as returned by Google Pay.
- Encode the serialized token in Base64.
- Send the encoded value in
data.payment.wallet.authorization_tokenin the Getnet payment request.
Example of the Getnet payment request using the Authorization Token flow:
Integrate via Global API
To integrate Google Pay via the Global API, make sure you meet the following prerequisites:
- Generate an access token through the Authentication endpoint.
- Wallet configuration: Use the correct
wallet.id,wallet.type, andwallet.tagaccording to the selected Google Pay processing scenario. - PCI Compliance: Some scenarios use
cardobjects, such as PAN card data flow and Tokenized card data flow. In these scenarios, you must operate within the appropriate PCI-DSS scope to handle sensitive card or tokenized card data. If you use the Authorization Token flow, Getnet processes the Google Pay token. In that case, you must not send card or tokenization fields separately. - HTTPS: Your frontend environment must be served over a secure connection to initialize the Google Pay SDK.
Wallet field configuration
Use the table below to identify the correct wallet configuration for each scenario.
| Scenario | data.payment.wallet.id | data.payment.wallet.type | data.payment.wallet.tag |
|---|---|---|---|
| Standard Google Pay — PAN card data flow | 216 | 10 | Not required |
| Standard Google Pay — Tokenized card data flow | 216 | 10 | Not required |
| Authorization Token flow | 216 | 10 | Not required |
| SDWO card data flow | BRL | 55 | Not required |
| SDWO Authorization Token flow | BRL | 55 | GP |
Important: For standard Google Pay transactions, usewallet.id = 216. For SDWO transactions in Brazil, usewallet.id = BRLandwallet.type = 55.
Characteristics
The following table summarizes the customer experience, settlement, and confirmation behavior of Google Pay.
| Capability | Details |
|---|---|
| Customer Experience | One-Tap — Fast checkout via biometric or device authentication. |
| Settlement | Real-time — Transactions are authorized and settled according to card network rules. |
| Confirmation | Synchronous — The API provides an immediate APPROVED, DECLINED, or intermediate status such as PENDING when additional authentication is required. |
Available features
Use the matrix below to confirm the supported operations for Google Pay in the Global API.
| Features | Supported Countries | Purchases | Refunds | Partial Refunds | Pre-authorizations | 3DS | SDWO |
|---|---|---|---|---|---|---|---|
| Direct / API | Brazil, Chile, Mexico, and Spain | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Integration flow
The lifecycle of a Google Pay transaction begins with the frontend SDK getting a secure payload and ends with the server-side authorization call.
Transaction flow diagram
The following diagram shows the end-to-end payment flow when a customer completes a purchase with Google Pay. Getnet processes the payment.
Flow description
The diagram shows the following steps:
- The customer selects Google Pay as the payment method at checkout.
- The merchant application requests payment data from Google Pay.
- Google Pay displays the customer's saved payment methods.
- The customer selects a card and confirms the payment.
- Google Pay generates and returns payment data to the merchant.
- The merchant sends the required Google Pay payment data to Getnet.
- Getnet prepares the transaction according to the selected processing scenario.
- Getnet sends the authorization request to the card network or configured payment processor.
- The processor returns the authorization result.
- Getnet forwards the response to the merchant, which then displays the final payment result to the customer.
Server-side implementation scenarios
The following scenarios show the required JSON structures. Each structure depends on the data from the Google Pay frontend and the selected Getnet processing scenario.
Important:PAN_ONLYandCRYPTOGRAM_3DSare Google Pay frontend authorization methods. They are not Getnet server-side scenario names. In the Getnet payment request, choose the processing model that best fits your integration architecture, PCI scope, and payment processing requirements. Choose from PAN card data flow, Tokenized card data flow, Authorization Token flow, SDWO card data flow, or SDWO Authorization Token flow.
PAN card data flow
Use this server-side scenario when your backend sends card data fields extracted from Google Pay to Getnet.
Use this flow when the backend payload you send to Getnet is a structured card payment request.
In this model, you or your merchant-side processor extract the card number and expiration date from the Google Pay response. Extract them according to the selected processing model, and send these values to Getnet.
If 3D Secure authentication is required, complete the 3DS authentication flow before you create or confirm the payment. Then send the required 3DS fields in the payment request.
| Attribute | Type | Description | Example |
|---|---|---|---|
data.payment.card | Object | Card data set. | -- |
data.payment.card.number | String | Card number extracted from the Google Pay response according to the selected processing model. | 4012001037141112 |
data.payment.card.expiration_month | String | Two-digit card expiry month. | 12 |
data.payment.card.expiration_year | String | Two-digit card expiry year. | 25 |
data.payment.wallet | Object | Wallet data set. | -- |
data.payment.wallet.id | String | Wallet identifier. For standard Google Pay transactions, always use 216. | 216 |
data.payment.wallet.type | String | Wallet type. For standard Google Pay transactions, always use 10. | 10 |
data.payment.eci | String | Electronic Commerce Indicator used for 3DS authentication. Optional for transactions without 3DS. | 02 |
Important: For Spain, 3DS authentication is required. In Brazil, 3DS is optional depending on merchant configuration, issuer rules, and transaction risk.
Example of request
The following request sends card data fields with the standard Google Pay wallet values.
Example of response
The following response shows an approved PAN card data flow transaction.
SDWO — Staged Digital Wallet Operator
SDWO is a payment framework typically used by digital wallet providers. In SDWO, the wallet acts as an intermediary between the cardholder and the final recipient.
It helps with two stages: funding the account and transferring funds to a sub-merchant. This makes the end receiver transparent to payment networks.
wallet object as follows:data.payment.wallet.idmust be set toBRLdata.payment.wallet.typemust be set to55
| Attribute | Type | Description | Example |
|---|---|---|---|
data.payment.card | Object | Card data set. | -- |
data.payment.card.number | String | Card number. | 4012001037141112 |
data.payment.card.expiration_month | String | Two-digit card expiry month. | 12 |
data.payment.card.expiration_year | String | Two-digit card expiry year. | 25 |
data.payment.wallet | Object | Wallet data set. | -- |
data.payment.wallet.id | String | Wallet identifier for SDWO transactions in Brazil. Always use BRL. | BRL |
data.payment.wallet.type | String | Wallet type for SDWO transactions. Always use 55. | 55 |
data.payment.wallet.fund_transfer | Object | Fund transfer data required for SDWO transactions. | -- |
Example of SDWO request
The following request sends card data with the SDWO wallet values and fund transfer data.
Example of SDWO response
The following response shows an approved SDWO transaction.
SDWO with 3DS transactions
For transactions that use 3DS, follow all the steps in the Create a 3DS Authenticated Payment document.
Important: When you create SDWO requests, fill the fields inside thewalletobject as follows:
data.payment.wallet.idmust be set toBRLdata.payment.wallet.typemust be set to55
The table below shows the fields required for transactions with 3DS.
| Attribute | Type | Description | Example |
|---|---|---|---|
data.payment.xid | String | MPI identifier for each authenticated transaction. | yFNXIadjt0mEsP5ob44vQPd0Zbg= |
data.payment.ucaf | String | Authentication code encrypted by the card network. | B5kBAHNwQAAAAYdqmGESdiZwFVg= |
data.payment.eci | String | Electronic Commerce Indicator used for 3DS authentication. | 5 |
data.payment.tdsver | String | 3DS version used in authentication. | 2.3.1 |
data.payment.tdsdsxid | String | 3DS Server transaction identifier. | 9c2410c8-07c7-4e07-ac76-185e620970cf |
Example of SDWO with 3DS request
The following request adds the 3DS authentication fields to an SDWO request.
Example of SDWO with 3DS response
The following response shows an approved SDWO transaction with 3DS.
The response follows the same structure as the standard payment response. If additional authentication is required, the transaction may returnPENDINGwith 3DS challenge data.
Tokenized card data flow
Use this server-side scenario when your backend sends tokenized card credentials to Getnet as structured payment fields.
In this model, you or your merchant-side processor extract the tokenized card number, also known as DPAN or device PAN. You also extract the expiration date, cryptogram, and ECI, and send these values to Getnet.
card.number, card.expiration_month, card.expiration_year, tokenization.cryptogram, or tokenization.eci separately. In the Authorization Token flow, Getnet processes the Google Pay token sent in data.payment.wallet.authorization_token.The cryptogram is a dynamically generated cryptographic value that enables payment networks to validate the authenticity of the transaction.
| Attribute | Type | Description | Example |
|---|---|---|---|
data.payment.card | Object | Card data set containing the tokenized card credentials extracted from Google Pay. | -- |
data.payment.card.number | String | Tokenized card number, DPAN, or device PAN returned by Google Pay. Do not send the original PAN. | 4761120000000148 |
data.payment.card.expiration_month | String | Two-digit expiry month of the tokenized card credential. | 12 |
data.payment.card.expiration_year | String | Two-digit expiry year of the tokenized card credential. | 25 |
data.payment.wallet | Object | Wallet data set. | -- |
data.payment.wallet.id | String | Wallet identifier. For standard Google Pay transactions, always use 216. | 216 |
data.payment.wallet.type | String | Wallet type. For standard Google Pay transactions, always use 10. | 10 |
data.payment.tokenization | Object | Tokenization data set containing cryptographic values extracted from Google Pay. | -- |
data.payment.tokenization.cryptogram | String | Cryptogram generated for the tokenized device credential. Send the value exactly as extracted from the Google Pay payment data. Do not generate, alter, or reuse cryptograms. | AgAAAAAABk4DWZ4C28yUQAAAAAA= |
data.payment.tokenization.eci | String | Electronic Commerce Indicator associated with the tokenized payment. | 02 |
Example of request
The following request sends tokenized card data with the cryptogram and ECI.
Thecryptogramvalue above is shown only as an example. In production, send the cryptogram value exactly as extracted from the Google Pay payment data. Do not generate, alter, reuse, or hardcode cryptograms.
Example of response
The following response shows an approved Tokenized card data flow transaction.
Note: In sandbox environments, thebrandfield may be returned asUNKNOWNdepending on the test token configuration.
Authorization Token flow
paymentMethodData.tokenizationData.token property of the PaymentData response object.card.number, card.expiration_month, card.expiration_year, tokenization.cryptogram, or tokenization.eci as separate fields. Instead, extract the value from paymentMethodData.tokenizationData.token and serialize it exactly as returned by Google Pay. Then encode it in Base64 and send the encoded value in data.payment.wallet.authorization_token.authorization_token and extracts the payment data required for authorization.| Attribute | Type | Description | Required |
|---|---|---|---|
idempotency_key | String | Unique identifier to prevent duplicate charges. | Yes |
order_id | String | Merchant reference ID used for reconciliation. | Yes |
request_id | String | Trace identifier for idempotency audits and support follow-up. | Recommended |
data.amount | Number | Transaction amount in cents. | Yes |
data.currency | String | ISO currency code used in the transaction. | Yes |
data.customer | Object | Customer details such as name, email, phone, document, and billing address. Required only when requested by Getnet or by the applicable risk, compliance, or antifraud configuration. | Conditional |
data.payment.payment_method | String | Payment method used for the transaction. | Yes |
data.payment.transaction_type | String | Defines how the transaction is processed. Examples: FULL, INSTALL_NO_INTEREST, INSTALL_WITH_INTEREST. | Yes |
data.payment.number_installments | Number | Number of installments. Use 1 for a single payment. | Yes |
data.additional_data.device | Object | Device information used for risk analysis or antifraud checks when applicable, such as ip_address, device_id, and finger_print. | Conditional |
data.payment.wallet | Object | Wallet data set. | Yes |
data.payment.wallet.id | String | Wallet identifier. Use 216 for standard Google Pay Authorization Token transactions. | Yes |
data.payment.wallet.type | String | Wallet type. Use 10 for standard Google Pay Authorization Token transactions or 55 for SDWO Authorization Token transactions. | Conditional |
data.payment.wallet.tag | String | Wallet tag. Required only for SDWO Authorization Token transactions. Use GP. | Conditional |
data.payment.wallet.authorization_token | String | Base64-encoded Google Pay payment token. Send the token content exactly as returned by Google Pay, encoded in Base64, without decrypting, changing, trimming, or removing any field. | Yes |
Depending on the risk, compliance, or antifraud service enabled for the merchant, you may need to send additional customer and device information. When required, send the applicable fields below.
| Object / Field | Description |
|---|---|
customer.first_name | Customer's first name. |
customer.last_name | Customer's last name. |
customer.email | Customer email address. |
customer.phone_number | Phone number in international format. |
customer.document_type | Document type, such as CPF, DNI, or equivalent. |
customer.document_number | Document number without punctuation. |
customer.billing_address.street | Street name. |
customer.billing_address.number | Address number. |
customer.billing_address.district | District or neighbourhood. |
customer.billing_address.city | City. |
customer.billing_address.state | State or province. |
customer.billing_address.country | Country code. |
customer.billing_address.postal_code | Postal or ZIP code. |
additional_data.device.ip_address | Customer's IP address. |
additional_data.device.device_id | Device fingerprint session ID. |
additional_data.device.finger_print | Fingerprint hash generated by the antifraud script. |
Example of request
The following request sends the Base64-encoded Google Pay payment token with customer and device data.
Example of response
PENDING transaction that requires EMV3DS authentication.SDWO Authorization Token flow
For SDWO Authorization Token transactions, you send the Base64-encoded Google Pay payment token together with the SDWO fund transfer data.
Important: Only for SDWO Authorization Token transactions:
data.payment.wallet.idmust be set toBRLdata.payment.wallet.typemust be set to55data.payment.wallet.tagmust be set toGP
Example of SDWO Authorization Token request
The following request sends the Base64-encoded Google Pay payment token with the SDWO wallet values and fund transfer data.
Example of SDWO Authorization Token response
The following response shows an approved SDWO Authorization Token transaction.
Comparison table
Use the table below to identify which technical fields are required for each Google Pay processing scenario.
| Scenario | Data handling | What merchant sends to Getnet | Card object | Tokenization object | Authorization token | 3DS data | Wallet fields |
|---|---|---|---|---|---|---|---|
| PAN card data flow | Merchant / processor extracts data | Card PAN + expiry | Required | No | No | Optional or required by country/configuration | id=216, type=10 |
| PAN card data flow with 3DS | Merchant / processor extracts data and performs 3DS | Card PAN + expiry + 3DS authentication fields | Required | No | No | Required | id=216, type=10 |
| Tokenized card data flow | Merchant / processor extracts tokenized data | Tokenized card/DPAN + expiry + cryptogram + ECI | Required | Required | No | Usually not required | id=216, type=10 |
| Authorization Token flow | Getnet processes token | Base64-encoded Google Pay payment token | No | No | Required | Handled according to token content and configuration | id=216, type=10 |
| SDWO card data flow | Merchant / processor extracts data | Card or tokenized card data + fund transfer data | Required | Depends on scenario | No | Optional or required by configuration | id=BRL, type=55 |
| SDWO Authorization Token flow | Getnet processes token | Base64-encoded Google Pay payment token + fund transfer data | No | No | Required | Depends on token content and configuration | id=BRL, type=55, tag=GP |
Note:PAN_ONLYandCRYPTOGRAM_3DSare Google Pay frontend authorization methods configured inallowedAuthMethods. The scenarios above describe how payment data is sent to Getnet in the server-side payment request.
Additional resources
Use these resources to learn more about the Google Pay integration.
- Google Pay Web documentation
- Integration Web checklist
- Google Pay Android documentation
- Integration Android checklist
- Google Pay Web brand guidelines
- Google Pay Android brand guidelines
- Google Pay API Acceptable Use Policy
- Google Pay API Terms of Service
- Authentication for token management.
- Publish your integration - Web
- Publish your integration - Android
On this page