Google Pay Integration with PAR Pay
Overview
Google Pay is a secure, tokenized payment method that enables customers to complete transactions using cards provisioned on their Google accounts and devices. PAR Pay supports Google Pay as part of its payment orchestration capabilities, allowing merchants to process Google Pay transactions through supported payment providers in a consistent and secure manner.
PAR Pay functions as an orchestration layer, abstracting provider-specific complexity while ensuring Google Pay transactions are routed and processed correctly. It also exposes a configuration endpoint so the client can initialize the Google Pay tokenization flow without needing to know provider-specific details.
Prerequisites
Before Google Pay transactions can be processed through PAR Pay, the following prerequisites must be satisfied.
Google Merchant Configuration
- A valid
googlePayMerchantIdmust be obtained from Google. - The merchant must be registered and approved in the Google Pay Business Console.
- Google Pay must be enabled for the merchant account.
Provider Onboarding
- The selected payment provider must be fully onboarded and enabled for Google Pay.
- Google Pay must be verified in the target provider environment (Sandbox and/or Production).
PAR Pay currently supports Google Pay through the following payment providers:
- Aurus
- Spreedly
Aurus: The Google Pay merchant ID (
googlePayMerchantId) must be shared with Aurus first. Aurus registers this merchant ID during onboarding, and Google Pay transactions cannot be processed through Aurus until it has been provided.
Key Actors and Components
| Actor / Component | Role |
|---|---|
| User (Shopper) | Initiates payment using Google Pay. |
| Brand web/mobile app | Displays the checkout page and initiates the Google Pay payment flow. |
| PAR Pay | Provides Google Pay configuration and processes payment transactions. |
| Google Pay (JavaScript API) | Renders the Google Pay button, launches the Google Pay payment sheet, and returns the tokenized payment payload after the user authorizes the payment. |
| Payment Provider (Spreedly / Aurus) | Processes the tokenized transaction through card networks. |
How Google Pay Works in PAR Pay
Google Pay functions as a tokenized card payment method. Sensitive card data is never exposed to PAR Pay or merchants. Instead, Google generates a cryptographically secure payment token that represents the underlying card.
PAR Pay treats the Google Pay token as an opaque payload and is responsible for:
- Providing the Google Pay configuration required to initialize tokenization
- Validating the request context
- Determining the configured payment provider
- Forwarding the token to the provider for processing
- Returning the normalized provider response to the caller
All Google Pay-specific enablement is managed by the payment provider.
Architectural Responsibilities
| Layer | Responsibility |
|---|---|
| Mobile or web app | Initializes Google Pay, requests configuration, and collects the Google Pay payment token |
| Renders the Google Pay button and generates a tokenized payment payload | |
| PAR Pay | Provides Google Pay configuration, orchestrates the payment flow, validates requests, and routes to the configured provider |
| Payment Provider | Google Pay onboarding, token decryption, authorization, and settlement |
End-to-End Google Pay Flow
- Prerequisite: The business has already obtained a valid Google Pay merchant ID (
googlePayMerchantId) from Google. - Configuration Request (optional): The client application makes a
GETcall to the PAR Pay API (/creditcard/v1/googlepayconfiguration) with the required headers to retrieve the Google Pay tokenization parameters (e.g.,gateway,gatewayMerchantId). The values needed to initialize the tokenization flow vary depending on the configured payment provider — for example, when using Aurus,gatewaymust be set to"aurus"andgatewayMerchantIdcorresponds to thegooglePayMerchantId. A merchant who already knows their provider-specific details can skip this call and initialize the Google Pay button directly with those values. - Button Initialization: Using the configuration response and the Google Pay merchant ID (
googlePayMerchantId), the mobile or web app initializes the Google Pay button. - User Action: The shopper clicks Pay with Google Pay and confirms payment. Google Pay returns a tokenized payload (
paymentMethodData) to the client application. - Sale Request: The mobile or web app submits a
POSTrequest to the PAR Pay Purchase or Preauth API with required headers and a request body containing thegooglePaytoken, transaction amount, and other details. - Transaction Processing: PAR Pay forwards the Google Pay token to the configured payment provider. The provider completes the transaction through the card network and returns a result.
- Response Handling: PAR Pay normalizes the provider response and returns it to the client app. The client app displays transaction success or failure to the user.
Note: This flow is consistent across all supported providers.
Google Pay Configuration Endpoint
Because tokenization parameters differ per payment provider, the client can retrieve configuration from PAR Pay before initializing the Google Pay button. This call is optional — a merchant who already knows their provider-specific details (e.g., gateway such as aurus and their Google Pay merchant ID) can skip it and initialize the button directly.
| Flow | Method | Endpoint |
|---|---|---|
| Get configuration | GET |
/creditcard/v1/googlepayconfiguration |
The response contains the Google Pay tokenization parameters (e.g., gateway, gatewayMerchantId) appropriate for the configured provider.
Supported Payment Flows
| Flow | Endpoint |
|---|---|
| Purchase | /creditcard/v1/purchase |
| Authorize | /creditcard/v1/preauth |
The request structure and token handling are identical for both flows; the only difference is the endpoint used.
Example Request (Purchase / Preauthorize)
curl --location 'https://SERVER_NAME_GOES_HERE.partech.com/creditcard/v1/purchase' \
--header 'X-LocationId: XXXXXXXXXXXXXXXXXXXXX' \
--header 'X-ApplicationSource: <application-source>' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer XXXXXXXXX' \
--data '{
"saveCard": true,
"userId": "test-123456",
"isPreferred": true,
"referenceNumber": "258",
"invoiceNumber": "02148",
"transactionDateTimeUTC": "2026-07-28T14:19:02.051Z",
"transactionDateTimeLocal": "2026-07-28T14:19:02.051",
"transactionAmountDetails": {
"taxAmount": 0,
"discount": 0,
"productTotalAmount": null,
"totalAmount": 24
},
"walletPay": {
"googlePay": "<google-pay-token>"
}
}'
Token Handling Notes
- The Google Pay token is generated by Google on the client device.
- PAR Pay does not decrypt, validate, or modify the token contents.
- Token decryption and authorization are performed exclusively by the payment provider.
- The same payload structure is used across all supported providers.