Google Pay

Google Account Setup

Before you begin the implementation, please also read Google Pay documentation on how to set up a Google account and create an initial request to the Google endpoint (e.g. via Javascript).

Note, that for security reasons, your integration must use the latest Google Pay API version 2.0, which includes the intermediateSigningKeyobject containing a key-value pair provided by Google. The Gateway ID 'fiservipg' needs to be included in the request as the parameter gateway.

ElementDescription
gatewayEnter 'fiservipg'
gatewayMerchantIdThe IPG store ID which you received from the IPG boarding team
merchantIdThe merchant ID that identifies your store, which you received from Google

Google Pay supports two card authentication methods:

Authentication methodDescription
PAN_ONLYThe payment data contains a card PAN and expiry. This may require 3-D Secure authentication depending on your setup and region.
CRYPTOGRAM_3DSThe payment data contains a network token and 3-D Secure cryptogram. If available, pass the cryptogram and ECI value in the payment request.

Recommended Google Pay configuration:

"allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"]

Gateway Integration

To create a Google Pay payment, submit a primary transaction with one of the following request types:

Use caserequestType
SaleWalletSaleTransaction
PreauthorisationWalletPreAuthTransaction

Google Pay can be submitted in either encrypted or decrypted form.

Encrypted Google Pay

Use encryptedGooglePay when you want our gateway to process the encrypted Google Pay payload returned by Google Pay JavaScript.

The following JSON document represent an example request and response of an encrypted Google Pay payload:

{
   "walletPaymentMethod":{
      "encryptedGooglePay":{
         "data":{
            "encryptedMessage":"jlhEDaN0JXTxxxxxxxxxxxxxxxxxxg9J9r75yg==",
            "ephemeralPublicKey":"BDBBVAe/C7BfSjxxxxxxxxxxxxxxxK6rdk0uBzqHmspxsI=",
            "tag":"v2x7Ahxxxxxxxxxxec439oI="
         },
         "intermediateSigningKey":{
            "signedKey":{
               "keyValue":"MFkwEwYHKoZIzxxxxxxxxxxxxxxx+nBKsFX36h/afw5Vr4PWlbrA==",
               "keyExpiration":"1734478642065"
            },
            "signatures":[
               "MEUCIQCp3mxxxxxxxxxxxxxxxxxxxxy7Fd/m9BCrcjMPi8="
            ]
         },
         "signature":"MEUCIBmAOxvxxxxxxxxxxxxxxxxxx4eNMn2XEf0=",
         "version":"ECv2"
      },
      "walletType":"EncryptedGooglePayWalletPaymentMethod"
   },
   "requestType":"WalletSaleTransaction",
   "transactionAmount":{
      "total":25,
      "currency":"GBP",
      "components":{
         "subtotal":25
      }
   },
   "storeId":"12xxxx01",
   "transactionOrigin":"ECOM",
   "order":{
      "orderId":"PLxxxxxxx011",
      "billing":{
         "contact":{
             
         },
         "address":{
             
         }
      }
   }
}

Decrypted Google Pay

Use decryptedGooglePay when your integration decrypts the Google Pay payload before submitting the payment request.

Required fields:

FieldRequiredDescription
accountNumberYesCard PAN or tokenized card number from the decrypted Google Pay payload
expirationYesExpiry date in 'MMYYYY' format
cardholderNameNoCardholder name, if available
brandNoCard brand, if available
cryptogramConditionalSend when Google Pay returns a 'CRYPTOGRAM_3DS' payload
eciIndicatorConditionalSend when available with the Google Pay cryptogram
storedCredentialsNoStored credential details, if the transaction is part of a stored credential use case

Example with cryptogram:

{
  "requestType": "WalletSaleTransaction",
  "storeId": "123456789",
  "transactionOrigin": "ECOM",
  "transactionAmount": {
    "total": 25.00,
    "currency": "GBP",
    "components": {
      "subtotal": 25.00
    }
  },
  "walletPaymentMethod": {
    "walletType": "DecryptedGooglePayWalletPaymentMethod",
    "decryptedGooglePay": {
      "accountNumber": "4111111111111111",
      "expiration": "012030",
      "cardholderName": "John Doe",
      "brand": "VISA",
      "cryptogram": "BB81SRsADvooHCUcDogjMAACAAA=",
      "eciIndicator": "05"
    }
  }
}

Example for PAN-only payload:

{
  "requestType": "WalletSaleTransaction",
  "storeId": "123456789",
  "transactionOrigin": "ECOM",
  "transactionAmount": {
    "total": 25.00,
    "currency": "GBP",
    "components": {
      "subtotal": 25.00
    }
  },
  "walletPaymentMethod": {
    "walletType": "DecryptedGooglePayWalletPaymentMethod",
    "decryptedGooglePay": {
      "accountNumber": "4111111111111111",
      "expiration": "012030",
      "cardholderName": "John Doe",
      "brand": "VISA"
    }
  }
}

3-D Secure Handling

For 'CRYPTOGRAM_3DS' Google Pay payments, send the cryptogram and eciIndicator when they are available in the decrypted payload.

For 'PAN_ONLY' Google Pay payments, no cryptogram is available. These payments may require 3-D Secure authentication depending on your merchant configuration, region, and applicable SCA requirements.

If 3-D Secure authentication is required, include either authenticationRequest to initiate authentication or authenticationResult if authentication has already been completed.

Example PAN-only request with 3-D Secure authentication request:

{
  "requestType": "WalletSaleTransaction",
  "storeId": "123456789",
  "transactionOrigin": "ECOM",
  "transactionAmount": {
    "total": 25.00,
    "currency": "GBP",
    "components": {
      "subtotal": 25.00
    }
  },
  "walletPaymentMethod": {
    "walletType": "DecryptedGooglePayWalletPaymentMethod",
    "decryptedGooglePay": {
      "accountNumber": "4111111111111111",
      "expiration": "012030",
      "brand": "VISA"
    }
  },
  "authenticationRequest": {
    "authenticationType": "Secure3DAuthenticationRequest",
    "termURL": "https://yourwebsite.example/acs/authresult",
    "methodNotificationURL": "https://yourwebsite.example/acs/notifications",
    "challengeIndicator": "01",
    "challengeWindowSize": "05",
    "authenticationIndicator": "01",
    "skipTRA": false
  }
}

Testing

Test both Google Pay authentication methods before going live:

ScenarioExpected payload
CRYPTOGRAM_3DSIncludes cryptogram and may include ECI
PAN_ONLYIncludes PAN and expiry, but no cryptogram

For PAN-only transactions, also test the 3-D Secure flow if your merchant setup requires authentication.


Did this page help you?
Want a quick overview?