Client session requirements
Google Pay requirescurrencyCode and order.countryCode in the client session.
order.countryCode is the merchant’s country (ISO 3166-1 alpha-2) — where the transaction is processed, not the buyer’s country. This maps to Google Pay’s TransactionInfo.countryCode: “The ISO 3166-1 alpha-2 country code where the transaction is processed.” Use the country of your acquiring entity (for example, if your acquirer is in the EEA, this is required for SCA compliance).Quick reference
Button styling
Customize the Google Pay button appearance.Button type
SetbuttonType to control the label displayed on the Google Pay button.
Examples
Supported locales
Supported locales
Google Pay supports:
en, ar, bg, ca, cs, da, de, el, es, et, fi, fr, hr, id, it, ja, ko, ms, nl, no, pl, pt, ru, sk, sl, sr, sv, th, tr, uk, zhExpress checkout
Google Pay can capture customer information directly from the payment sheet.Billing address
Shipping address
Providing
shippingAddressParameters (even empty {}) implicitly enables shipping address capture for backward compatibility.Shipping method selection
Enable customers to select shipping methods directly in the Google Pay sheet:- Shipping options from your SHIPPING checkout module appear in the payment sheet
- Customer selects a shipping method before completing payment
- Selected method is sent to your backend via
selectShippingMethod() - Display items update to show shipping costs
Email capture
Advanced options
Existing payment method required
Only show Google Pay if the user has a saved payment method:This option only affects button visibility in PRODUCTION. In TEST mode, the button always appears.
Supported card networks
Networks are filtered based on your Primer configuration. If
orderedAllowedCardNetworks is set in your client session, only those networks are available.
Display items
When using express checkout with shipping, the payment sheet displays:- Line items — Products from
order.lineItems - Fees — Non-zero fees from
order.fees - Shipping — Non-zero shipping costs (when
requireShippingMethodis enabled)
merchantAmount is set, a simplified “Subtotal” view is shown instead.
Testing
TEST environment
Google Pay returns mock payment credentials. The button always appears regardless ofexistingPaymentMethodRequired.
PRODUCTION environment
- Register your website with the Google Pay Business Console
- Use a real Google account with saved payment methods
- Test
existingPaymentMethodRequired: truefor one-tap checkout
Troubleshooting
Shipping methods not appearing
Shipping methods not appearing
Checklist:
-
requireShippingMethod: truein SDK options -
captureShippingAddress: trueorshippingAddressParametersset - SHIPPING checkout module configured on backend
- Shipping options available for the selected address
Address not captured
Address not captured
Checklist:
-
captureBillingAddress: truefor billing -
captureShippingAddress: trueorshippingAddressParametersfor shipping - User has address saved in Google account
Complete example
See also
SDK options reference
All configuration options
Google Pay web documentation
Official Google documentation
Google Pay button options
Button customization reference