Add Google Pay as a payment option to your Solidgate Payment Form to provide customers with a fast and secure way to pay with cards saved in their Google account. Once integrated, the Google Pay button appears on your form, allowing customers to complete purchases seamlessly.

Solidgate Payment Form meets Google’s integration standards for Google Pay, ensuring a smooth checkout experience across Android devices and web browsers. Follow this guide to set up Google Pay, making it easier for customers to use their preferred payment methods.
Display button
To integrate the Google Pay button and start accepting Google Pay payments through the Payment Form:
- Create a Google developer account to access the Google Pay API.
- Verify your domain in the Google Pay & Wallet Console Reference .
- Obtain the merchant ID parameter from the Google console, which enables Google Pay transactions on your site.
To display the Google Pay button on the Solidgate Payment Form, you must add the Google Pay properties to the paymentIntent object. Google Pay can be accessed and used on the platforms listed in the
Google guide
Reference
.
Description
Merchant ID parameter you receive on Google’s side.
Required for displaying the Google Pay button.Example
10911390523550288022
Description
Merchant name, which can be displayed to the customers when paying by Google.
It would be better to pass this parameter so that Google does not substitute it on its own.Example
Solidgate
- Google developer account is active
- Domain is verified in Google Pay & Wallet Console Reference
- Merchant ID is obtained and configured
- Google Pay properties are added to
paymentIntentobject
If you request to create a payment form with Google Pay without proper setup, the button is not displayed, and the appropriate warning is sent.
Google Pay is supported Reference within Android WebView, enabling native payment sheet feature when your web checkout process is embedded in an Android app. This uses the payment request to launch Android payment apps from within WebView, starting with WebView version 137 and Google Play Services 25.18.30 .
Subscribe to the Google Pay mounted
event
to check when the button is mounted and rendered. When the event is emitted for the googlebtn entity, this means the Google Pay button is fully displayed.
Customization
In addition to displaying the button on the payment form, you can also control its position, color, and size. Use the googlePayButtonParams object for changes as you would for all other customization in the Solidgate
Payment Form.
To maintain a consistent and recognizable customer experience, Google Pay supports only the customization of predefined styles, including color themes or button type and size. For example, you can choose from black, white, or the default button colors. For more information, check the Google Pay brand guidelines for Android Reference and website Reference .
enabled booleanDescription
Displays the Google Pay button.
Example
false
Default
true
Description
Identifier of container to place the Google Pay button.
By default, if not set, button is be displayed above the form.Example
yourCustomContainerId
Default
not set color stringDescription
Color of the Google Pay button.
Supported colors:
- default A Google-selected default value. Currently black but it may change over time.
- black A black button suitable for use on white or light backgrounds.
- white A white button suitable for use on colorful backgrounds.
Example
white
Default
black
Description
Type of the Google Pay button.
Supported types:
- buy
- checkout
- order
- pay
- plain
- subscribe
Not supported types:
- donate
- book
Example
plain
Default
not set allowedAuthMethods arrayDescription
Authentication method of the card transaction.
PAN_ONLY: This authentication method is associated with payment cards stored on file with the customer’s Google Account. Returned payment data includes personal account number (PAN) with the expiration month and the expiration year.CRYPTOGRAM_3DS: This authentication method is associated with cards stored as Android device tokens. Returned payment data includes a 3D Secure (3DS) cryptogram generated on the device.
The capability to transmit only PAN_ONLY or CRYPTOGRAM_3DS is also available, and such transmission work for both one-time payments and subscriptions.
Example
['PAN_ONLY']
Default
['PAN_ONLY', 'CRYPTOGRAM_3DS']
import React, { FC } from 'react'
import ReactDOM from 'react-dom';
import Payment, { InitConfig } from "@solidgate/react-sdk"
export const MyPayment: FC<{
merchantData: InitConfig['merchantData']
google: Omit<InitConfig['googlePayButtonParams'], 'containerId'>
}> = (props) => {
return (<Payment
merchantData={props.merchantData}
googlePayButtonParams={props.google}
/>)
}
Vanilla JS
PaymentFormSdk.init({
...restData,
googlePayButtonParams: {
color: 'white',
type: 'plain',
allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS']
}
})
Vue
<template>
<Payment
:merchant-data="merchantData"
:google-pay-button-params="google"
width="100%"
/>
</template>
<script lang="ts" setup>
import { defineAsyncComponent } from 'vue'
import { InitConfig } from '@solidgate/vue-sdk'
const Payment = defineAsyncComponent(() => import('@solidgate/vue-sdk'))
const merchantData: InitConfig['merchantData'] = {
merchant: '<<--YOUR MERCHANT ID-->>',
signature: '<<--YOUR SIGNATURE OF THE REQUEST-->>',
paymentIntent: '<<--YOUR PAYMENT INTENT-->>'
}
const google: Omit<InitConfig['googlePayButtonParams'], 'containerId'> = {
color: 'white',
type: 'plain',
allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS']
}
</script>
Angular
import {Component} from '@angular/core';
import {FormType, InitConfig} from "@solidgate/angular-sdk";
@Component({
selector: 'app-root',
template: `
<ngx-solid-payment
[googlePayButtonParams]="google"
[merchantData]="merchantData"
></ngx-solid-payment>
`
})
export class AppComponent {
merchantData: InitConfig['merchantData'] = {
merchant: '<<--YOUR MERCHANT ID-->>',
signature: '<<--YOUR SIGNATURE OF THE REQUEST-->>',
paymentIntent: '<<--YOUR PAYMENT INTENT-->>'
}
google: Omit<InitConfig['googlePayButtonParams'], 'containerId'> = {
color: 'white',
type: 'plain',
allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS']
}
}
Button position
To position the Google Pay button as needed, create and specify the div. Then, pass the value of the created container to the containerId parameter in the googlePayButtonParams object.
import React, { FC } from 'react'
import ReactDOM from 'react-dom';
import Payment, { InitConfig } from "@solidgate/react-sdk"
export const MyPayment: FC<{
merchantData: InitConfig['merchantData']
}> = (props) => {
const googleContainerRef = useRef(null)
return (
<div>
<div ref={googleContainerRef}></div>
<Payment
merchantData={props.merchantData}
googlePayContainerRef={googleContainerRef}
/>
</div>
)
}
Vanilla JS
<div id="yourCustomContainerId"></div>
<script>
PaymentFormSdk.init({
...restData,
googlePayButtonParams: {
buttonColor: 'default',
buttonType: 'buy',
containerId: 'yourCustomContainerId'
}
});
</script>
Vue
<template>
<Payment
:merchant-data="merchantData"
:google-pay-container-ref="googleButton"
/>
<div ref="googleButton" />
</template>
<script lang="ts" setup>
import { defineAsyncComponent, ref } from 'vue'
import { InitConfig } from '@solidgate/vue-sdk'
const Payment = defineAsyncComponent(() => import('@solidgate/vue-sdk'))
const googleButton = ref<HTMLDivElement>()
const merchantData: InitConfig['merchantData'] = {
merchant: '<<--YOUR MERCHANT ID-->>',
signature: '<<--YOUR SIGNATURE OF THE REQUEST-->>',
paymentIntent: '<<--YOUR PAYMENT INTENT-->>'
}
</script>
Angular
import {Component} from '@angular/core';
import {FormType, InitConfig} from "@solidgate/angular-sdk";
@Component({
selector: 'app-root',
template: `
<ngx-solid-payment
[merchantData]="merchantData"
[googlePayContainer]="googlePay"
></ngx-solid-payment>
<div class="google-pay" #googlePay></div>
`
})
export class AppComponent {
merchantData: InitConfig['merchantData'] = {
merchant: '<<--YOUR MERCHANT ID-->>',
signature: '<<--YOUR SIGNATURE OF THE REQUEST-->>',
paymentIntent: '<<--YOUR PAYMENT INTENT-->>'
}
}
In this example, the div with the id yourCustomContainerId is created in the HTML, and its id value is passed to the containerId parameter in the googlePayButtonParams object.
This specifies that the Google Pay button should be rendered inside the specified container.
If you do not specify the containerId, Solidgate displays it above all fields of the Solidgate Payment Form by default.
Please note that if you specify a container that does not exist, the Google Pay button is not displayed. In this case, Solidgate is return the error to the console.
Container withid =‘specified-container’
does not exist.
Button styling
Some options on the Payment Form allow customization of the Google Pay button to better match the style of your site.
Solidgate allows changing two parameters of the button in the googlePayButtonParams object:
- default - may change the color over time (light/night mode).
- black - a black button suitable for use on a white or light background.
- white - a white button suitable for use on a colorful background.
Supported types:
- buy - a 'Buy with Google Pay' button (default).
- plain - button without additional text.
- checkout
- order
- pay
- subscribe
Not supported types:
- donate
- book
Button hiding
To hide the button for the customer, pass
false
to the enabled parameter. You do not need to specify
true
to display the button on the form as it is a default value. When you pass the
false
value, the form with the passed parameters of containerId, color, and type is collected but not displayed on the Solidgate
Payment Form.