Google Pay™
Introduction
Google Pay™ is a contactless payment service that enables users to make payments both online and in physical stores using Android devices. It simplifies payments by securely storing card details and allowing transactions via NFC technology.
Google Pay™ transactions use tokenization to protect sensitive card information, replacing the actual card number with a virtual account number. This ensures secure processing without exposing card details. Google Pay™ supports one-time transactions as well as subscriptions and other recurring payments, based on merchant configurations.
Google Pay™ is available in various regions worldwide, supporting multiple currencies. For online and in-app payments, SmartPay's SDK securely collects payment details, which are then transmitted to Google's servers for processing and authorization. The entire flow keeps sensitive data hidden from the merchant, providing customers with a secure and easy payment experience.
Workflows and Transaction Types
SmartPay Integration Flow for Merchants
Merchants should adhere to the integration process detailed in the Google Pay™ Integration Prerequisites, ensuring all registration and verification steps are completed.
Customer-Initiated Transactions (CIT)
- Guest Payments: Google Pay™ facilitates guest payments without the need to store payment credentials.
- Registered Users: Registered users can store Google Pay™ as a payment option for streamlined future transactions.
Merchant-Initiated Transactions (MIT)
- Subscriptions: Google Pay™ supports recurring payments for subscription services.
- Storable Payment Option: Google Pay™ can be stored as a payment option, enabling efficient future transactions.
Google Pay™ can be stored as a payment option only for subscriptions and unattended MIT payments.
Transaction Status Flow
Merchants should implement SmartPay notifications to receive transaction status updates. Upon receiving a notification, merchants must call the Get Payment Status API to verify the transaction status.
SDK Integration
Google Pay™ uses the SmartPay's SDK, please refer to this section.
Customizable Google Pay™ Button
To customize the Google Pay™ button within an API request, include the googleButtonType
and googleButtonStyle
parameters in criteria
(see example below). The "type" parameter defines the text displayed on the button, such as a standard payment label or a subscription-related prompt, while "style" controls the button's visual theme to match different background and branding requirements. These parameters determine how the Google Pay™ button is generated on the page, ensuring flexibility in its presentation. By specifying these attributes, merchants can align the button's appearance with their checkout flow while maintaining compliance with Google's UI guidelines.
Example request
Path:
POST {Base URL}/payment/mit/subscription/creation
Header:
Content-Type: application/json
Accept-Language: en-US
X-Auth-Token: eyJjb25uZW***AwMjZ2PTQifQ==
User-Agent: ***
{
{
"payment": {
"currencyCode": "EUR",
"amount": 0,
"description": "JPM-2eb31abc-fc0f-49bf-9344-469459d0ddd4"
},
"billingAddress": {
"addressLine1": "Gotzkowskystraße",
"number": "10000",
"city": "Delbrück",
"postCode": "33129",
"countryCode": "DE"
},
"consumer": {
"emailAddress": "0afd44eb1bf44812a580e1cb84cd3f59_demo.admin@test.com",
"lastName": "Admin",
"firstName": "Demo",
"title": "Mr",
"mobilePhone": "12345678910",
"dateOfBirth": "1983-06-06"
},
"customerAccountId": "2d7acb77-4b14-436e-be88-325ac2eece9e:0afd44eb-1bf4-4812-a580-e1cb84cd3f59",
"merchantKey": "1e500c04-3b64-40fa-9e13-734e0b95538e",
"criteria": [
{
"name": "googleButtonType",
"value": "subscribe"
},
{
"name": "googleButtonStyle",
"value": "black"
}
]
}
}
The following parameters can be configured:
googleButtonType | Representation |
---|---|
book | ![]() |
buy | ![]() |
checkout | ![]() |
donate | ![]() |
order | ![]() |
pay | ![]() |
plain | ![]() |
subscribe | ![]() |
googleButtonStyle | Representation |
---|---|
default | ![]() |
white | ![]() |
black | ![]() |
Multiple Domains Support
To support multiple merchant domains for Google Pay™, merchants need to register them with Google, as only the domains added to Google Pay's whitelist will be valid for use. Please see the integration section for Google Pay™ Console - Registration of the shop domain below.
The registered domain automatically extends to its sub-directories as listed below, allowing Google Pay™ transactions on localized pages without requiring separate configurations.
your-shop.com
your-shop.com/de
your-shop.com/fr
Merchants must align with their Product Solution Specialist to ensure all relevant domains are configured within the backend program settings before initiating Google Pay™ transactions. The domain should be provided without "https://", as the API handles secure connections internally.
Google Pay™ Integration Prerequisites
Integration of Google Pay™ payment option includes registration, preparation and testing of the new payment option.
The dedicated Product Solution Specialist will be your partner during the integration process.
After the testing is successful, it is possible to continue with the preparation for production deployment.
The merchant provides integration details to both Google™ and dedicated Product Solution Specialist during the integration process.
1. Registration with Google™ and JPM MPS
- Merchants need to register their business with Google™ by creating an account and submitting the required legal details at Google™ Console. This includes company information, business type and payment processing preferences.
![]()
- After registration, a unique Merchant ID is generated. The ID is displayed in the Business Information section below the company name. Merchants should provide the Merchant ID to the Product Solution Specialist for configuration.
![]()
- The next step is the integration with JPM MPS using SmartPay's SDK.
2. Test Google Pay™ on the testing environment
Google™ provides two methods for testing transactions with Google Pay™.
A. Google Wallet™ with Personal Card
- This method allows testers to use a real Google Wallet™ account with personal cards. These transactions do not involve real payments, and no funds are debited. Instead, this option helps validate the integration using live payment credentials.
- To use this method, testers must join the Google Test Group required for testing with production cards and must have a working Android device with Google Wallet™ installed, including a valid Visa or Mastercard card.
- The
CRYPTOGRAM_3DS
option must be configured in SmartPay settings to ensure proper handling of 3D Secure cryptograms during transactions for authentication.- Please refer to Google™'s Test with sample tokens.
![]()
B. Test cards
- Google™ offers the use of test cards option for developers looking to perform basic Google Pay™ test transactions without using an Android device. Google™ test cards are supported exclusively in a Chrome browser and require integration via ACI Worldwide.
- To enable this testing method, testers must subscribe to the Google Test Card Suite Subscription by signing in with their Google™ account through Chrome and follow the subscription process. To unsubscribe, testers must navigate to Google Groups and remove their subscription.
- Within SmartPay's settings,
PAN_ONLY
option must be configured beforehand to facilitate the use of test cards.- For more information, please visit Google™'s documentation on Test with sample cards.
![]()
For authorization, add paymentOptionCode: GGLPAY
.
Merchants can now use END-TO-END functionality for seamless payment completion. When a tester clicks on the Google Pay™ button, the process maintains the browser's user activation behavior, allowing the Google Pay™ API to display a payment sheet without interference from pop-up blockers.
Before processing the transaction, the merchant must display a final price to the user. If the amount to be charged has varied based on data received from the Google Pay™ API, the merchant is expected to show a confirmation page with the final price.
Storing Google Pay™ is allowed only in case of subscriptions and unattended MIT payments.
In the test TEST environment, Google™ offers two ways to test transactions. Merchants can use Google-provided test PANs, or they can use a regular Google Wallet™ account with personal cards, which are not used to process real payments and are not debited.
For PROD environment, only Google Wallet™ cards are accepted.

