Google Pay enables customers to use the cards they have stored with Google to make quick, easy purchases on merchant websites or in-app. Customers can use the details they store on other Google applications such as Play Store, YouTube, and Chrome web browser.
Google Pay is available only to merchants who use Global Payments, Amex, or Barclays as their Acquirer. For more information, contact a member of our support team.
Google Pay is a standard payment method on the Hosted Payment Page (HPP), along with all major card brands. That means you can accept digital wallets for ecommerce transactions right out of the box.
The benefits of having digital wallets in your ecommerce store include:
- A seamless customer experience with minimal friction. Digital wallets are easy to use—and access—from any device. And they make paying fast.
- Enhanced security. Digital wallets use tokenization, which protects sensitive card data by replacing it with secure substitute data called a token.
- Better authorization rates. Replacing sensitive card data reduces the risk associated with ecommerce transactions, and can increase authorization rates as a result.
- Faster online checkouts. When customers pay with their digital wallets, they pay directly in a couple of clicks with no need to re-enter their credit card information online.
Certified Acquirer
Google Pay is available only to merchants who use a certified Acquirer. Unless you specify otherwise, Google Pay will automatically appear on the HPP if you use of the following certified Acquirers:
- Global Payments
- Amex
- Barclays
Google Pay button
The following images show the different ways the Google Pay button can be displayed: Full Redirect, iFrame, and Lightbox.
Google wallet
After a customer clicks the Google Pay button, they can then select a saved card from their Google wallet to use for payment, as shown below.
This guide focuses on integrating Google Pay directly using our Ecommerce XML API. You'll learn how to obtain the Google Pay token, including complying with 3D Secure authentication standards, as well as how to process an authorization
Obtain the Google Pay token
To offer Google Pay from your website or in-app, refer to the Google Pay API website for the integration steps. To integrate with the Global Payments platform, specific parameters must be passed in the PaymentData Request to Google.
When you submit a payment data request to the Google API, be sure to include the following parameters:
- 'gateway': 'globalpayments'
- 'gatewayMerchantId': '<your merchant id>'
SCA and 3DS compliance
Google Pay on the web may expose the Funding PAN (FPAN) depending on the parameters passed from the Google Pay API. Google provides two options through the allowedAuthMethods object:
- PAN_ONLY: This authentication method is associated with payment cards stored on file with the user's Google account. Returned payment data includes the FPAN with the expiration month and the expiration year.
- CRYPTOGRAM_3DS: This authentication method is associated with cards stored as Android device tokens. Returned payment data includes a 3D Secure (3DS) cryptogram generated on the device.
PAN_ONLY can expose the FPAN, which requires an additional Strong Customer Authentication (SCA) step up to a 3DS check. Currently, Global Payments does not support the Google Pay SCA challenge with an FPAN. For the best acceptance, we recommend that you provide only the CRYPTOGRAM_3DS option.
{
'type': 'CARD',
'parameters': {
'allowedAuthMethods': ['PAN_ONLY', 'CRYPTOGRAM_3DS'],
'allowedCardNetworks': ['AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA']
},
'tokenizationSpecification': {
'type': 'PAYMENT_GATEWAY',
'parameters': {
'gateway': 'globalpayments',
'gatewayMerchantId': '<YOUR_MERCHANT_ID>'
}
}
}
function onGooglePaymentButtonClicked() {
const paymentDataRequest = getGooglePaymentDataRequest();
paymentDataRequest.transactionInfo = getGoogleTransactionInfo();
const paymentsClient = getGooglePaymentsClient();
paymentsClient.loadPaymentData(paymentDataRequest)
.then(function(paymentData) {
// handle the response
processPayment(paymentData);
})
.catch(function(err) {
// show error in developer console for debugging
console.error(err);
});
}
function processPayment(paymentData) {
// show returned data in developer console for debugging
console.log(paymentData);
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case LOAD_PAYMENT_DATA_REQUEST_CODE:
switch (resultCode) {
case Activity.RESULT_OK:
PaymentData paymentData = PaymentData.getFromIntent(data);
String token = paymentData.getPaymentMethodToken().getToken();
JSONObject obj = new JSONObject(token);
// Data below goes into the XML message
string signature = obj.getString("signature");
string protocolVersion = obj.getString("protocolVersion");
string signedMessage = obj.getString("signedMessage");
private PaymentDataRequest createPaymentDataRequest() {
PaymentDataRequest.Builder request =
PaymentDataRequest.newBuilder()
.setTransactionInfo(
TransactionInfo.newBuilder()
.setTotalPriceStatus(WalletConstants.TOTAL_PRICE_STATUS_FINAL)
.setTotalPrice("10.00")
.setCurrencyCode("USD")
.build())
.addAllowedPaymentMethod(WalletConstants.PAYMENT_METHOD_CARD)
.addAllowedPaymentMethod(WalletConstants.PAYMENT_METHOD_TOKENIZED_CARD)
.setCardRequirements(
CardRequirements.newBuilder()
.addAllowedCardNetworks(
Arrays.asList(
WalletConstants.CARD_NETWORK_VISA,
WalletConstants.CARD_NETWORK_MASTERCARD))
.build());
PaymentMethodTokenizationParameters params =
PaymentMethodTokenizationParameters.newBuilder()
.setPaymentMethodTokenizationType(
WalletConstants.PAYMENT_METHOD_TOKENIZATION_TYPE_PAYMENT_GATEWAY)
.addParameter("gateway", "globalpayments")
.addParameter("<YOUR_MERCHANT_ID>", "")
.build();
request.setPaymentMethodTokenizationParameters(params);
return request.build();
}
Google will respond with the PaymentData Response, which includes the encrypted payload (token). They provide two environments: ENVIRONMENT_TEST and ENVIRONMENT_PRODUCTION. You can process either token type on the Global Payments platform. You must contact Google before being able to process Production tokens.
For more information, see the Google Pay website.
Process a Google Pay authorization
Using the Auth-Mobile request type, include the token obtained from the device instead of the standard card details captured from the customer.
<?xml version="1.0" encoding="UTF-8"?>
<request timestamp="20180614095601" type="auth-mobile">
<merchantid>MerchantId</merchantid>
<account>internet</account>
<orderid>N6qsk4kYRZihmPrTXWYS6g</orderid>
<amount currency="EUR">1999;</amount>
<mobile>pay-with-google</mobile>
<token>{"signature":"MEUCIQDapDDJyf9lH3ztEWksgAjNe...AXjW+ZM+Ut2BWoTExppDDPc1a9Z7U\u003d","protocolVersion":"ECv1","signedMessage":"{\"encryptedMessage\":\"VkqwkFuMdXp...TZQxVMnkTeJjwyc4\\u003d\",\"ephemeralPublicKey\":\"BMglUoKZWxgB...YCiBNkLaMTD9G4sec\\u003d\",\"tag\":\"4VYypqW2Q5FN7UP87QNDGsLgc48vAe5+AcjR+BxQ2Zo\\u003d\"}"}</token>
<autosettle flag="1"/>
<sha1hash>3231aebe4b60fe23fda3c0ad1b26f03b3ea081e2</sha1hash>
</request>
Testing Google Pay
You can test Google Pay in the Global Payments Sandbox environment. The amount specified in the request will map the tokenized data in the transaction to one of our test cards. For example, an amount of 10.00 will map to the successful Visa test card. For further details, see the Google Pay section in our Test Cards article.
Brand guidelines
For branding guidelines and to download assets, see the Brand Guidelines on the Google Pay website.
For the detailed API specification and a full list of features, see the API Reference section for Ecommerce Documentation.



