**Last updated**: 07 April 2026 | [**Change log**](/access/products/payments/changelog/)

# Google Pay

Add [Google Pay](https://developers.google.com/pay/api) to Android apps for [these supported countries](https://support.google.com/pay/answer/9023773#zippy=%2Cbuy-google-products%2Cpay-with-your-google-account%2Csend-money-to-friends-family%2Cpay-online-in-apps).

Make a Google Pay payment by providing the encrypted payload (wallet token) in the [`payment`](/access/products/payments/openapi/) request.

Important
The following Google Pay payments receive liability shift in SCA impacted regions:

* Mastercard
* Visa (where device PAN/"CRYPTOGRAM_3DS" is used)


Coming soon
* Google Pay when [setting up a recurring payment](/access/products/payments/recurring-first)


Encrypted
## 1. Get started

1. Read through the [Google Pay overview](https://developers.google.com/pay/api/android/overview).
2. Ask your Implementation Manager to enable Google Pay.
3. Your Implementation Manager supplies you with a Gateway Merchant ID which you must supply in your integration with the Google Pay API.
4. Follow the [Google Pay tutorial](https://developers.google.com/pay/api/android/guides/tutorial) and complete the [Google Pay test checklist](https://developers.google.com/pay/api/android/guides/test-and-deploy/integration-checklist) to ensure a successful integration.


* To be SCA compliant, you must provide the [country code](https://developers.google.com/pay/api/android/reference/request-objects?hl=en#TransactionInfo) in your request to the Google Pay API when you process in an SCA impacted region.
* If you wish to support **allowedAuthMethods** `PAN_ONLY` for payments requiring SCA/3DS ([not stored as Android device tokens](https://developers.google.com/pay/api/web/reference/request-objects#PaymentMethod)) you should add the `instruction.threeDS` object if in a 3DS [mandated region](/access/products/3ds-sca-exemptions). If the encrypted payload is `PAN_ONLY` 3DS authentication will be triggered.


## 2. Request

Basic Request
Includes 3DS
See [enabling 3DS](/access/products/payments/enable-features/3ds-authentication) for full details on 3DS authentication.


```json
{
    "transactionReference": "Memory265-13/08/1876",
    "merchant": {
        "entity": "default"
    },
    "instruction": {
        "method": "googlepay",
        "paymentInstrument": {
            "type": "encrypted",
            "walletToken": "{\"protocolVersion\":\"ECv1\",\"signature\":\"MEQCIH6Q4OwQ0jAceFEkGF0JID6sJNXxOEi4r+mA7biRxqBQAiAondqoUpU/bdsrAOpZIsrHQS9nwiiNwOrr24RyPeHA0Q\\u003d\\u003d\",\"signedMessage\":\"{\\\"tag\\\":\\\"jpGz1F1Bcoi/fCNxI9n7Qrsw7i7KHrGtTf3NrRclt+U\\\\u003d\\\",\\\"ephemeralPublicKey\\\":\\\"BJatyFvFPPD21l8/uLP46Ta1hsKHndf8Z+tAgk+DEPQgYTkhHy19cF3h/bXs0tWTmZtnNm+vlVrKbRU9K8+7cZs\\\\u003d\\\",\\\"encryptedMessage\\\":\\\"mKOoXwi8OavZ\\\"}\"}"
        },
        "narrative": {
            "line1": "trading name"
        },
        "value": {
            "currency": "GBP",
            "amount": 42
        },
        "customer": {
            "email": "john.appleseed@example.com",
            "phone": "00000000000",
            "ipAddress": "192.168.0.1"
        },
        "threeDS": {
            "type": "integrated",
            "mode": "always",
            "exemptionOnOutage": true,
            "deviceData": {
                "acceptHeader": "text/html",
                "userAgentHeader": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0)",
                "browserLanguage": "en-GB",
                "browserScreenWidth": 900,
                "browserScreenHeight": 1200,
                "browserJavaEnabled": true,
                "browserColorDepth": "32",
                "timeZone": "300",
                "browserJavascriptEnabled": true,
                "channel": "browser"
            },
            "challenge": {
                "returnUrl": "http://payment.example.com"
            }
        }
    }
}
```

Decrypted
## 1. Getting started

To send a payment request with a decrypted payload, you must follow the instructions on [Google Pay's developer site](https://developers.google.com/pay/api/android/guides/resources/payment-data-cryptography) first.

## 2. Request

CRYPTOGRAM_3DS
PAN_ONLY

```json
{
  "transactionReference": "Memory265-13/08/1876",
  "merchant": {
    "entity": "default"
  },
  "instruction": {
    "method": "googlepay",
    "paymentInstrument": {
      "type": "decrypted",
      "number": "4444333322221111",
      "expiryDate": {
        "month": 5,
        "year": 2035
      }
    },
    "narrative": {
      "line1": "trading name"
    },
    "value": {
      "currency": "GBP",
      "amount": 42
    }
  }
}
```

PAN_ONLY with 3DS
See [enabling 3DS](/access/products/payments/enable-features/3ds-authentication) for full details on 3DS authentication.

View the full API Request schema
## 3. Add additional features

Auto settlement
Automatically settle a payment following the authorization.
Enterprise
Worldpay eCommerce

Risk assessment
We assess the payment for fraud before proceeding with authorization.
Enterprise

Account Funding Transactions (AFT)
Transfer funds from a card account to another destination, rather than for the provision of goods or services.
Enterprise

Financial Services (MCC 6012/6051)
For domestic Financial Services providers (MCC 6012) based in the Visa Europe Region, you must supply this additional data.
Enterprise

Payment Facilitators (PayFacs)
Facilitate transactions on behalf of your sub-merchants.
Enterprise

## 4. Response

Features that change the API flow
Certain features add additional requests and responses:

- [3DS](/access/products/payments/enable-features/3ds-authentication) - you will receive a `201` - `3dsDeviceDataRequired` as well as the possibility of an issuer challenge. For Google Pay 3DS will only be initiated if the encrypted payload is `PAN_ONLY`
- [Auto Settlement](/access/products/payments/enable-features/auto-settlement) - automatic `202` - `sentForSettlement` following authorization.
  - If any of the AVS/CVC response riskFactors are marked as `notMatched` the payment is `sentForCancellation` automatically by default but can be disabled.


View the full API Response schema