> ## Documentation Index
> Fetch the complete documentation index at: https://docs.overflow.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Pay

> Google-specific button styling and requirements.

Google Pay uses the shared wallet options described in [Wallets](/payment-elements/elements/payment-methods/wallets/introduction) plus a few Google-only extras.

## Example

```javascript theme={null}
const google = overflow.googlePay({
  buttonType: 'buy',
  buttonColor: 'default',
  transaction: {
    amount: 4999,
    currency: 'USD',
    countryCode: 'US',
    label: 'Order total',
  },
  require: { email: true, billingAddress: true },
});

google.mount('#google');
```

## Availability

Google Pay renders on Chromium-based browsers. It requires HTTPS in production.

Merchant identity and the Google Pay environment come from your Overflow merchant configuration. You do not pass a merchant id from the SDK.

## `buttonType` and `buttonColor`

```javascript theme={null}
overflow.googlePay({
  buttonType: 'buy',       // 'buy' | 'donate' | 'plain' | ...
  buttonColor: 'default',  // 'default' | 'black' | 'white'
});
```

`buttonSizeMode` is also available; refer to Google's platform documentation for accepted values.

## Requirements

Google exposes several parameters via `requirements` that layer on top of the ones the SDK derives from `require`:

```javascript theme={null}
overflow.googlePay({
  require: { billingAddress: true, phone: true },
  requirements: {
    billingAddressParameters: {
      format: 'FULL',
      phoneNumberRequired: true,
    },
  },
});
```

* `billingAddressParameters` is merged on top of the derived parameters.
* `shippingAddressParameters` is passed through verbatim.
* `shippingOptionRequired` is passed through verbatim.

## `transaction` is built in full

Google Pay rejects partial `transactionInfo`. The SDK builds the full request from `transaction.{amount, currency, countryCode, label, lineItems}`. Always pass all four top-level fields when you want a chargeable sheet.

```javascript theme={null}
overflow.googlePay({
  transaction: {
    amount: 4999,
    currency: 'USD',
    countryCode: 'US',
    label: 'Order total',
  },
});
```

## Not supported on Google Pay

* Recurring payment requests. Use Apple Pay's `recurringPaymentRequest` for that surface; Google has no equivalent.
* `name` requirement flag. Name is included with the billing address automatically when billing is required.

## See also

* [Wallets introduction](/payment-elements/elements/payment-methods/wallets/introduction)
* [Wallets reference](/payment-elements/elements/payment-methods/wallets/reference)
