Skip to main content

Google Pay

Google Pay, a digital wallet payment service developed by Google, enables consumers to make payments online and with Android devices such as phones, tablets, and watches.

With Google Pay, your consumers can quickly complete a one-click transaction using payment methods already securely saved to their Google account.

Availability

Google Pay availability
Payment method Payment type Countries Supported presentment currencies Notes
Google Pay
Wallet CA, EU, UK, US
AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, ISK, JMD, JPY, KES, KHR, KMF, KRW, KYD, KZT, LAK, LBP, LKR, LRD, LSL, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RWF, SAR, SBD, SCR, SEK, SGD, SHP, SLL, SOS, SRD, STN, SZL, THB, TJS, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VND, VUV, WST, XAF, XCD, XOF, XPF, YER, ZAR, ZMW    

How Google Pay works

Wallets process flow

Before you begin

Use the following steps to set up Google Pay as an available payment method for your consumers:

  1. Set up and integrate with Google:
    1. For Android™ devices
    2. For web
  2. Obtain a Google merchant ID and merchant name for transaction processing.
  3. Accept and comply with Google Pay's terms and conditions.

Use Google Pay for payments

Use the following steps to submit Google Pay transactions after your consumer has selected Google Pay as their payment method:

  1. Call the Google API to obtain token payment (i.e., encrypted) data. See Overview | Google Pay API for more information. See the following section for more details.
  2. Submit the token payment data to the J.P. Morgan Online Payments API for transaction processing.
  3. Initiate a transaction with Google Pay using the Google-issued merchant ID and merchant name.
  4. Use gateway name "chase" and your J.P. Morgan merchant ID value for gatewayMerchantId to complete the transaction.

Token responses

The following table provides a list of field mappings from Google Pay's API response to the Online Payments API:

Google Pay API to Online Payments API field mappings
Google Pay apiVersion2
Online Payments API object/fields
latLong paymentMethodType.googlePay.latLong  
tokenizationData.token.intermediateSigningKey : signature paymentMethodType.googlePay.encryptedPaymentBundle.signature  
tokenizationData.token.protocolVersion paymentMethodType.googlePay.encryptedPaymentBundle.protocolVersion
tokenizationData.token.signedMessage paymentMethodType.googlePay.encryptedPaymentBundle.encryptedPayload
tokenizationData.token.signedMessage : ephemeralPublicKey paymentMethodType.googlePay.encryptedPaymentBundle.encryptedPaymentHeader.ephemeralPublicKey

The following is a sample of an encryptedPayload request to the Online Payments API:

HTTP method: POST
Endpoint: /payments

Json
{
    "paymentMethodType": {
        "googlepay": {
            "latLong": "1,1",
            "encryptedPaymentBundle": {
                "encryptedPayload": "{\"encryptedMessage\":\"6gBXPtw3Oy7wBRv72MXlmjIHFwLC2FdafLaeekiySZljbnudn/6xJLJulh+Gkk6WegNYaB0Iqti8x4/nX5344SyT6UfWrd1tU8jIwjAP5e+La6LWkD296DZ1pIsKDuh0jRbNAp6PaqpByjsgjDFnNBaFdEcv9InH73OPPQU6AxGMAspoZ2du3LOtu4y1WsP5BqZsA24TPp/+lGauK1r+61AuTh88PbT6l6YKCLQGtNN0Ug2UzPodsKbRM8DiTtUW3TaIpQjHd7or5p3EAhLi8TZETZDC6J+lgeI4dQRlsvxOPdOFPf+fK7IdCyGQpLqjf9jBf69QPkVh5+6XXEJfVjjUY4TX2KVU2+42a5sLjQy9rzU1oXUa+IAi6pTziBi4RdIlFFRGFOKlLNRIfZw8+mulejDxHt93r1GPTooBjeLrXD6GW8gN2n4IXgnEZAyu7w\\u003d\\u003d\",\"ephemeralPublicKey\":\"BCN6XUyxRN252w17DvzQMH0rWzwt18gAqJE7+1byl7Tz3rpzdPOVfJWRU3sKgJNAXicMcvcV4g67YCJEng52DuY\\u003d\",\"tag\":\"NnB9WQib+A1lakfPJMcQzBbh2+z5kL/UBCKxevQYTjs\\u003d\"}",
                "encryptedPaymentHeader": {
                    "ephemeralPublicKey": "BCN6XUyxRN252w17DvzQMH0rWzwt18gAqJE7+1byl7Tz3rpzdPOVfJWRU3sKgJNAXicMcvcV4g67YCJEng52DuY\\u003d"
                },
                "signature": "MEYCIQDu7OB2NaHmlSCk2nqYWY6hoiCvmquK82g763VkfaybrAIhANgJSN4MMtfbMMvZKKVGzuPCCN4zVXk6ejioe87+oWaR",
                "protocolVersion": "ECv1"
            }
        }
    }
}

Response:

Json
{
    "paymentMethodType": {
        "card": {
            "walletProvider": "GOOGLE_PAY",
            "cardType": "VI",
            "cardTypeName": "VISA",
            "maskedAccountNumber": "411111XXXXXX1111",
            "cardTypeIndicators": {
                "issuanceCountryCode": "USA",
                "isLevel3Eligible": true,
                "cardTypeCategory": "PREPAID_CARD",
                "isDurbinRegulated": true,
                "cardProductTypes": [
                    "COMMERCIAL",
                    "PAYROLL",
                    "HEALTHCARE",
                    "AFFLUENT_CATEGORY",
                    "SIGNATURE_DEBIT",
                    "PINLESS_DEBIT",
                    "PREPAID_RELOADABLE"
                ]
            },
            "networkResponse": {
                "addressVerificationResult": "ADDRESS_POSTALCODE_MATCH",
                "addressVerificationResultCode": "I3",
                "cardVerificationResult": "MATCH",
                "cardVerificationResultCode": "M",
                "networkTransactionId": "012097692169110",
                "networkResponseCode": "00"
            }
        }
    }
}

Payment parameters

The following fields are required fields within the Google Pay object:

  • latLong
  • encryptedPaymentBundle.encryptedPayload
  • encryptedPaymentBundle.encryptedPaymentHeader.ephemeralPublicKey
  • encryptedPaymentBundle.protocolVersion 
  • encryptedPaymentBundle.signature

Authorize and capture a payment
Wallet Decryption API