====== Google Pay™ Using XML ====== ~~TOC~~ \\ 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: * - United States * - Europe * - Asia Pacific * - Australia Customer compatibility depends on where the customer stores their card details: * **Card on Google Account** * - Available worldwide * **Card on Android Device** - Only customers in the following countries can make this type of payment: * - United States * - United Kingdom * - Singapore * - Australia * - Hong Kong * - Poland * - New Zealand * - Ireland * - Belgium * - Russia * - Japan * - Canada * - Taiwan * - Spain * - Ukraine * - Brazil * - Czech Republic * - Slovakia (Feb, 2018) * - France (Coming Spring 2018) * - South Korea (Late 2018) ===== 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 **[[https://developers.google.com/pay/api/web/setup|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: * **merchantId** - The Merchant ID given to you by Google * **gateway** - "%NameCompany" (all lower case) * **gatewayMerchantId** - The Merchant ID given to you by the gateway 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 **[[developer:api_specification:xml_payment_features#payment|XML Payment Features]]**). Send a POST request to the following URL: | Request URL (test) | %URLXMLPayments | | Request URL (live) | Remove "test" from the test URL | Your request can contain any of the details present in a **[[developer:api_specification:xml_payment_features#payment|Common XML Payment Request Body]]**. The fields ADDRESS1, ADDRESS2 and POSTCODE are reserved for AVS services, in case your terminal supports it. __Request Example__ 123456 1234001 152.26 05-01-2019:11:04:55:055 7b0d0a2020227368697070696e67436f6e74616374223a207b0d0a2020202022656d61696c41646472657373 223a20226578616d706c6540776f726c646e65747470732e636f6d222c0d0a202020202266616d696c794e616d65223a2022222 c0d0a2020202022676976656e4e616d65223a2022222c0d0a202020202270686f6e6574696346616d696c794e616d65223a2022 222c0d0a202020202270686f6e65746963476976656e4e616d65223a2022220d0a20207d2c0d0a202022746f6b656e223a207b0 d0a20202020227061796d656e7444617461223a207b0d0a20202020276c6a59544d7559334a734d41344741315564447745422f 775145417749486744415042676b71686b694739324e6b42683045416755414d416f4743437147534d343942414d4341306b414 d4559434951446148474f75692b583254343452364756704e376d326e456372365436734d6a4f685a354e75536f316567774968 414c31612b2f68703838444b4a3073763365543346785763733731786d62072368072315780a99e8d8c07230f090912e802358c GOOGLEPAY John Junior Jameson ab17ee1ec5285719cb41afab02bc9b565ca8fe76647fa93eca12d922feb1325da58f65fbb1fa8151363da33d7c8abe5f 1848b2b7d27ffb4ccc1560a410e987ac USD 2 7 N 29, St. James St. - Hommerstown chicago, Illinois 60176 __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 **[[developer:api_specification:special_fields_and_parameters#the_hash_parameter|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: * **First**, register with Google: In order to use the Google Pay API in Production, you must register with Google. To do this, simply navigate to the Google Payment API Support page. You will be asked to register the website you wish to make payments with, and Google will give you a Google Merchant ID which you will use during your Google Pay requests. * **Secondly**, have your Google Pay details configured: Contact our support team and ask for Google Pay to be enabled on the desired terminals \\ ===== Google Resources ===== Google provides a set of resources to help you with your implementations: * **[[https://developers.google.com/pay/api/web|Google Pay Web Developer Documentation]]** * **[[https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist|Google Pay Web Integration Checklist]]** * **[[https://developers.google.com/pay/api/web/guides/brand-guidelines|Google Pay Brand Promoting Guidelines]]**