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

The following JSON document represent an example of a Google Response with the intermediateSigningKey object:

{
  "protocolVersion":"ECv2",
  "signature":"MEUCIG39tbaxxxxxxxxxxxxbd2gcFze1zDqU\u003d",
  "intermediateSigningKey":{
    "signedKey": "{\"keyExpiration\":\"154xxxxxx316\",\"keyValue\":\"MFkwEwxxxxxxxxxxxFRxyCw\\u003d\\u003d\"}",
    "signatures": ["MEYCIQDcXCoB4fxxxxxxxxxxxxxxEt26OrLCUxZnl"]
  },
  "signedMessage":"{\"tag\":\"TjkIxxxxxxxxxd\",\"ephemeralPublicKey\":\"BLJoTmxPxxxxxxxxxxxxxx003d\",\"encryptedMessage\":\"mxxxxxxjj\"}"
}

Gateway Integration

In order to start an encrypted Google Pay transaction you need to send a primary transaction with requestType 'WalletSaleTransaction' including the walletPaymentMethod object called encryptedGooglePay. This object contains the data that is received from Google Pay JavaScript embedded into your website or mobile app.

For a preauthorisation use requestType with value 'WalletPreAuthTransaction'.
For a sale use requestType with value 'WalletSaleTransaction'.

The following JSON document represent an example of a request and a response:

{
   "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"
   },
   "authenticationRequest":{
      "termURL":"https://yourwebsite/authresult?transactionId=cU4ZO8",
      "methodNotificationURL":"https://yourwebsite.com/acs/notifications?transactionId=cU4ZO8",
      "challengeIndicator":"01",
      "challengeWindowSize":"05",
      "authenticationIndicator":"01",
      "skipTRA":false,
      "authenticationType":"Secure3DAuthenticationRequest"
   },
   "requestType":"WalletSaleTransaction",
   "transactionAmount":{
      "total":25,
      "currency":"GBP",
      "components":{
         "subtotal":25
      }
   },
   "storeId":"12xxxx01",
   "transactionOrigin":"ECOM",
   "order":{
      "orderId":"PLxxxxxxx011",
      "billing":{
         "contact":{
             
         },
         "address":{
             
         }
      }
   }
}
{
   "walletPaymentMethod":{
      "encryptedGooglePay":{
         "data":{
            "encryptedMessage":"jlhEDaN0JXTcxxxxxxxxxxxxxxxzxxxxxxmLg9J9r75yg==",
            "ephemeralPublicKey":"BDBBVAe/C7BfSjlxxxxxxxxxxCqHmspxsI=",
            "tag":"v2x7Ahgxxxxxxxec439oI="
         },
         "intermediateSigningKey":{
            "signedKey":{
               "keyValue":"MFkwEwYHKoZIzj0CAxxxxxxxxxxxxxxxxxxfw5Vr4PWlbrA==",
               "keyExpiration":"17xxxxxx065"
            },
            "signatures":[
               "MEUCIQCp3m2pxxxxxxxxxBCrcjMPi8="
            ]
         },
         "signature":"MEUCIBmAOxvQ0rxxxxxxxxxxxxKCrlXBX+4eNMn2XEf0=",
         "version":"ECv2"
      },
      "walletType":"EncryptedGooglePayWalletPaymentMethod"
   },
   "authenticationRequest":{
      "termURL":"https://yourwebsite.com/acs/authresult?transactionId=cU4ZO8",
      "methodNotificationURL":"https://yourwebsite/acs/notifications?transactionId=cU4ZO8",
      "challengeIndicator":"01",
      "challengeWindowSize":"05",
      "authenticationIndicator":"01",
      "skipTRA":false,
      "authenticationType":"Secure3DAuthenticationRequest"
   },
   "requestType":"WalletSaleTransaction",
   "transactionAmount":{
      "total":25,
      "currency":"GBP",
      "components":{
         "subtotal":25
      }
   },
   "storeId":"12xxxxx01",
   "transactionOrigin":"ECOM",
   "order":{
      "orderId":"Pxxxxxxxx011",
      "billing":{
         "contact":{
             
         },
         "address":{
             
         }
      }
   }
}

Want a quick overview?