3. Production Prerequisites
Once the testing is done, the next step is preparing for the production deployment and implementing the procedure for going live. During this phase, the merchant provides integration details to both Google™ and dedicated Product Solution Specialist for activation:
- Registration of Shop domain that hosts the checkout.
- Registration of Google Pay™ connector URL and Google Pay™ integration type.
- Screenshots of the checkout.
- Production activation.
Before going live in production, the merchant should submit integration details to Google™ via the Google™ Console.
Before submitting the integration to Google™ for validation with a PaymentsClient configured for a TEST environment, ensure that the exit criteria are fulfilled for each of the following functional and branding checks.
3.1. Registration of the shop domain
Register the Shop domain that hosts the checkout to Google™ through Google Console.
infoProvide this domain to the dedicated Product Solution Specialist upon registration with Google.
3.2. Registration of the Google Pay™ Connector and Integration Type
Register the Google Pay™ connector URL:
api.googlepay.upcf.jpmmps.com
through Google™ Console.For Google Pay™ API integration type, select: Gateway.
![]()
3.3. Screenshots of the Checkout for Google Pay™
Please provide the following screenshots of the Checkout for Google Pay™ through Google Console:
- Item selection - screenshot of the UI when the user is browsing an item or service.
- Pre-purchase screen - screenshot of the UI when the user is ready to make a purchase.
- Payment method screen - screenshot of the UI when the user selects Google Pay™ as their payment method.
- Google Pay™ API payment screen - screenshot of the UI when the user is shown the payment info, they've saved it to Google Pay™.
infoAndroid doesn't allow taking a screenshot of this screen, so the screenshot should be taken using another device.
- Post-purchase screen - screenshot of the UI when the user has made a successful purchase.
3.4. Request to go live
After all the steps have been completed, the merchant can request activation for PROD integration through Google™ console.
importantGoogle Pay™ transactions with SmartPay require device authentication through the Google Wallet™ app. Only cards stored in Google Wallet™ can be used for payments, transactions without device authentication are not supported.
Useful links when integrating Google Pay™
- Google Pay™ Web developer documentation
- Google Pay™ Web integration checklist
- Google Pay™ Web Brand Guidelines
- All merchants must login to Google Pay™ Business Console and accept Google Pay™ APIs Acceptable Use Policy and agree to the terms defined in the Google Pay™ API Terms of Service.
Google Pay™ Test Data
For testing Google Pay™ in the sandbox environment, follow the instructions above.