Table of Contents

Google Pay™ Using XML


Google Pay helps users quickly and easily complete purchases in apps and on the web using payment methods saved to a Google account or Android device.

Availability

Google Pay is enabled on the %Gateway for TSYS Saratoga and Elavon Processors only, supporting the following card types: VISA, MasterCard, Discover/Diners, AMEX and JCB.

When it comes to being able to accept Google Pay transactions, the location of your business matters. Merchants in the following regions are eligible:

Customer compatibility depends on where the customer stores their card details:

Integrating

In this integration method you need to implement a few steps:

Step 01: Integrate the Google Pay API to your website

The merchant’s developer team will need to implement the Google Payment API to the merchant website in order to retrieve the customers (encrypted) card details (to be informed as GOOGLEPAYLOAD).

Note that during your Google Pay API Request, you will need to specify the following details:

To do this, your team must implement use Google's Test Environment and examples first.

Step 02: Integrate with The Payment Gateway

After you’ve retrieved the Google Payload, now you need to send the payload to our payment gateway. To do that, convert the users Google Pay data to Hexadecimal, and submit a Payment (more details in XML Payment Features).

Send a POST request to the following URL:

Request URL (test) https://testpayments.nuvei.com/merchant/xmlpayment
Request URL (live) Remove “test” from the test URL

Your request can contain any of the details present in a Common XML Payment Request Body.

The fields ADDRESS1, ADDRESS2 and POSTCODE are reserved for AVS services, in case your terminal supports it.

Request Example

<PAYMENT>
    <ORDERID>123456</ORDERID>
    <TERMINALID>1234001</TERMINALID>
    <AMOUNT>152.26</AMOUNT>
    <DATETIME>05-01-2019:11:04:55:055</DATETIME>
    <GOOGLEPAYLOAD>7b0d0a2020227368697070696e67436f6e74616374223a207b0d0a2020202022656d61696c41646472657373
    223a20226578616d706c6540776f726c646e65747470732e636f6d222c0d0a202020202266616d696c794e616d65223a2022222
    c0d0a2020202022676976656e4e616d65223a2022222c0d0a202020202270686f6e6574696346616d696c794e616d65223a2022
    222c0d0a202020202270686f6e65746963476976656e4e616d65223a2022220d0a20207d2c0d0a202022746f6b656e223a207b0
    d0a20202020227061796d656e7444617461223a207b0d0a20202020276c6a59544d7559334a734d41344741315564447745422f
    775145417749486744415042676b71686b694739324e6b42683045416755414d416f4743437147534d343942414d4341306b414
    d4559434951446148474f75692b583254343452364756704e376d326e456372365436734d6a4f685a354e75536f316567774968
    414c31612b2f68703838444b4a3073763365543346785763733731786d62072368072315780a99e8d8c07230f090912e802358c</GOOGLEPAYLOAD>
    <CARDTYPE>GOOGLEPAY</CARDTYPE>
    <CARDHOLDERNAME>John Junior Jameson</CARDHOLDERNAME>
    <HASH>ab17ee1ec5285719cb41afab02bc9b565ca8fe76647fa93eca12d922feb1325da58f65fbb1fa8151363da33d7c8abe5f
    1848b2b7d27ffb4ccc1560a410e987ac</HASH>
    <CURRENCY>USD</CURRENCY>
    <TERMINALTYPE>2</TERMINALTYPE>
    <TRANSACTIONTYPE>7</TRANSACTIONTYPE>
    <ADDRESS1>N 29, St. James St. - Hommerstown</ADDRESS1>
    <ADDRESS2>chicago, Illinois</ADDRESS2>
    <POSTCODE>60176</POSTCODE>
</PAYMENT>

About the Data

When using a Single Currency Terminal, the string to generate the HASH field is going to be formed using:

TERMINALID:ORDERID:AMOUNT:DATETIME:SECRET

When using a Multi Currency Terminal, the string to generate the HASH field is going to formed using:

TERMINALID:ORDERID:CURRENCY:AMOUNT:DATETIME:SECRET

Depending on your terminal settings, you might need to use a different way to generate your HASH (MD5 or SHA512). Take a look at the HASH Parameter.

All data sent to us should be correctly encoded using UTF-8 as the character encoding.

Step 03: Setup to Go Live

After successfully testing your integration, to process google pay payments in production, you will need to be sure that the terminals you want to use are configured for that, so:


Google Resources

Google provides a set of resources to help you with your implementations: